KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > ch > ethz > ssh2 > packets > PacketChannelOpenConfirmation


1 package ch.ethz.ssh2.packets;
2
3 import java.io.IOException JavaDoc;
4
5 /**
6  * PacketChannelOpenConfirmation.
7  *
8  * @author Christian Plattner, plattner@inf.ethz.ch
9  * @version $Id: PacketChannelOpenConfirmation.java,v 1.2 2005/08/24 17:54:09 cplattne Exp $
10  */

11 public class PacketChannelOpenConfirmation
12 {
13     byte[] payload;
14
15     public int recipientChannelID;
16     public int senderChannelID;
17     public int initialWindowSize;
18     public int maxPacketSize;
19
20     public PacketChannelOpenConfirmation(int recipientChannelID, int senderChannelID, int initialWindowSize,
21             int maxPacketSize)
22     {
23         this.recipientChannelID = recipientChannelID;
24         this.senderChannelID = senderChannelID;
25         this.initialWindowSize = initialWindowSize;
26         this.maxPacketSize = maxPacketSize;
27     }
28
29     public PacketChannelOpenConfirmation(byte payload[], int off, int len) throws IOException JavaDoc
30     {
31         this.payload = new byte[len];
32         System.arraycopy(payload, off, this.payload, 0, len);
33
34         TypesReader tr = new TypesReader(payload, off, len);
35
36         int packet_type = tr.readByte();
37
38         if (packet_type != Packets.SSH_MSG_CHANNEL_OPEN_CONFIRMATION)
39             throw new IOException JavaDoc(
40                     "This is not a SSH_MSG_CHANNEL_OPEN_CONFIRMATION! ("
41                             + packet_type + ")");
42
43         recipientChannelID = tr.readUINT32();
44         senderChannelID = tr.readUINT32();
45         initialWindowSize = tr.readUINT32();
46         maxPacketSize = tr.readUINT32();
47         
48         if (tr.remain() != 0)
49             throw new IOException JavaDoc("Padding in SSH_MSG_CHANNEL_OPEN_CONFIRMATION packet!");
50     }
51
52     public byte[] getPayload()
53     {
54         if (payload == null)
55         {
56             TypesWriter tw = new TypesWriter();
57             tw.writeByte(Packets.SSH_MSG_CHANNEL_OPEN_CONFIRMATION);
58             tw.writeUINT32(recipientChannelID);
59             tw.writeUINT32(senderChannelID);
60             tw.writeUINT32(initialWindowSize);
61             tw.writeUINT32(maxPacketSize);
62             payload = tw.getBytes();
63         }
64         return payload;
65     }
66 }
67
Popular Tags