summaryrefslogtreecommitdiff
path: root/internal/server
diff options
context:
space:
mode:
authorPaul Buetow <pbuetow@mimecast.com>2024-02-23 15:01:41 +0200
committerPaul Buetow <pbuetow@mimecast.com>2024-03-29 17:16:39 +0200
commit0f718c963e118139c893e9c52092e278bcd3b396 (patch)
treedce61c6695bc3badd455a64767252e6947b32711 /internal/server
parent7a0b0cde9c7c46d5f70ebc4a9d4f4e718d835f70 (diff)
lint warnings
Diffstat (limited to 'internal/server')
-rw-r--r--internal/server/handlers/basehandler.go8
-rw-r--r--internal/server/server.go32
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)
}