1 package ch.ethz.ssh2.packets; 2 3 import java.io.IOException ; 4 5 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 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 ( 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 ("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 |