ServerChannel.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. using System;
  2. using Renci.SshNet.Messages.Connection;
  3. namespace Renci.SshNet.Channels
  4. {
  5. internal abstract class ServerChannel : Channel
  6. {
  7. internal void Initialize(Session session, uint localWindowSize, uint localPacketSize, uint remoteChannelNumber, uint remoteWindowSize, uint remotePacketSize)
  8. {
  9. Initialize(session, localWindowSize, localPacketSize);
  10. InitializeRemoteInfo(remoteChannelNumber, remoteWindowSize, remotePacketSize);
  11. //Session.ChannelOpenReceived += OnChannelOpen;
  12. }
  13. //private void OnChannelOpen(object sender, MessageEventArgs<ChannelOpenMessage> e)
  14. //{
  15. // var channelOpenMessage = e.Message;
  16. // if (channelOpenMessage.LocalChannelNumber == LocalChannelNumber)
  17. // {
  18. // _remoteChannelNumber = channelOpenMessage.LocalChannelNumber;
  19. // RemoteWindowSize = channelOpenMessage.InitialWindowSize;
  20. // _remotePacketSize = channelOpenMessage.MaximumPacketSize;
  21. // OnOpen(e.Message.Info);
  22. // }
  23. //}
  24. protected void SendMessage(ChannelOpenConfirmationMessage message)
  25. {
  26. // No need to check whether channel is open when trying to open a channel
  27. Session.SendMessage(message);
  28. // When we act as server, consider the channel open when we've sent the
  29. // confirmation message to the peer
  30. IsOpen = true;
  31. }
  32. ///// <summary>
  33. ///// Called when channel need to be open on the client.
  34. ///// </summary>
  35. ///// <param name="info">Channel open information.</param>
  36. //protected virtual void OnOpen(ChannelOpenInfo info)
  37. //{
  38. //}
  39. protected override void Dispose(bool disposing)
  40. {
  41. if (disposing)
  42. {
  43. var session = Session;
  44. if (session != null)
  45. {
  46. //session.ChannelOpenReceived -= OnChannelOpen;
  47. }
  48. }
  49. base.Dispose(disposing);
  50. }
  51. }
  52. }