From c063fb137689a987bb7a589443ac4ac74e136dc3 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Sat, 12 Jul 2014 13:50:50 +0200 Subject: [PATCH] Reply correct error code on XEP-65 Stream rejection this was previously erroneously changed with 197548b548c0436108cb20f33859172a70d0bf8f from 'forbidden' to 'not-acceptable'. We now change it back to 'forbidden'. Also delete FileTransferNegotiator.rejectStream(StreamInitation) because it is dead code and add some comments and javadoc. --- .../socks5/Socks5BytestreamManager.java | 3 +++ .../smackx/filetransfer/FileTransferManager.java | 14 +++++++++++++- .../filetransfer/FileTransferNegotiator.java | 14 -------------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java index e95dd0db4..c7e199044 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5BytestreamManager.java @@ -703,6 +703,9 @@ public final class Socks5BytestreamManager implements BytestreamManager { /** * Responses to the given packet's sender with a XMPP error that a SOCKS5 Bytestream is not * accepted. + *

+ * Specified in XEP-65 5.3.1 (Example 13) + *

* * @param packet Packet that should be answered with a not-acceptable error * @throws NotConnectedException diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferManager.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferManager.java index 923cd04ba..b1659fff5 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferManager.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferManager.java @@ -168,13 +168,25 @@ public class FileTransferManager { return transfer; } + /** + * Reject an incoming file transfer. + *

+ * Specified in XEP-95 4.2 and 3.2 Example 8 + *

+ * @param request + * @throws NotConnectedException + */ protected void rejectIncomingFileTransfer(FileTransferRequest request) throws NotConnectedException { StreamInitiation initiation = request.getStreamInitiation(); IQ rejection = FileTransferNegotiator.createIQ( initiation.getPacketID(), initiation.getFrom(), initiation .getTo(), IQ.Type.ERROR); - rejection.setError(new XMPPError(XMPPError.Condition.not_acceptable)); + // Reject as specified in XEP-95 4.2. Note that this is not to be confused with the Socks 5 + // Bytestream rejection as specified in XEP-65 5.3.1 Example 13, which says that + // 'not-acceptable' should be returned. This is done by Smack in + // Socks5BytestreamManager.replyRejectPacket(IQ). + rejection.setError(new XMPPError(XMPPError.Condition.forbidden)); connection.sendPacket(rejection); } } diff --git a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferNegotiator.java b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferNegotiator.java index 0f59deec9..575b63291 100644 --- a/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferNegotiator.java +++ b/smack-extensions/src/main/java/org/jivesoftware/smackx/filetransfer/FileTransferNegotiator.java @@ -322,20 +322,6 @@ public class FileTransferNegotiator { } } - /** - * Reject a stream initiation request from a remote user. - * - * @param si The Stream Initiation request to reject. - * @throws NotConnectedException - */ - public void rejectStream(final StreamInitiation si) throws NotConnectedException { - XMPPError error = new XMPPError(XMPPError.Condition.forbidden, "Offer Declined"); - IQ iqPacket = createIQ(si.getPacketID(), si.getFrom(), si.getTo(), - IQ.Type.ERROR); - iqPacket.setError(error); - connection.sendPacket(iqPacket); - } - /** * Returns a new, unique, stream ID to identify a file transfer. *