Home | History | Annotate | Download | only in packets
      1 /*
      2  * Copyright (c) 2006-2011 Christian Plattner. All rights reserved.
      3  * Please refer to the LICENSE.txt for licensing details.
      4  */
      5 package ch.ethz.ssh2.packets;
      6 
      7 import java.io.IOException;
      8 import java.io.UnsupportedEncodingException;
      9 
     10 /**
     11  * PacketSessionExecCommand.
     12  *
     13  * @author Christian Plattner
     14  * @version $Id: PacketSessionExecCommand.java 5 2011-05-27 12:59:54Z dkocher (at) sudo.ch $
     15  */
     16 public class PacketSessionExecCommand
     17 {
     18 	byte[] payload;
     19 
     20 	public int recipientChannelID;
     21 	public boolean wantReply;
     22 	public String command;
     23 
     24 	public PacketSessionExecCommand(int recipientChannelID, boolean wantReply, String command)
     25 	{
     26 		this.recipientChannelID = recipientChannelID;
     27 		this.wantReply = wantReply;
     28 		this.command = command;
     29 	}
     30 
     31 	public byte[] getPayload() throws IOException
     32 	{
     33 		return this.getPayload(null);
     34 	}
     35 
     36 	public byte[] getPayload(String charsetName) throws UnsupportedEncodingException
     37 	{
     38 		if (payload == null)
     39 		{
     40 			TypesWriter tw = new TypesWriter();
     41 			tw.writeByte(Packets.SSH_MSG_CHANNEL_REQUEST);
     42 			tw.writeUINT32(recipientChannelID);
     43 			tw.writeString("exec");
     44 			tw.writeBoolean(wantReply);
     45 			tw.writeString(command, charsetName);
     46 			payload = tw.getBytes();
     47 		}
     48 		return payload;
     49 	}
     50 }
     51