From 1a243b94c5bc8f9cdf5f1f97f73692ef88c04c58 Mon Sep 17 00:00:00 2001 From: "Lawrence, Rendall" Date: Tue, 12 Mar 2024 15:29:58 +0300 Subject: [PATCH] (minor) unify log keys --- bittorrent/peer.go | 2 +- bittorrent/request.go | 4 ++-- cmd/mochi/server.go | 2 +- frontend/frontend.go | 2 +- frontend/http/frontend.go | 5 +++-- frontend/http/params.go | 2 +- frontend/udp/frontend.go | 5 ++++- middleware/hooks.go | 14 +++++++------- middleware/jwt/jwt.go | 5 +++-- middleware/middleware.go | 2 +- storage/storage.go | 2 +- 11 files changed, 25 insertions(+), 20 deletions(-) diff --git a/bittorrent/peer.go b/bittorrent/peer.go index 8d0b323..3d791da 100644 --- a/bittorrent/peer.go +++ b/bittorrent/peer.go @@ -126,7 +126,7 @@ func (p Peer) Addr() netip.Addr { // MarshalZerologObject writes fields into zerolog event func (p Peer) MarshalZerologObject(e *zerolog.Event) { e.Stringer("id", p.ID). - Stringer("address", p.Addr()). + Stringer("addr", p.Addr()). Uint16("port", p.Port()) } diff --git a/bittorrent/request.go b/bittorrent/request.go index ad2a7ff..ca446b6 100644 --- a/bittorrent/request.go +++ b/bittorrent/request.go @@ -25,7 +25,7 @@ func (a RequestAddress) IsValid() bool { // MarshalZerologObject writes fields into zerolog event func (a RequestAddress) MarshalZerologObject(e *zerolog.Event) { - e.Stringer("address", a.Addr).Bool("provided", a.Provided) + e.Stringer("addr", a.Addr).Bool("provided", a.Provided) } // RequestAddresses is an array of RequestAddress used mainly for @@ -168,7 +168,7 @@ func (r AnnounceRequest) MarshalZerologObject(e *zerolog.Event) { Uint64("left", r.Left). Uint64("downloaded", r.Downloaded). Uint64("uploaded", r.Uploaded). - Object("peers", r.RequestPeer). + Object("source", r.RequestPeer). Object("params", r.Params) } diff --git a/cmd/mochi/server.go b/cmd/mochi/server.go index 6f16750..ab6c7ed 100644 --- a/cmd/mochi/server.go +++ b/cmd/mochi/server.go @@ -27,7 +27,7 @@ type Server struct { // creation of a new one. func (r *Server) Run(cfg *Config) (err error) { if len(cfg.MetricsAddr) > 0 { - log.Info().Str("address", cfg.MetricsAddr).Msg("starting metrics server") + log.Info().Str("addr", cfg.MetricsAddr).Msg("starting metrics server") r.frontends = append(r.frontends, metrics.NewServer(cfg.MetricsAddr)) } else { log.Info().Msg("metrics disabled because of empty address") diff --git a/frontend/frontend.go b/frontend/frontend.go index 9276ed3..c2f5fda 100644 --- a/frontend/frontend.go +++ b/frontend/frontend.go @@ -58,7 +58,7 @@ func NewFrontends(configs []conf.NamedMapConfig, logic *middleware.Logic) (fs [] buildersMU.RLock() defer buildersMU.RUnlock() for _, c := range configs { - logger.Debug().Object("frontend", c).Msg("starting frontend") + logger.Debug().Str("name", c.Name).Object("config", c).Msg("starting frontend") newFrontend, ok := builders[c.Name] if !ok { err = fmt.Errorf("hook with name '%s' does not exists", c.Name) diff --git a/frontend/http/frontend.go b/frontend/http/frontend.go index 58a113c..cf22672 100644 --- a/frontend/http/frontend.go +++ b/frontend/http/frontend.go @@ -207,6 +207,7 @@ func NewFrontend(c conf.MapConfig, logic *middleware.Logic) (frontend.Frontend, } func runServer(s *fasthttp.Server, cfg *Config) { + logger.Debug().Str("addr", cfg.Addr).Msg("starting listener") ln, err := cfg.ListenTCP() if err == nil { if s.TLSConfig == nil { @@ -217,9 +218,9 @@ func runServer(s *fasthttp.Server, cfg *Config) { } defer ln.Close() if err == nil { - logger.Info().Msg("server stopped") + logger.Info().Str("addr", cfg.Addr).Msg("listener stopped") } else if !errors.Is(err, http.ErrServerClosed) { - logger.Fatal().Err(err).Msg("server failed") + logger.Fatal().Str("addr", cfg.Addr).Err(err).Msg("listener failed") } } diff --git a/frontend/http/params.go b/frontend/http/params.go index 60886e6..ab96e2f 100644 --- a/frontend/http/params.go +++ b/frontend/http/params.go @@ -33,5 +33,5 @@ func (qp queryParams) InfoHashes() bittorrent.InfoHashes { // MarshalZerologObject writes fields into zerolog event func (qp queryParams) MarshalZerologObject(e *zerolog.Event) { - e.Stringer("query", qp.Args) + e.Str("query", str2bytes.BytesToString(qp.Args.QueryString())) } diff --git a/frontend/udp/frontend.go b/frontend/udp/frontend.go index 596a58a..78a39c7 100644 --- a/frontend/udp/frontend.go +++ b/frontend/udp/frontend.go @@ -137,12 +137,15 @@ func NewFrontend(c conf.MapConfig, logic *middleware.Logic) (frontend.Frontend, var ctx context.Context ctx, f.ctxCancel = context.WithCancel(context.Background()) + logger.Debug().Str("addr", cfg.Addr).Msg("starting listener") for i := range f.sockets { if f.sockets[i], err = cfg.ListenUDP(); err == nil { f.wg.Add(1) go func(socket *net.UDPConn, ctx context.Context) { if err := f.serve(ctx, socket); err != nil { - logger.Fatal().Err(err).Msg("server failed") + logger.Fatal().Str("addr", cfg.Addr).Err(err).Msg("listener failed") + } else { + logger.Info().Str("addr", cfg.Addr).Msg("listener stopped") } }(f.sockets[i], ctx) } diff --git a/middleware/hooks.go b/middleware/hooks.go index ce7ec89..0d25686 100644 --- a/middleware/hooks.go +++ b/middleware/hooks.go @@ -140,7 +140,7 @@ type fetchArgs struct { func (h *responseHook) appendPeers(ctx context.Context, req *bittorrent.AnnounceRequest, resp *bittorrent.AnnounceResponse) (err error) { seeding := req.Left == 0 - max := int(req.NumWant) + maxPeers := int(req.NumWant) peers := make([]bittorrent.Peer, 0, len(resp.IPv4Peers)+len(resp.IPv6Peers)) primaryIP := req.GetFirst() v6First := primaryIP.Is6() @@ -158,24 +158,24 @@ func (h *responseHook) appendPeers(ctx context.Context, req *bittorrent.Announce peers = append(peers, resp.IPv4Peers...) peers = append(peers, resp.IPv6Peers...) } - if l := len(peers); l > max { - peers, max = peers[:max], 0 + if l := len(peers); l > maxPeers { + peers, maxPeers = peers[:maxPeers], 0 } else { - max -= l + maxPeers -= l } for _, a := range args { - if max <= 0 { + if maxPeers <= 0 { break } var storePeers []bittorrent.Peer - storePeers, err = h.store.AnnouncePeers(ctx, a.ih, seeding, max, a.v6) + storePeers, err = h.store.AnnouncePeers(ctx, a.ih, seeding, maxPeers, a.v6) if err != nil && !errors.Is(err, storage.ErrResourceDoesNotExist) { return err } err = nil peers = append(peers, storePeers...) - max -= len(storePeers) + maxPeers -= len(storePeers) } // Some clients expect a minimum of their own peer representation returned to diff --git a/middleware/jwt/jwt.go b/middleware/jwt/jwt.go index 08d7ac4..06b91d2 100644 --- a/middleware/jwt/jwt.go +++ b/middleware/jwt/jwt.go @@ -82,6 +82,7 @@ func build(config conf.MapConfig, _ storage.PeerStorage) (h middleware.Hook, err cfg.Header = authorizationHeader logger.Warn(). Str("name", "Header"). + Str("provided", ""). Str("default", cfg.Header). Msg("falling back to default configuration") } @@ -149,7 +150,7 @@ func (h *hook) HandleAnnounce(ctx context.Context, req *bittorrent.AnnounceReque logger.Info(). Stringer("claimInfoHash", claimIH). Stringer("requestInfoHash", req.InfoHash). - Object("peer", req.RequestPeer). + Object("source", req.RequestPeer). Msg("unequal 'infohash' claim when validating JWT") err = ErrInvalidJWT } @@ -220,7 +221,7 @@ func (h *hook) HandleScrape(ctx context.Context, req *bittorrent.ScrapeRequest, } else { logger.Info(). Err(jwtErr). - Array("source", &req.RequestAddresses). + Array("addresses", &req.RequestAddresses). Msg("JWT validation failed") err = ErrInvalidJWT } diff --git a/middleware/middleware.go b/middleware/middleware.go index d25fb30..0f6c3b9 100644 --- a/middleware/middleware.go +++ b/middleware/middleware.go @@ -48,7 +48,7 @@ func NewHooks(configs []conf.NamedMapConfig, storage storage.PeerStorage) (hooks buildersMU.RLock() defer buildersMU.RUnlock() for _, c := range configs { - logger.Debug().Object("hook", c).Msg("starting hook") + logger.Debug().Str("name", c.Name).Object("hook", c).Msg("starting hook") newHook, ok := builders[c.Name] if !ok { err = fmt.Errorf("hook with name '%s' does not exists", c.Name) diff --git a/storage/storage.go b/storage/storage.go index 841559c..b38c4d7 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -236,7 +236,7 @@ func RegisterDriver(name string, d Driver) { func NewStorage(cfg conf.NamedMapConfig) (ps PeerStorage, err error) { driversMU.RLock() defer driversMU.RUnlock() - logger.Debug().Object("cfg", cfg).Msg("staring storage") + logger.Debug().Object("config", cfg).Msg("staring storage") var b Driver b, ok := drivers[cfg.Name]