Пример #1
0
        public override void OnChannelOpenConfirmation(ISshChannelMessage p)
        {
            var msg = (SshChannelOpenConfirmation)p;

            this.RemoteChannel = msg.SenderChannel;
            waitHandle.Set();
        }
Пример #2
0
        public override void OnChannelOpenConfirmation(ISshChannelMessage p)
        {
            var msg = (SshChannelOpenConfirmation)p;

            this.RemoteChannel = msg.SenderChannel;
            session.Socket.WritePacket(new SshChannelRequestSftp(this.RemoteChannel));
        }
Пример #3
0
        public override void OnChannelData(ISshChannelMessage p)
        {
            var msg = (SshChannelData)p;

            try
            {
                if (client.Connected)
                {
                    var s = client.GetStream();
                    if (s.CanWrite)
                    {
                        s.Write(msg.Data, 0, msg.Data.Length);
                    }
                    else
                    {
                        throw new IOException();
                    }
                }
                else
                {
                    throw new IOException();
                }
            }
            catch (IOException)
            {
                if (!this.channelCloseSent)
                {
                    this.channelCloseSent = true;
                    session.Socket.WritePacket(new SshChannelClose(this.RemoteChannel));
                }
            }
        }
Пример #4
0
        public override void OnChannelOpenConfirmation(ISshChannelMessage p)
        {
            var msg = (SshChannelOpenConfirmation)p;

            this.RemoteChannel = msg.SenderChannel;
            session.Socket.WritePacket(new SshChannelRequestPty(this.RemoteChannel, "dumb", 80, 25, 640, 480, string.Empty));
        }
Пример #5
0
 public override void OnChannelEndOfFile(ISshChannelMessage p)
 {
     if (UseConsole && readConsoleThread != null && readConsoleThread.IsAlive)
     {
         readConsoleThread.Abort();
         readConsoleThread.Join();
     }
 }
Пример #6
0
 public override void OnChannelClose(ISshChannelMessage p)
 {
     this.client.Close();
     if (!this.channelCloseSent)
     {
         this.channelCloseSent = true;
         session.Socket.WritePacket(new SshChannelClose(this.RemoteChannel));
     }
     Close(SSH.StatusCode.OK);
 }
Пример #7
0
        public override void OnChannelEndOfFile(ISshChannelMessage p)
        {
            var msg = (SshChannelEOF)p;

            if (!this.channelEOFSent)
            {
                this.channelEOFSent = true;
                session.Socket.WritePacket(new SshChannelEOF(this.RemoteChannel));
            }
        }
Пример #8
0
        public override void OnChannelOpenFailure(ISshChannelMessage p)
        {
            var msg = (SshChannelOpenFailure)p;

            waitHandle.Set(new SocketException(
                               msg.ReasonCode == SshChannelOpenFailure.ChannelOpenFailureReasonCode.SSH_OPEN_ADMINISTRATIVELY_PROHIBITED ? 10013 :
                               msg.ReasonCode == SshChannelOpenFailure.ChannelOpenFailureReasonCode.SSH_OPEN_CONNECT_FAILED ? 10061 :
                               msg.ReasonCode == SshChannelOpenFailure.ChannelOpenFailureReasonCode.SSH_OPEN_UNKNOWN_CHANNEL_TYPE ? 10043 :
                               msg.ReasonCode == SshChannelOpenFailure.ChannelOpenFailureReasonCode.SSH_OPEN_RESOURCE_SHORTAGE ? 8 : 0));
        }
Пример #9
0
 public override void OnChannelClose(ISshChannelMessage p)
 {
     OnChannelEndOfFile(p);
     if (!closeSent)
     {
         closeSent = true;
         session.Socket.WritePacket(new SshChannelClose(this.RemoteChannel));
         Close(StatusCode.OK);
     }
     waitHandle.Set();
 }
Пример #10
0
        public override void OnChannelData(ISshChannelMessage p)
        {
            var msg = (SshChannelData)p;

            if (UseConsole)
            {
                WriteConsole(msg.Data);
            }
            else
            {
                OutputStream.Write(msg.Data, 0, msg.Data.Length);
            }
        }
Пример #11
0
 public override void OnChannelSuccess(ISshChannelMessage p)
 {
     if (!tty_opened)
     {
         tty_opened = true;
         session.Socket.WritePacket(new SshChannelRequest(this.RemoteChannel, "shell", true));
     }
     else
     {
         if (UseConsole)
         {
             readConsoleThread = new Thread(new ThreadStart(ReadConsole));
             readConsoleThread.Start();
         }
         waitHandle.Set();
     }
 }
Пример #12
0
 public abstract void OnChannelExtendedData(ISshChannelMessage p);
Пример #13
0
 public override void OnChannelSuccess(ISshChannelMessage p)
 {
 }
Пример #14
0
        public override void OnChannelExtendedData(ISshChannelMessage p)
        {
            var msg = (SshChannelExtendedData)p;

            StandardError.Write(msg.Data, 0, msg.Data.Length);
        }
Пример #15
0
 public abstract void OnChannelClose(ISshChannelMessage p);
Пример #16
0
 public override void OnChannelOpenFailure(ISshChannelMessage p)
 {
 }
Пример #17
0
        public override void OnChannelData(ISshChannelMessage p)
        {
            var msg = (SshChannelData)p;

            StandardOut.Write(msg.Data, 0, msg.Data.Length);
        }
Пример #18
0
 public override void OnChannelExtendedData(ISshChannelMessage p)
 {
 }
Пример #19
0
 public abstract void OnChannelData(ISshChannelMessage p);
Пример #20
0
 public override void OnChannelWindowAdjust(ISshChannelMessage p)
 {
 }
Пример #21
0
 public abstract void OnChannelEndOfFile(ISshChannelMessage p);
Пример #22
0
 public override void OnChannelSuccess(ISshChannelMessage p)
 {
     session.Socket.WritePacket(new SftpInit(this.RemoteChannel, 3));
 }
Пример #23
0
 public abstract void OnChannelSuccess(ISshChannelMessage p);
Пример #24
0
 public abstract void OnChannelRequest(ISshChannelMessage p);
Пример #25
0
 public override void OnChannelClose(ISshChannelMessage p)
 {
     session.Socket.WritePacket(new SshChannelClose(this.RemoteChannel));
     waitHandle.Set();
 }
Пример #26
0
 public override void OnChannelEndOfFile(ISshChannelMessage p)
 {
 }
Пример #27
0
 public override void OnChannelData(ISshChannelMessage p)
 {
     ProcessPacket((SftpPacket)p);
 }
Пример #28
0
 public abstract void OnChannelWindowAdjust(ISshChannelMessage p);
Пример #29
0
 public override void OnChannelRequest(ISshChannelMessage p)
 {
 }
Пример #30
0
 public override void OnChannelClose(ISshChannelMessage p)
 {
     waitHandle.Set();
 }