fix(observer): add nil guards, fix resource leak, silent event drops, and missing doc comments

- WrapUDPConn, WrapPacketConn, WrapListener: add nil guards for pc/ln params
- NewGRPCPlugin: return no-op observer instead of nil on connection error
- gRPC plugin: fix resource leak by wiring Close() through observerWrapper
  and service.Close() lifecycle
- Both plugins: log unknown event types instead of silently dropping them
- httpPlugin: remove dead nil check for always-non-nil client field
- Stats.Reset: update core interface doc to match implementation behavior
- Add doc comments to all exported symbols across the observer package
This commit is contained in:
ginuerzh
2026-05-24 23:13:52 +08:00
parent bc3d12ec2c
commit 7c95d40e05
8 changed files with 58 additions and 4 deletions
+2
View File
@@ -12,6 +12,8 @@ type readWriter struct {
stats stats.Stats
}
// WrapReadWriter wraps an io.ReadWriter to track input and output bytes.
// If rw or stats is nil, the original ReadWriter is returned unchanged.
func WrapReadWriter(rw io.ReadWriter, stats stats.Stats) io.ReadWriter {
if rw == nil || stats == nil {
return rw