public MessageReceivedArgs(SessionChannel channel, byte[] data) { Contract.Requires(channel != null); Contract.Requires(data != null); this.Channel = channel; this.Data = data; }
public SessionRequestedArgs(SessionChannel channel, string command, UserauthArgs userauthArgs) { Contract.Requires(channel != null); Contract.Requires(command != null); Contract.Requires(userauthArgs != null); this.Channel = channel; this.CommandText = command; this.AttachedUserauthArgs = userauthArgs; }
public SessionRequestedArgs(SessionChannel channel, string command, UserauthArgs userauthArgs) { Contract.Requires(channel != null); Contract.Requires(command != null); Contract.Requires(userauthArgs != null); Channel = channel; CommandText = command; AttachedUserauthArgs = userauthArgs; }
public CommandRequestedArgs(SessionChannel channel, string type, string command, UserauthArgs userauthArgs) { Contract.Requires(channel != null); Contract.Requires(command != null); Contract.Requires(userauthArgs != null); Channel = channel; ShellType = type; CommandText = command; AttachedUserauthArgs = userauthArgs; }
public SessionRequestedArgs(SessionChannel channel, string subsystem, string command, UserAuthArgs userauthArgs) { Contract.Requires(channel != null); Contract.Requires(command != null); Contract.Requires(userauthArgs != null); Channel = channel; CommandText = command; AttachedUserAuthArgs = userauthArgs; SubSystemName = subsystem; }
public EnvironmentArgs(SessionChannel channel, string name, string value, UserauthArgs userauthArgs) { Contract.Requires(channel != null); Contract.Requires(name != null); Contract.Requires(value != null); Contract.Requires(userauthArgs != null); Channel = channel; Name = name; Value = value; AttachedUserauthArgs = userauthArgs; }
public TcpRequestArgs(SessionChannel channel, string host, int port, string originatorIP, int originatorPort, UserauthArgs userauthArgs) { Contract.Requires(channel != null); Contract.Requires(host != null); Contract.Requires(originatorIP != null); Channel = channel; Host = host; Port = port; OriginatorIP = originatorIP; OriginatorPort = originatorPort; AttachedUserauthArgs = userauthArgs; }
internal SessionChannel AddChannel() { var channel = new SessionChannel( this, (uint)Interlocked.Increment(ref this.forwardChannelCounter), 1048576, 16384, (uint)Interlocked.Increment(ref this.serverChannelCounter)); lock (this.locker) this.channels.Add(channel); return(channel); }
public PtyArgs(SessionChannel channel, string terminal, uint heightPx, uint heightRows, uint widthPx, uint widthChars, string modes, UserAuthArgs userauthArgs) { Contract.Requires(channel != null); Contract.Requires(terminal != null); Contract.Requires(modes != null); Contract.Requires(userauthArgs != null); Channel = channel; Terminal = terminal; HeightPx = heightPx; HeightRows = heightRows; WidthPx = widthPx; WidthChars = widthChars; Modes = modes; AttachedUserAuthArgs = userauthArgs; }
private void HandleMessage(SessionOpenMessage message) { var channel = new SessionChannel( this, message.SenderChannel, message.InitialWindowSize, message.MaximumPacketSize, (uint)Interlocked.Increment(ref _serverChannelCounter)); lock (_locker) _channels.Add(channel); var msg = new SessionOpenConfirmationMessage(); msg.RecipientChannel = channel.ClientChannelId; msg.SenderChannel = channel.ServerChannelId; msg.InitialWindowSize = channel.ServerInitialWindowSize; msg.MaximumPacketSize = channel.ServerMaxPacketSize; _session.SendMessage(msg); }
private SessionChannel HandleChannelOpenMessage(ChannelOpenMessage message) { var channel = new SessionChannel( this, message.SenderChannel, message.InitialWindowSize, message.MaximumPacketSize, (uint)Interlocked.Increment(ref _serverChannelCounter)); lock (_locker) _channels.Add(channel); var msg = new ChannelOpenConfirmationMessage { RecipientChannel = channel.ClientChannelId, SenderChannel = channel.ServerChannelId, InitialWindowSize = channel.ServerInitialWindowSize, MaximumPacketSize = channel.ServerMaxPacketSize }; _session.SendMessage(msg); return(channel); }
public SessionRequestedArgs(SessionChannel channel, string command, UserAuthArgs userauthArgs) : this(channel, null, command, userauthArgs) { }
private void HandlePortForward(ChannelOpenMessage message, string address, uint port, string originationIP, uint originatorPort) { var channel = new SessionChannel( this, message.SenderChannel, message.InitialWindowSize, message.MaximumPacketSize, (uint)Interlocked.Increment(ref _serverChannelCounter)); var readyToAcceptData = false; var args = new TcpRequestArgs( this._session, address, port, originationIP, originatorPort, () => { return(readyToAcceptData); }, (byte[] data) => { if (!channel.ClientClosed && !channel.ServerClosed) { channel.SendData(data); } else { throw new IOException("Connection closed"); } }, () => { if (!channel.ClientClosed && !channel.ServerClosed) { try { channel.SendClose(); } catch { } } } ); TcpForwardRequest(this, args); Action <object, byte[]> eventHandlerForDataReceived = (sender, data) => { try { args.OnClientData(data); } catch { channel.SendClose(); } }; channel.DataReceived += (o, ea) => eventHandlerForDataReceived(o, ea); lock (_locker) _channels.Add(channel); // send SSH_MSG_CHANNEL_OPEN_CONFIRMATION var msg = new ChannelOpenConfirmationMessage { RecipientChannel = channel.ClientChannelId, SenderChannel = channel.ServerChannelId, InitialWindowSize = channel.ServerInitialWindowSize, MaximumPacketSize = channel.ServerMaxPacketSize }; _session.SendMessage(msg); readyToAcceptData = true; }