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 * PacketSessionPtyRequest.
9 *
10 * @author Christian Plattner
11 * @version 2.50, 03/15/10
12 */
13public class PacketSessionPtyRequest
14{
15	byte[] payload;
16
17	public int recipientChannelID;
18	public boolean wantReply;
19	public String term;
20	public int character_width;
21	public int character_height;
22	public int pixel_width;
23	public int pixel_height;
24	public byte[] terminal_modes;
25
26	public PacketSessionPtyRequest(int recipientChannelID, boolean wantReply, String term,
27			int character_width, int character_height, int pixel_width, int pixel_height,
28			byte[] terminal_modes)
29	{
30		this.recipientChannelID = recipientChannelID;
31		this.wantReply = wantReply;
32		this.term = term;
33		this.character_width = character_width;
34		this.character_height = character_height;
35		this.pixel_width = pixel_width;
36		this.pixel_height = pixel_height;
37		this.terminal_modes = terminal_modes;
38	}
39
40	public byte[] getPayload()
41	{
42		if (payload == null)
43		{
44			TypesWriter tw = new TypesWriter();
45			tw.writeByte(Packets.SSH_MSG_CHANNEL_REQUEST);
46			tw.writeUINT32(recipientChannelID);
47			tw.writeString("pty-req");
48			tw.writeBoolean(wantReply);
49			tw.writeString(term);
50			tw.writeUINT32(character_width);
51			tw.writeUINT32(character_height);
52			tw.writeUINT32(pixel_width);
53			tw.writeUINT32(pixel_height);
54			tw.writeString(terminal_modes, 0, terminal_modes.length);
55
56			payload = tw.getBytes();
57		}
58		return payload;
59	}
60}
61