| 92 | } |
| 93 | |
| 94 | func (srv *Server) ensureHandlers() { |
| 95 | srv.mu.Lock() |
| 96 | defer srv.mu.Unlock() |
| 97 | |
| 98 | if srv.RequestHandlers == nil { |
| 99 | srv.RequestHandlers = map[string]RequestHandler{} |
| 100 | for k, v := range DefaultRequestHandlers { |
| 101 | srv.RequestHandlers[k] = v |
| 102 | } |
| 103 | } |
| 104 | if srv.ChannelHandlers == nil { |
| 105 | srv.ChannelHandlers = map[string]ChannelHandler{} |
| 106 | for k, v := range DefaultChannelHandlers { |
| 107 | srv.ChannelHandlers[k] = v |
| 108 | } |
| 109 | } |
| 110 | if srv.SubsystemHandlers == nil { |
| 111 | srv.SubsystemHandlers = map[string]SubsystemHandler{} |
| 112 | for k, v := range DefaultSubsystemHandlers { |
| 113 | srv.SubsystemHandlers[k] = v |
| 114 | } |
| 115 | } |
| 116 | } |
| 117 | |
| 118 | func (srv *Server) config(ctx Context) *gossh.ServerConfig { |
| 119 | srv.mu.RLock() |