"net"
"os"
"path/filepath"
- "runtime/debug"
"strings"
"sync"
"time"
if err := register(t, tr); err != nil {
server.Logger.Errorw("unable to register with tracker %v", "error", err)
}
- server.Logger.Infow("Sent Tracker registration", "data", tr)
+ server.Logger.Debugw("Sent Tracker registration", "addr", t)
}
time.Sleep(trackerUpdateFrequency * time.Second)
return nil
}
-// dontPanic logs panics instead of crashing
-func dontPanic(logger *zap.SugaredLogger) {
- if r := recover(); r != nil {
- fmt.Println("stacktrace from panic: \n" + string(debug.Stack()))
- logger.Errorw("PANIC", "err", r, "trace", string(debug.Stack()))
- }
-}
-
// handleNewConnection takes a new net.Conn and performs the initial login sequence
func (s *Server) handleNewConnection(ctx context.Context, rwc io.ReadWriteCloser, remoteAddr string) error {
defer dontPanic(s.Logger)