From 2d18a6cdbe9f57fdf85b3f65bab1480c11ca793e Mon Sep 17 00:00:00 2001 From: bel Date: Fri, 12 Aug 2022 23:01:03 -0600 Subject: [PATCH] log --- config.go | 2 +- throttle.go | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config.go b/config.go index 68b2c6e..b410b83 100644 --- a/config.go +++ b/config.go @@ -19,7 +19,7 @@ func NewConfig() *Config { as := args.NewArgSet() as.Append(args.INT, "p", "port to listen on", 61113) - as.Append(args.INT, "kbps", "port to listen on", 61113) + as.Append(args.INT, "kbps", "kilobytes per sec limit", -1) as.Append(args.BOOL, "tls-insecure", "permit tls insecure", false) as.Append(args.DURATION, "t", "timeout", time.Minute) diff --git a/throttle.go b/throttle.go index c6fc37c..050eb5b 100644 --- a/throttle.go +++ b/throttle.go @@ -3,6 +3,8 @@ package main import ( "context" "io" + "log" + "time" "golang.org/x/time/rate" ) @@ -15,12 +17,14 @@ type throttledWriter struct { func (tw throttledWriter) Write(b []byte) (int, error) { if tw.limiter != nil { + start := time.Now() if block := tw.limiter.Burst(); len(b) > block { b = b[:block] } if err := tw.limiter.WaitN(tw.ctx, len(b)); err != nil { return 0, err } + log.Printf("limited %v bytes for %v", len(b), time.Since(start)) } return tw.w.Write(b) }