This commit is contained in:
vanitasvitae 2017-06-10 01:53:59 +02:00
parent eda7859aa7
commit 38f54b140c
Signed by: vanitasvitae
GPG Key ID: 62BEE9264BF17311
2 changed files with 26 additions and 22 deletions

View File

@ -61,26 +61,7 @@ public class InitiatorOutgoingFileTransferInitiated implements JingleSessionHand
switch (jingle.getAction()) { switch (jingle.getAction()) {
case session_accept: case session_accept:
BytestreamSession session; startTransfer(bm, jingle);
try {
session = bm.outgoingInitiatedSession(jingle);
} catch (Exception e) {
//TODO
return null;
}
HashElement fileHash;
byte[] buf = new byte[(int) file.length()];
try {
fileHash = FileAndHashReader.readAndCalculateHash(file, buf, HashManager.ALGORITHM.SHA_256);
session.getOutputStream().write(buf);
session.close();
} catch (IOException e) {
//TODO:
return null;
}
break; break;
case session_terminate: case session_terminate:
break; break;
@ -90,4 +71,27 @@ public class InitiatorOutgoingFileTransferInitiated implements JingleSessionHand
} }
return IQ.createResultIQ(jingle); return IQ.createResultIQ(jingle);
} }
public void startTransfer(AbstractJingleTransportManager<?> transportManager, Jingle jingle) {
BytestreamSession session;
try {
session = transportManager.outgoingInitiatedSession(jingle);
} catch (Exception e) {
//TODO
return;
}
HashElement fileHash;
byte[] buf = new byte[(int) file.length()];
try {
fileHash = FileAndHashReader.readAndCalculateHash(file, buf, HashManager.ALGORITHM.SHA_256);
session.getOutputStream().write(buf);
session.close();
} catch (IOException e) {
//TODO:
return;
}
}
} }

View File

@ -140,7 +140,7 @@ public final class JingleS5BTransportManager extends AbstractJingleTransportMana
public Jingle createSessionAccept(Jingle request) public Jingle createSessionAccept(Jingle request)
throws XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException { throws XMPPException.XMPPErrorException, SmackException.NotConnectedException, InterruptedException, SmackException.NoResponseException {
JingleContent receivedContent = request.getContents().get(0); JingleContent receivedContent = request.getContents().get(0);
JingleS5BTransport receviedTransport = (JingleS5BTransport) receivedContent.getJingleTransports().get(0); JingleS5BTransport receivedTransport = (JingleS5BTransport) receivedContent.getJingleTransports().get(0);
Jingle.Builder jb = Jingle.getBuilder(); Jingle.Builder jb = Jingle.getBuilder();
jb.setResponder(connection().getUser()) jb.setResponder(connection().getUser())
.setAction(JingleAction.session_accept) .setAction(JingleAction.session_accept)
@ -151,7 +151,7 @@ public final class JingleS5BTransportManager extends AbstractJingleTransportMana
.setCreator(receivedContent.getCreator()) .setCreator(receivedContent.getCreator())
.setName(receivedContent.getName()) .setName(receivedContent.getName())
.setDescription(receivedContent.getDescription()) .setDescription(receivedContent.getDescription())
.addTransport(createJingleContentTransport(request.getInitiator(), receviedTransport)); .addTransport(createJingleContentTransport(request.getInitiator(), receivedTransport));
jb.addJingleContent(cb.build()); jb.addJingleContent(cb.build());
Jingle jingle = jb.build(); Jingle jingle = jb.build();