Commit 060a5193 authored by Gaston Dombiak's avatar Gaston Dombiak Committed by gato

SI can not be used for other purposes than file transfer. JM-1439

git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@10701 b35dd754-fafc-0310-a699-88a17e54d16e
parent 9fbf8d4f
...@@ -12,8 +12,6 @@ ...@@ -12,8 +12,6 @@
package org.jivesoftware.openfire.filetransfer; package org.jivesoftware.openfire.filetransfer;
import org.dom4j.Element; import org.dom4j.Element;
import org.jivesoftware.util.cache.CacheFactory;
import org.jivesoftware.util.JiveGlobals;
import org.jivesoftware.openfire.auth.UnauthorizedException; import org.jivesoftware.openfire.auth.UnauthorizedException;
import org.jivesoftware.openfire.container.BasicModule; import org.jivesoftware.openfire.container.BasicModule;
import org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager; import org.jivesoftware.openfire.filetransfer.proxy.ProxyConnectionManager;
...@@ -22,13 +20,15 @@ import org.jivesoftware.openfire.interceptor.InterceptorManager; ...@@ -22,13 +20,15 @@ import org.jivesoftware.openfire.interceptor.InterceptorManager;
import org.jivesoftware.openfire.interceptor.PacketInterceptor; import org.jivesoftware.openfire.interceptor.PacketInterceptor;
import org.jivesoftware.openfire.interceptor.PacketRejectedException; import org.jivesoftware.openfire.interceptor.PacketRejectedException;
import org.jivesoftware.openfire.session.Session; import org.jivesoftware.openfire.session.Session;
import org.jivesoftware.util.JiveGlobals;
import org.jivesoftware.util.cache.Cache;
import org.jivesoftware.util.cache.CacheFactory;
import org.xmpp.packet.IQ; import org.xmpp.packet.IQ;
import org.xmpp.packet.JID; import org.xmpp.packet.JID;
import org.xmpp.packet.Packet; import org.xmpp.packet.Packet;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* Provides several utility methods for file transfer manager implementaions to utilize. * Provides several utility methods for file transfer manager implementaions to utilize.
...@@ -39,7 +39,7 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans ...@@ -39,7 +39,7 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans
private static final String CACHE_NAME = "File Transfer Cache"; private static final String CACHE_NAME = "File Transfer Cache";
private final Map<String, FileTransfer> fileTransferMap; private final Cache<String, FileTransfer> fileTransferMap;
private final List<FileTransferInterceptor> fileTransferInterceptorList private final List<FileTransferInterceptor> fileTransferInterceptorList
= new ArrayList<FileTransferInterceptor>(); = new ArrayList<FileTransferInterceptor>();
...@@ -121,10 +121,7 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans ...@@ -121,10 +121,7 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans
JID to, Element siElement) { JID to, Element siElement) {
String streamID = siElement.attributeValue("id"); String streamID = siElement.attributeValue("id");
String mimeType = siElement.attributeValue("mime-type"); String mimeType = siElement.attributeValue("mime-type");
String profile = siElement.attributeValue("profile");
// Check profile, the only type we deal with currently is file transfer // Check profile, the only type we deal with currently is file transfer
FileTransfer transfer = null;
if (NAMESPACE_SI_FILETRANSFER.equals(profile)) {
Element fileTransferElement = getChildElement(siElement, NAMESPACE_SI_FILETRANSFER); Element fileTransferElement = getChildElement(siElement, NAMESPACE_SI_FILETRANSFER);
// Not valid form, reject // Not valid form, reject
if (fileTransferElement == null) { if (fileTransferElement == null) {
...@@ -144,10 +141,7 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans ...@@ -144,10 +141,7 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans
return null; return null;
} }
transfer = new FileTransfer(from.toString(), to.toString(), return new FileTransfer(from.toString(), to.toString(), streamID, fileName, size, mimeType);
streamID, fileName, size, mimeType);
}
return transfer;
} }
public void addFileTransferInterceptor(FileTransferInterceptor interceptor) { public void addFileTransferInterceptor(FileTransferInterceptor interceptor) {
...@@ -189,14 +183,15 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans ...@@ -189,14 +183,15 @@ public class DefaultFileTransferManager extends BasicModule implements FileTrans
} }
String namespace = childElement.getNamespaceURI(); String namespace = childElement.getNamespaceURI();
if (NAMESPACE_SI.equals(namespace)) { String profile = childElement.attributeValue("profile");
// Check that the SI is about file transfer and try creating a file transfer
if (NAMESPACE_SI.equals(namespace) && NAMESPACE_SI_FILETRANSFER.equals(profile)) {
// If this is a set, check the feature offer // If this is a set, check the feature offer
if (iq.getType().equals(IQ.Type.set)) { if (iq.getType().equals(IQ.Type.set)) {
JID from = iq.getFrom(); JID from = iq.getFrom();
JID to = iq.getTo(); JID to = iq.getTo();
FileTransfer transfer = FileTransfer transfer = createFileTransfer(from, to, childElement);
createFileTransfer(from, to, childElement);
try { try {
if (transfer == null || !acceptIncomingFileTransferRequest(transfer)) { if (transfer == null || !acceptIncomingFileTransferRequest(transfer)) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment