diff options
| author | Paul Buetow <pbuetow@mimecast.com> | 2024-02-23 15:01:41 +0200 |
|---|---|---|
| committer | Paul Buetow <pbuetow@mimecast.com> | 2024-03-29 17:16:39 +0200 |
| commit | 0f718c963e118139c893e9c52092e278bcd3b396 (patch) | |
| tree | dce61c6695bc3badd455a64767252e6947b32711 /internal/server | |
| parent | 7a0b0cde9c7c46d5f70ebc4a9d4f4e718d835f70 (diff) | |
lint warnings
Diffstat (limited to 'internal/server')
| -rw-r--r-- | internal/server/handlers/basehandler.go | 8 | ||||
| -rw-r--r-- | internal/server/server.go | 32 |
2 files changed, 27 insertions, 13 deletions
diff --git a/internal/server/handlers/basehandler.go b/internal/server/handlers/basehandler.go index 7daf071..f6ab3db 100644 --- a/internal/server/handlers/basehandler.go +++ b/internal/server/handlers/basehandler.go @@ -130,7 +130,7 @@ func (h *baseHandler) Write(p []byte) (n int, err error) { for _, b := range p { switch b { case ';': - h.handleCommand(string(h.writeBuf.Bytes())) + h.handleCommand(h.writeBuf.String()) h.writeBuf.Reset() default: h.writeBuf.WriteByte(b) @@ -252,15 +252,15 @@ func (h *baseHandler) handleOptions(options map[string]string) { // We can read the options only once, will cause a data race otherwise if // changed multiple times for multiple incoming commands. h.once.Do(func() { - if quiet, _ := options["quiet"]; quiet == "true" { + if quiet := options["quiet"]; quiet == "true" { dlog.Server.Debug(h.user, "Enabling quiet mode") h.quiet = true } - if plain, _ := options["plain"]; plain == "true" { + if plain := options["plain"]; plain == "true" { dlog.Server.Debug(h.user, "Enabling plain mode") h.plain = true } - if serverless, _ := options["serverless"]; serverless == "true" { + if serverless := options["serverless"]; serverless == "true" { dlog.Server.Debug(h.user, "Enabling serverless mode") h.serverless = true } diff --git a/internal/server/server.go b/internal/server/server.go index 761880d..8b581b1 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -130,7 +130,9 @@ func (s *Server) handleChannel(ctx context.Context, sshConn gossh.Conn, user, err := user.New(sshConn.User(), sshConn.RemoteAddr().String()) if err != nil { dlog.Server.Error(user, err) - newChannel.Reject(gossh.Prohibited, err.Error()) + if err := newChannel.Reject(gossh.Prohibited, err.Error()); err != nil { + dlog.Server.Debug(err) + } return } @@ -138,7 +140,9 @@ func (s *Server) handleChannel(ctx context.Context, sshConn gossh.Conn, if newChannel.ChannelType() != "session" { err := errors.New("Don'w allow other channel types than session") dlog.Server.Error(user, err) - newChannel.Reject(gossh.Prohibited, err.Error()) + if err := newChannel.Reject(gossh.Prohibited, err.Error()); err != nil { + dlog.Server.Debug(err) + } return } @@ -160,7 +164,9 @@ func (s *Server) handleRequests(ctx context.Context, sshConn gossh.Conn, dlog.Server.Info(user, "Invoking request handler") for req := range in { var payload = struct{ Value string }{} - gossh.Unmarshal(req.Payload, &payload) + if err := gossh.Unmarshal(req.Payload, &payload); err != nil { + dlog.Server.Error(user, err) + } switch req.Type { case "shell": @@ -177,14 +183,18 @@ func (s *Server) handleRequests(ctx context.Context, sshConn gossh.Conn, } go func() { + defer terminate() // Broken pipe, cancel - io.Copy(channel, handler) - terminate() + if _, err := io.Copy(channel, handler); err != nil { + dlog.Server.Trace(user, fmt.Errorf("channel->handler: %w", err)) + } }() go func() { + defer terminate() // Broken pipe, cancel - io.Copy(handler, channel) - terminate() + if _, err := io.Copy(handler, channel); err != nil { + dlog.Server.Trace(user, fmt.Errorf("handler->channel: %w", err)) + } }() go func() { select { @@ -203,9 +213,13 @@ func (s *Server) handleRequests(ctx context.Context, sshConn gossh.Conn, }() // Only serving shell type - req.Reply(true, nil) + if err := req.Reply(true, nil); err != nil { + dlog.Server.Trace(user, fmt.Errorf("reply(true): %w", err)) + } default: - req.Reply(false, nil) + if err := req.Reply(false, nil); err != nil { + dlog.Server.Trace(user, fmt.Errorf("reply(false): %w", err)) + } return fmt.Errorf("Closing SSH connection as unknown request received|%s|%v", req.Type, payload.Value) } |
