Smack/smack-extensions/src/test/java/org/jivesoftware/smackx/bytestreams/socks5/Socks5PacketUtils.java

116 lines
3.8 KiB
Java

/**
*
* Copyright the original author or authors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jivesoftware.smackx.bytestreams.socks5;
import org.jivesoftware.smack.packet.EmptyResultIQ;
import org.jivesoftware.smack.packet.IQ;
import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream;
import org.jivesoftware.smackx.disco.packet.DiscoverInfo;
import org.jivesoftware.smackx.disco.packet.DiscoverInfoBuilder;
import org.jivesoftware.smackx.disco.packet.DiscoverItems;
import org.jxmpp.jid.Jid;
/**
* A collection of utility methods to create XMPP packets.
*
* @author Henning Staib
*/
public class Socks5PacketUtils {
/**
* Returns a SOCKS5 Bytestream initialization request packet. The Request doesn't contain any
* SOCKS5 proxies.
*
* @param from the initiator
* @param to the target
* @param sessionID the session ID
* @return SOCKS5 Bytestream initialization request packet
*/
public static Bytestream createBytestreamInitiation(Jid from, Jid to, String sessionID) {
Bytestream bytestream = new Bytestream();
bytestream.setFrom(from);
bytestream.setTo(to);
bytestream.setSessionID(sessionID);
bytestream.setType(IQ.Type.set);
return bytestream;
}
/**
* Returns a response to a SOCKS5 Bytestream initialization request. The stanza doesn't contain
* the uses-host information.
*
* @param from the target
* @param to the initiator
* @return response to a SOCKS5 Bytestream initialization request
*/
public static Bytestream createBytestreamResponse(Jid from, Jid to) {
Bytestream streamHostInfo = new Bytestream();
streamHostInfo.setFrom(from);
streamHostInfo.setTo(to);
streamHostInfo.setType(IQ.Type.result);
return streamHostInfo;
}
/**
* Returns a response to an item discovery request. The stanza doesn't contain any items.
*
* @param from the XMPP server
* @param to the XMPP client
* @return response to an item discovery request
*/
public static DiscoverItems createDiscoverItems(Jid from, Jid to) {
DiscoverItems discoverItems = new DiscoverItems();
discoverItems.setFrom(from);
discoverItems.setTo(to);
discoverItems.setType(IQ.Type.result);
return discoverItems;
}
/**
* Returns a response to an info discovery request. The stanza doesn't contain any infos.
*
* @param from the target
* @param to the initiator
* @return response to an info discovery request
*/
public static DiscoverInfoBuilder createDiscoverInfo(Jid from, Jid to) {
DiscoverInfoBuilder discoverInfo = DiscoverInfo.builder("disco-1")
.from(from)
.to(to)
.ofType(IQ.Type.result)
;
return discoverInfo;
}
/**
* Returns a response IQ for a activation request to the proxy.
*
* @param from JID of the proxy
* @param to JID of the client who wants to activate the SOCKS5 Bytestream
* @return response IQ for a activation request to the proxy
*/
public static IQ createActivationConfirmation(Jid from, Jid to) {
IQ response = new EmptyResultIQ();
response.setFrom(from);
response.setTo(to);
return response;
}
}