KickJava   Java API By Example, From Geeks To Geeks.

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


1 package ch.ethz.ssh2.packets;
2 import java.io.IOException JavaDoc;
3
4 /**
5  * PacketDisconnect.
6  *
7  * @author Christian Plattner, plattner@inf.ethz.ch
8  * @version $Id: PacketDisconnect.java,v 1.3 2005/08/29 14:24:58 cplattne Exp $
9  */

10 public class PacketDisconnect
11 {
12     byte[] payload;
13
14     int reason;
15     String JavaDoc desc;
16     String JavaDoc lang;
17
18     public PacketDisconnect(byte payload[], int off, int len) throws IOException JavaDoc
19     {
20         this.payload = new byte[len];
21         System.arraycopy(payload, off, this.payload, 0, len);
22
23         TypesReader tr = new TypesReader(payload, off, len);
24
25         int packet_type = tr.readByte();
26
27         if (packet_type != Packets.SSH_MSG_DISCONNECT)
28             throw new IOException JavaDoc("This is not a Disconnect Packet! ("
29                     + packet_type + ")");
30
31         reason = tr.readUINT32();
32         desc = tr.readString();
33         lang = tr.readString();
34     }
35
36     public PacketDisconnect(int reason, String JavaDoc desc, String JavaDoc lang)
37     {
38         this.reason = reason;
39         this.desc = desc;
40         this.lang = lang;
41     }
42     
43     public byte[] getPayload()
44     {
45         if (payload == null)
46         {
47             TypesWriter tw = new TypesWriter();
48             tw.writeByte(Packets.SSH_MSG_DISCONNECT);
49             tw.writeUINT32(reason);
50             tw.writeString(desc);
51             tw.writeString(lang);
52             payload = tw.getBytes();
53         }
54         return payload;
55     }
56 }
57
Popular Tags