KickJava   Java API By Example, From Geeks To Geeks.

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


1 package ch.ethz.ssh2.packets;
2
3 import java.io.IOException JavaDoc;
4
5 /**
6  * PacketChannelOpenFailure.
7  *
8  * @author Christian Plattner, plattner@inf.ethz.ch
9  * @version $Id: PacketChannelOpenFailure.java,v 1.1 2005/12/05 17:13:27 cplattne Exp $
10  */

11 public class PacketChannelOpenFailure
12 {
13     byte[] payload;
14
15     public int recipientChannelID;
16     public int reasonCode;
17     public String JavaDoc description;
18     public String JavaDoc languageTag;
19
20     public PacketChannelOpenFailure(int recipientChannelID, int reasonCode, String JavaDoc description,
21             String JavaDoc languageTag)
22     {
23         this.recipientChannelID = recipientChannelID;
24         this.reasonCode = reasonCode;
25         this.description = description;
26         this.languageTag = languageTag;
27     }
28
29     public PacketChannelOpenFailure(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_FAILURE)
39             throw new IOException JavaDoc(
40                     "This is not a SSH_MSG_CHANNEL_OPEN_FAILURE! ("
41                             + packet_type + ")");
42
43         recipientChannelID = tr.readUINT32();
44         reasonCode = tr.readUINT32();
45         description = tr.readString();
46         languageTag = tr.readString();
47         
48         if (tr.remain() != 0)
49             throw new IOException JavaDoc("Padding in SSH_MSG_CHANNEL_OPEN_FAILURE 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_FAILURE);
58             tw.writeUINT32(recipientChannelID);
59             tw.writeUINT32(reasonCode);
60             tw.writeString(description);
61             tw.writeString(languageTag);
62             payload = tw.getBytes();
63         }
64         return payload;
65     }
66 }
67
Popular Tags