@@ -15,6 +15,16 @@ import (
15
15
// and ListenAndServeTLS methods after a call to Shutdown or Close.
16
16
var ErrServerClosed = errors .New ("ssh: Server closed" )
17
17
18
+ type RequestHandler func (ctx Context , srv * Server , req * gossh.Request ) (ok bool , payload []byte )
19
+
20
+ var DefaultRequestHandlers = map [string ]RequestHandler {}
21
+
22
+ type ChannelHandler func (srv * Server , conn * gossh.ServerConn , newChan gossh.NewChannel , ctx Context )
23
+
24
+ var DefaultChannelHandlers = map [string ]ChannelHandler {
25
+ "session" : DefaultSessionHandler ,
26
+ }
27
+
18
28
// Server defines parameters for running an SSH server. The zero value for
19
29
// Server is a valid configuration. When both PasswordHandler and
20
30
// PublicKeyHandler are nil, no client authentication is performed.
@@ -55,32 +65,6 @@ type Server struct {
55
65
doneChan chan struct {}
56
66
}
57
67
58
- type RequestHandler interface {
59
- HandleSSHRequest (ctx Context , srv * Server , req * gossh.Request ) (ok bool , payload []byte )
60
- }
61
-
62
- type RequestHandlerFunc func (ctx Context , srv * Server , req * gossh.Request ) (ok bool , payload []byte )
63
-
64
- func (f RequestHandlerFunc ) HandleSSHRequest (ctx Context , srv * Server , req * gossh.Request ) (ok bool , payload []byte ) {
65
- return f (ctx , srv , req )
66
- }
67
-
68
- var DefaultRequestHandlers = map [string ]RequestHandler {}
69
-
70
- type ChannelHandler interface {
71
- HandleSSHChannel (srv * Server , conn * gossh.ServerConn , newChan gossh.NewChannel , ctx Context )
72
- }
73
-
74
- type ChannelHandlerFunc func (srv * Server , conn * gossh.ServerConn , newChan gossh.NewChannel , ctx Context )
75
-
76
- func (f ChannelHandlerFunc ) HandleSSHChannel (srv * Server , conn * gossh.ServerConn , newChan gossh.NewChannel , ctx Context ) {
77
- f (srv , conn , newChan , ctx )
78
- }
79
-
80
- var DefaultChannelHandlers = map [string ]ChannelHandler {
81
- "session" : ChannelHandlerFunc (DefaultSessionHandler ),
82
- }
83
-
84
68
func (srv * Server ) ensureHostSigner () error {
85
69
if len (srv .HostSigners ) == 0 {
86
70
signer , err := generateSigner ()
@@ -288,7 +272,7 @@ func (srv *Server) handleConn(newConn net.Conn) {
288
272
ch .Reject (gossh .UnknownChannelType , "unsupported channel type" )
289
273
continue
290
274
}
291
- go handler . HandleSSHChannel (srv , sshConn , ch , ctx )
275
+ go handler (srv , sshConn , ch , ctx )
292
276
}
293
277
}
294
278
@@ -304,7 +288,7 @@ func (srv *Server) handleRequests(ctx Context, in <-chan *gossh.Request) {
304
288
}
305
289
/*reqCtx, cancel := context.WithCancel(ctx)
306
290
defer cancel() */
307
- ret , payload := handler . HandleSSHRequest (ctx , srv , req )
291
+ ret , payload := handler (ctx , srv , req )
308
292
req .Reply (ret , payload )
309
293
}
310
294
}
0 commit comments