@@ -65,6 +65,8 @@ func (f RequestHandlerFunc) HandleSSHRequest(ctx Context, srv *Server, req *goss
6565 return f (ctx , srv , req )
6666}
6767
68+ var DefaultRequestHandlers = map [string ]RequestHandler {}
69+
6870type ChannelHandler interface {
6971 HandleSSHChannel (srv * Server , conn * gossh.ServerConn , newChan gossh.NewChannel , ctx Context )
7072}
@@ -75,6 +77,10 @@ func (f ChannelHandlerFunc) HandleSSHChannel(srv *Server, conn *gossh.ServerConn
7577 f (srv , conn , newChan , ctx )
7678}
7779
80+ var DefaultChannelHandlers = map [string ]ChannelHandler {
81+ "session" : ChannelHandlerFunc (DefaultSessionHandler ),
82+ }
83+
7884func (srv * Server ) ensureHostSigner () error {
7985 if len (srv .HostSigners ) == 0 {
8086 signer , err := generateSigner ()
@@ -90,15 +96,15 @@ func (srv *Server) ensureHandlers() {
9096 srv .mu .Lock ()
9197 defer srv .mu .Unlock ()
9298 if srv .RequestHandlers == nil {
93- srv .RequestHandlers = map [string ]RequestHandler {
94- "tcpip-forward" : forwardedTCPHandler {},
95- "cancel-tcpip-forward" : forwardedTCPHandler {},
99+ srv .RequestHandlers = map [string ]RequestHandler {}
100+ for k , v := range DefaultRequestHandlers {
101+ srv . RequestHandlers [ k ] = v
96102 }
97103 }
98104 if srv .ChannelHandlers == nil {
99- srv .ChannelHandlers = map [string ]ChannelHandler {
100- "session" : ChannelHandlerFunc ( sessionHandler ),
101- "direct-tcpip" : ChannelHandlerFunc ( directTcpipHandler ),
105+ srv .ChannelHandlers = map [string ]ChannelHandler {}
106+ for k , v := range DefaultChannelHandlers {
107+ srv . ChannelHandlers [ k ] = v
102108 }
103109 }
104110}
0 commit comments