1
0
Fork 0
mirror of https://codeberg.org/Mercury-IM/Smack synced 2024-11-14 03:32:06 +01:00
Smack/test-unit/org/jivesoftware/smackx/bytestreams/socks5/Socks5PacketUtils.java

120 lines
4.1 KiB
Java
Raw Normal View History

/**
* All rights reserved. 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.IQ;
import org.jivesoftware.smackx.bytestreams.socks5.packet.Bytestream;
import org.jivesoftware.smackx.packet.DiscoverInfo;
import org.jivesoftware.smackx.packet.DiscoverItems;
/**
* 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(String from, String to, String sessionID) {
Bytestream bytestream = new Bytestream();
bytestream.getPacketID();
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 packet 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(String from, String to) {
Bytestream streamHostInfo = new Bytestream();
streamHostInfo.getPacketID();
streamHostInfo.setFrom(from);
streamHostInfo.setTo(to);
streamHostInfo.setType(IQ.Type.RESULT);
return streamHostInfo;
}
/**
* Returns a response to an item discovery request. The packet 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(String from, String to) {
DiscoverItems discoverItems = new DiscoverItems();
discoverItems.getPacketID();
discoverItems.setFrom(from);
discoverItems.setTo(to);
discoverItems.setType(IQ.Type.RESULT);
return discoverItems;
}
/**
* Returns a response to an info discovery request. The packet doesn't contain any infos.
*
* @param from the target
* @param to the initiator
* @return response to an info discovery request
*/
public static DiscoverInfo createDiscoverInfo(String from, String to) {
DiscoverInfo discoverInfo = new DiscoverInfo();
discoverInfo.getPacketID();
discoverInfo.setFrom(from);
discoverInfo.setTo(to);
discoverInfo.setType(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(String from, String to) {
IQ response = new IQ() {
@Override
public String getChildElementXML() {
return null;
}
};
response.getPacketID();
response.setFrom(from);
response.setTo(to);
response.setType(IQ.Type.RESULT);
return response;
}
}