internal void SendMsgChannelExtendedData(SshChannel channel, SshExtendedDataType dataType,
                                                 byte[] data)
        {
            if (_isDisposed)
            {
                throw new ObjectDisposedException(this.GetType().FullName);
            }

            // Check if data is too large to send.
            if (data.Length > Math.Min(channel.MaxPacketSize, channel.WindowSize))
            {
                throw new InvalidOperationException("Data is too large to send in one packet.");
            }

            // Create message to send.
            using (var msgStream = new MemoryStream())
                using (var msgWriter = new SshStreamWriter(msgStream))
                {
                    msgWriter.Write((byte)SshConnectionMessage.ChannelExtendedData);
                    msgWriter.Write(channel.ClientChannel);
                    msgWriter.Write((uint)dataType);
                    msgWriter.WriteByteString(data);

                    _client.SendPacket <SshConnectionMessage>(msgStream.ToArray());
                }
        }
        protected void SendExtendedData(byte[] data, SshExtendedDataType dataType)
        {
            if (_isDisposed)
            {
                throw new ObjectDisposedException(this.GetType().FullName);
            }

            _connService.SendMsgChannelExtendedData(this, dataType, data);
        }
Пример #3
0
        protected override void ProcessExtendedData(SshExtendedDataType dataType, byte[] data)
        {
            if (_isDisposed)
            {
                throw new ObjectDisposedException(this.GetType().FullName);
            }

            // Write unescaped data to console.
            TerminalSendKeys(_terminal.UnescapeData(data));

            if (!_isDisposed)
            {
                base.ProcessExtendedData(dataType, data);
            }
        }
        protected override void ProcessExtendedData(SshExtendedDataType dataType, byte[] data)
        {
            if (_isDisposed) throw new ObjectDisposedException(this.GetType().FullName);

            // Write unescaped data to console.
            TerminalSendKeys(_terminal.UnescapeData(data));

            if (!_isDisposed) base.ProcessExtendedData(dataType, data);
        }
Пример #5
0
        protected void SendExtendedData(byte[] data, SshExtendedDataType dataType)
        {
            if (_isDisposed) throw new ObjectDisposedException(this.GetType().FullName);

            _connService.SendMsgChannelExtendedData(this, dataType, data);
        }
Пример #6
0
 protected internal virtual void ProcessExtendedData(SshExtendedDataType dataType, byte[] data)
 {
     // Raise event.
     OnDataReceived(new DataReceivedEventArgs(dataType));
 }
Пример #7
0
 public DataReceivedEventArgs(SshExtendedDataType dataType)
     : base()
 {
     this.DataType = dataType;
 }
        internal void SendMsgChannelExtendedData(SshChannel channel, SshExtendedDataType dataType,
            byte[] data)
        {
            if (_isDisposed) throw new ObjectDisposedException(this.GetType().FullName);

            // Check if data is too large to send.
            if (data.Length > Math.Min(channel.MaxPacketSize, channel.WindowSize))
                throw new InvalidOperationException("Data is too large to send in one packet.");

            // Create message to send.
            using (var msgStream = new MemoryStream())
            using (var msgWriter = new SshStreamWriter(msgStream))
            {
                msgWriter.Write((byte)SshConnectionMessage.ChannelExtendedData);
                msgWriter.Write(channel.ClientChannel);
                msgWriter.Write((uint)dataType);
                msgWriter.WriteByteString(data);

                _client.SendPacket<SshConnectionMessage>(msgStream.ToArray());
            }
        }
 public DataReceivedEventArgs(SshExtendedDataType dataType)
     : base()
 {
     this.DataType = dataType;
 }
 protected internal virtual void ProcessExtendedData(SshExtendedDataType dataType, byte[] data)
 {
     // Raise event.
     OnDataReceived(new DataReceivedEventArgs(dataType));
 }