1/*
2 * Copyright (c) 2006-2011 Christian Plattner. All rights reserved.
3 * Please refer to the LICENSE.txt for licensing details.
4 */
5package ch.ethz.ssh2.packets;
6
7/**
8 * PacketOpenDirectTCPIPChannel.
9 *
10 * @author Christian Plattner
11 * @version 2.50, 03/15/10
12 */
13public class PacketOpenDirectTCPIPChannel
14{
15	byte[] payload;
16
17	int channelID;
18	int initialWindowSize;
19	int maxPacketSize;
20
21	String host_to_connect;
22	int port_to_connect;
23	String originator_IP_address;
24	int originator_port;
25
26	public PacketOpenDirectTCPIPChannel(int channelID, int initialWindowSize, int maxPacketSize,
27			String host_to_connect, int port_to_connect, String originator_IP_address,
28			int originator_port)
29	{
30		this.channelID = channelID;
31		this.initialWindowSize = initialWindowSize;
32		this.maxPacketSize = maxPacketSize;
33		this.host_to_connect = host_to_connect;
34		this.port_to_connect = port_to_connect;
35		this.originator_IP_address = originator_IP_address;
36		this.originator_port = originator_port;
37	}
38
39	public byte[] getPayload()
40	{
41		if (payload == null)
42		{
43			TypesWriter tw = new TypesWriter();
44
45			tw.writeByte(Packets.SSH_MSG_CHANNEL_OPEN);
46			tw.writeString("direct-tcpip");
47			tw.writeUINT32(channelID);
48			tw.writeUINT32(initialWindowSize);
49			tw.writeUINT32(maxPacketSize);
50			tw.writeString(host_to_connect);
51			tw.writeUINT32(port_to_connect);
52			tw.writeString(originator_IP_address);
53			tw.writeUINT32(originator_port);
54
55			payload = tw.getBytes();
56		}
57		return payload;
58	}
59}
60