aboutsummaryrefslogtreecommitdiffstats
path: root/sshlib/src/main/java/com/trilead/ssh2/packets/PacketOpenDirectTCPIPChannel.java
blob: da6cbef9b3ef5d38b8139f85637fd5df88b0293c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.trilead.ssh2.packets;


/**
 * PacketOpenDirectTCPIPChannel.
 * 
 * @author Christian Plattner, plattner@trilead.com
 * @version $Id: PacketOpenDirectTCPIPChannel.java,v 1.1 2007/10/15 12:49:55 cplattne Exp $
 */
public class PacketOpenDirectTCPIPChannel
{
	byte[] payload;

	int channelID;
	int initialWindowSize;
	int maxPacketSize;

	String host_to_connect;
	int port_to_connect;
	String originator_IP_address;
	int originator_port;

	public PacketOpenDirectTCPIPChannel(int channelID, int initialWindowSize, int maxPacketSize,
			String host_to_connect, int port_to_connect, String originator_IP_address,
			int originator_port)
	{
		this.channelID = channelID;
		this.initialWindowSize = initialWindowSize;
		this.maxPacketSize = maxPacketSize;
		this.host_to_connect = host_to_connect;
		this.port_to_connect = port_to_connect;
		this.originator_IP_address = originator_IP_address;
		this.originator_port = originator_port;
	}

	public byte[] getPayload()
	{
		if (payload == null)
		{
			TypesWriter tw = new TypesWriter();

			tw.writeByte(Packets.SSH_MSG_CHANNEL_OPEN);
			tw.writeString("direct-tcpip");
			tw.writeUINT32(channelID);
			tw.writeUINT32(initialWindowSize);
			tw.writeUINT32(maxPacketSize);
			tw.writeString(host_to_connect);
			tw.writeUINT32(port_to_connect);
			tw.writeString(originator_IP_address);
			tw.writeUINT32(originator_port);

			payload = tw.getBytes();
		}
		return payload;
	}
}