19aa429bea
- Return clear error when Router is nil instead of panicking - Capture and log sniffing.Sniff and xnet.Pipe errors at Debug level - Move dial closure and Sniffer construction into HTTP/TLS switch branch to avoid unnecessary allocation on non-HTTP/TLS traffic - Merge ProtoHTTP and ProtoTLS cases, branch internally on proto - Add doc comments on NewHandler and Handle - Add comment explaining nil hop is valid (no forwarder config) - Pass readTimeout to xnet.Pipe via WithReadTimeout