Skip to content

Commit

Permalink
feat: disable print log for i/o timeout
Browse files Browse the repository at this point in the history
  • Loading branch information
ryanbekhen committed Nov 27, 2023
1 parent dbb3849 commit c73984f
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 15 deletions.
8 changes: 0 additions & 8 deletions nanoproxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import (
"github.com/rs/zerolog"
"github.com/ryanbekhen/nanoproxy/pkg/config"
"github.com/ryanbekhen/nanoproxy/pkg/socks5"
"net"
"os"
"time"

Expand All @@ -30,13 +29,6 @@ func main() {
Resolver: &socks5.DNSResolver{},
ClientConnTimeout: cfg.ClientTimeout,
DestConnTimeout: cfg.DestTimeout,
AfterRequest: func(req *socks5.Request, conn net.Conn) {
logger.Info().
Str("client_addr", conn.RemoteAddr().String()).
Str("dest_addr", req.DestAddr.String()).
Str("latency", req.Latency.String()).
Msg("request processed")
},
}

sock5Server := socks5.New(&socks5Config)
Expand Down
20 changes: 13 additions & 7 deletions pkg/socks5/socks5.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package socks5
import (
"bufio"
"errors"
"fmt"
"github.com/rs/zerolog"
"net"
"os"
Expand Down Expand Up @@ -149,9 +148,16 @@ func (s *Server) handleConnection(conn net.Conn) {
request.RemoteAddr = &AddrSpec{IP: clientAddr.IP, Port: clientAddr.Port}
}

if err := s.handleRequest(request, conn); err != nil {
s.config.Logger.Err(err).Msg("failed to handle request")
return
if err := s.handleRequest(request, conn); err != nil &&
!strings.Contains(err.Error(), "i/o timeout") {
s.config.Logger.Err(err).
Msg("request failed")
} else {
s.config.Logger.Info().
Str("client_addr", conn.RemoteAddr().String()).
Str("dest_addr", request.DestAddr.String()).
Str("latency", request.Latency.String()).
Msg("request completed")
}

if s.config.AfterRequest != nil {
Expand Down Expand Up @@ -200,7 +206,7 @@ func (s *Server) handleRequest(req *Request, conn net.Conn) error {
// return s.handleAssociate(conn, req)
default:
if err := sendReply(conn, StatusCommandNotSupported.Uint8(), nil); err != nil {
return fmt.Errorf("failed to send reply: %w", err)
return ErrFailedToSendReply
}
return ErrUnsupportedCommand
}
Expand Down Expand Up @@ -228,7 +234,7 @@ func (s *Server) handleConnect(conn net.Conn, req *Request) error {
}

if err := sendReply(conn, resp.Uint8(), nil); err != nil {
return fmt.Errorf("failed to send reply: %w", err)
return ErrFailedToSendReply
}
return ErrFailedToConnect
}
Expand All @@ -239,7 +245,7 @@ func (s *Server) handleConnect(conn net.Conn, req *Request) error {
local := dest.LocalAddr().(*net.TCPAddr)
bind := AddrSpec{IP: local.IP, Port: local.Port}
if err := sendReply(conn, StatusRequestGranted.Uint8(), &bind); err != nil {
return fmt.Errorf("failed to send reply: %w", err)
return ErrFailedToSendReply
}

errChan := make(chan error, 2)
Expand Down

0 comments on commit c73984f

Please sign in to comment.