From dbcb695de4e43ce292e28fb84a0dfb69691f3add Mon Sep 17 00:00:00 2001 From: maride Date: Thu, 28 Sep 2017 14:58:24 +0200 Subject: [PATCH] Add statistics printed out every minute --- knockr.go | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/knockr.go b/knockr.go index 7780f29..47f35bf 100644 --- a/knockr.go +++ b/knockr.go @@ -21,6 +21,8 @@ var ( whitelist = make(map[string]int64) blacklist []string arguments *knockArguments + traffic_in int64 + traffic_out int64 ) func main() { @@ -33,7 +35,15 @@ func main() { // Launch listeners go listener(arguments.WhitelistPort, whitelist_handler) go listener(arguments.BlacklistPort, blacklist_handler) - listener(arguments.GatewayPort, gateway_handler) + go listener(arguments.GatewayPort, gateway_handler) + stats() +} + +func stats() { + for { + time.Sleep(60*time.Second) + fmt.Println("[STS] In ", traffic_in/1024, "KB, Out ", traffic_out/1024, "KB"); + } } func listener(port int, listen_func func(c net.Conn)) { @@ -163,7 +173,12 @@ func proxy(c net.Conn) { fmt.Println("[ERR] Proxy connection to server failed") fmt.Println(" Error is ", err) } else { - go io.Copy(c, ln) - io.Copy(ln, c) + // A bit of cluttery code for statistics purposes, sorry. + go func() { + delta_traffic_in, _ := io.Copy(c, ln) + traffic_in += delta_traffic_in + }() + delta_traffic_out, _ := io.Copy(ln, c) + traffic_out += delta_traffic_out } }