public void request(Session session, Channel channel) { Buffer buf = new Buffer(); Packet packet = new Packet(buf); bool reply = waitForReply(); if (reply) { channel.reply = -1; } packet.reset(); buf.putByte((byte)Session.SSH_MSG_CHANNEL_REQUEST); buf.putInt(channel.getRecipient()); buf.putString(new String("subsystem").getBytes()); buf.putByte((byte)(waitForReply() ? 1 : 0)); buf.putString(subsystem.getBytes()); session.write(packet); if (reply) { while (channel.reply == -1) { try{ Thread.sleep(10); } catch //(System.Exception ee) { } } if (channel.reply == 0) { throw new JSchException("failed to send subsystem request"); } } }
public void request(Session session, Channel channel) { Buffer buf=new Buffer(); Packet packet=new Packet(buf); bool reply=waitForReply(); if(reply) { channel.reply=-1; } packet.reset(); buf.putByte((byte)Session.SSH_MSG_CHANNEL_REQUEST); buf.putInt(channel.getRecipient()); buf.putString(Util.getBytes("subsystem")); buf.putByte((byte)(waitForReply() ? 1 : 0)); buf.putString(Util.getBytes("sftp")); session.write(packet); if(reply) { while(channel.reply==-1) { try{System.Threading.Thread.Sleep(10);} catch//(Exception ee) { } } if(channel.reply==0) { throw new JSchException("failed to send sftp request"); } } }
public void request(Session session, Channel channel) { Buffer buf=new Buffer(); Packet packet=new Packet(buf); packet.reset(); buf.putByte((byte) Session.SSH_MSG_CHANNEL_REQUEST); buf.putInt(channel.getRecipient()); buf.putString( Util.getBytes("signal")); buf.putByte((byte)(waitForReply() ? 1 : 0)); buf.putString(Util.getBytes(signal)); session.write(packet); }
public void request(Session session, Channel channel) { Buffer buf = new Buffer(); Packet packet = new Packet(buf); packet.reset(); buf.putByte((byte)Session.SSH_MSG_CHANNEL_REQUEST); buf.putInt(channel.getRecipient()); buf.putString(Util.getBytes("signal")); buf.putByte((byte)(waitForReply() ? 1 : 0)); buf.putString(Util.getBytes(signal)); session.write(packet); }
public void request(Session session, Channel channel) { Buffer buf = new Buffer(); Packet packet = new Packet(buf); // send // byte SSH_MSG_CHANNEL_REQUEST(98) // uint32 recipient channel // string request type // "shell" // boolean want reply // 0 packet.reset(); buf.WriteByte((byte)Session.SSH_MSG_CHANNEL_REQUEST); buf.WriteInt(channel.getRecipient()); buf.WriteString(Util.getBytes("shell")); buf.WriteByte((byte)(waitForReply() ? 1 : 0)); session.write(packet); }
public void request(Session session, Channel channel) { Buffer buf=new Buffer(); Packet packet=new Packet(buf); // send // byte SSH_MSG_CHANNEL_REQUEST(98) // uint32 recipient channel // string request type // "shell" // boolean want reply // 0 packet.reset(); buf.putByte((byte) Session.SSH_MSG_CHANNEL_REQUEST); buf.putInt(channel.getRecipient()); buf.putString(Util.getBytes("shell")); buf.putByte((byte)(waitForReply() ? 1 : 0)); session.write(packet); }
public void request(Session session, Channel channel) { Buffer buf = new Buffer(); Packet packet = new Packet(buf); packet.reset(); buf.WriteByte((byte)Session.SSH_MSG_CHANNEL_REQUEST); buf.WriteInt(channel.getRecipient()); buf.WriteString(Util.getBytes("pty-req")); buf.WriteByte((byte)(waitForReply() ? 1 : 0)); buf.WriteString(Util.getBytes("vt100")); buf.WriteInt(80); buf.WriteInt(24); buf.WriteInt(640); buf.WriteInt(480); buf.WriteString(Util.getBytes("")); session.write(packet); }
public void request(Session session, Channel channel) { Buffer buf=new Buffer(); Packet packet=new Packet(buf); packet.reset(); buf.WriteByte((byte) Session.SSH_MSG_CHANNEL_REQUEST); buf.WriteInt(channel.getRecipient()); buf.WriteString(Util.getBytes("pty-req")); buf.WriteByte((byte)(waitForReply() ? 1 : 0)); buf.WriteString(Util.getBytes("vt100")); buf.WriteInt(80); buf.WriteInt(24); buf.WriteInt(640); buf.WriteInt(480); buf.WriteString(Util.getBytes("")); session.write(packet); }
public void request(Session session, Channel channel) { Packet packet=session.packet; Buffer buf=session.buf; // send // byte SSH_MSG_CHANNEL_REQUEST(98) // uint32 recipient channel // string request type // "exec" // boolean want reply // 0 // string command packet.reset(); buf.putByte((byte) Session.SSH_MSG_CHANNEL_REQUEST); buf.putInt(channel.getRecipient()); buf.putString(new Str("exec").getBytes()); buf.putByte((byte)(waitForReply() ? 1 : 0)); buf.putString(new Str(command).getBytes()); session.write(packet); }
public void request(Session session, Channel channel) { Packet packet = session.packet; Buffer buf = session.buf; // send // byte SSH_MSG_CHANNEL_REQUEST(98) // uint32 recipient channel // string request type // "exec" // boolean want reply // 0 // string command packet.reset(); buf.putByte(Session.SSH_MSG_CHANNEL_REQUEST); buf.putInt(channel.getRecipient()); buf.putString(new Str("exec").getBytes()); buf.putByte((byte)(waitForReply() ? 1 : 0)); buf.putString(new Str(command).getBytes()); session.write(packet); }
public void request(Session session, Channel channel) { Buffer buf = new Buffer(); Packet packet = new Packet(buf); // byte SSH_MSG_CHANNEL_REQUEST(98) // uint32 recipient channel // string request type // "x11-req" // boolean want reply // 0 // boolean single connection // string x11 authentication protocol // "MIT-MAGIC-COOKIE-1". // string x11 authentication cookie // uint32 x11 screen number packet.reset(); buf.putByte((byte)Session.SSH_MSG_CHANNEL_REQUEST); buf.putInt(channel.getRecipient()); buf.putString(Util.getBytes("x11-req")); buf.putByte((byte)(waitForReply() ? 1 : 0)); buf.putByte((byte)0); buf.putString(Util.getBytes("MIT-MAGIC-COOKIE-1")); buf.putString(ChannelX11.getFakedCookie(session)); buf.putInt(0); session.write(packet); }
public void request(Session session, Channel channel) { Buffer buf=new Buffer(); Packet packet=new Packet(buf); // byte SSH_MSG_CHANNEL_REQUEST(98) // uint32 recipient channel // string request type // "x11-req" // boolean want reply // 0 // boolean single connection // string x11 authentication protocol // "MIT-MAGIC-COOKIE-1". // string x11 authentication cookie // uint32 x11 screen number packet.reset(); buf.WriteByte((byte) Session.SSH_MSG_CHANNEL_REQUEST); buf.WriteInt(channel.getRecipient()); buf.WriteString(Util.getBytes("x11-req")); buf.WriteByte((byte)(waitForReply() ? 1 : 0)); buf.WriteByte((byte)0); buf.WriteString(Util.getBytes("MIT-MAGIC-COOKIE-1")); buf.WriteString(ChannelX11.getFakedCookie(session)); buf.WriteInt(0); session.write(packet); }
public void request(Session session, Channel channel) { Buffer buf=new Buffer(); Packet packet=new Packet(buf); //byte SSH_MSG_CHANNEL_REQUEST //uint32 recipient_channel //string "window-change" //boolean FALSE //uint32 terminal width, columns //uint32 terminal height, rows //uint32 terminal width, pixels //uint32 terminal height, pixels packet.reset(); buf.WriteByte((byte) Session.SSH_MSG_CHANNEL_REQUEST); buf.WriteInt(channel.getRecipient()); buf.WriteString(Util.getBytes("window-change")); buf.WriteByte((byte)(waitForReply() ? 1 : 0)); buf.WriteInt(width_columns); buf.WriteInt(height_rows); buf.WriteInt(width_pixels); buf.WriteInt(height_pixels); session.write(packet); }
public void request(Session session, Channel channel) { Buffer buf = new Buffer(); Packet packet = new Packet(buf); //byte SSH_MSG_CHANNEL_REQUEST //uint32 recipient_channel //string "window-change" //boolean FALSE //uint32 terminal width, columns //uint32 terminal height, rows //uint32 terminal width, pixels //uint32 terminal height, pixels packet.reset(); buf.putByte((byte)Session.SSH_MSG_CHANNEL_REQUEST); buf.putInt(channel.getRecipient()); buf.putString(Util.getBytes("window-change")); buf.putByte((byte)(waitForReply() ? 1 : 0)); buf.putInt(width_columns); buf.putInt(height_rows); buf.putInt(width_pixels); buf.putInt(height_pixels); session.write(packet); }
public void write(Packet packet, Channel c, int length) { while(true) { if(in_kex) { try{Thread.Sleep(10);} catch(ThreadInterruptedException e){}; continue; } lock(c) { if(c.rwsize>=length) { c.rwsize-=length; break; } } if(c._close || !c.isConnected()) { throw new IOException("channel is broken"); } bool sendit=false; int s=0; byte command=0; int recipient=-1; lock(c) { if(c.rwsize>0) { int len=c.rwsize; if(len>length) { len=length; } if(len!=length) { s=packet.shift(len, (c2smac!=null ? c2smac.getBlockSize() : 0)); } command=packet.buffer.buffer[5]; recipient=c.getRecipient(); length-=len; c.rwsize-=len; sendit=true; } } if(sendit) { _write(packet); if(length==0) { return; } packet.unshift(command, recipient, s, length); lock(c) { if(c.rwsize>=length) { c.rwsize-=length; break; } } } try{Thread.Sleep(100);} catch(ThreadInterruptedException e){}; } _write(packet); }
/*lock*/ public void write(Packet packet, Channel c, int length) { while(true) { if(c.rwsize>=length) { c.rwsize-=length; break; } if(c._close || !IsConnected()) { throw new IOException("channel is broken"); } if(c.rwsize>0) { int len=c.rwsize; int s=packet.shift(len, (c2smac!=null ? c2smac.getBlockSize() : 0)); byte command=packet.buffer.buffer[5]; int recipient=c.getRecipient(); length-=len; c.rwsize=0; write(packet); packet.unshift(command, recipient, s, length); } try{System.Threading.Thread.Sleep(10);} catch{}; } write(packet); }