From 4a56b1440c2bc315adda61b542793b7780cb8730 Mon Sep 17 00:00:00 2001 From: Bluesaxorcist Date: Mon, 21 Oct 2019 17:32:39 -0500 Subject: Removed termmon and fixed compiler warnings --- modes/pt_socks5/pt_socks5.go | 57 ++++++++++++++------------------ modes/stun_udp/stun_udp.go | 31 ++++++----------- modes/transparent_tcp/transparent_tcp.go | 54 ++++++++++++------------------ modes/transparent_udp/transparent_udp.go | 26 ++++++--------- 4 files changed, 67 insertions(+), 101 deletions(-) (limited to 'modes') diff --git a/modes/pt_socks5/pt_socks5.go b/modes/pt_socks5/pt_socks5.go index c3a8c45..e2aa546 100644 --- a/modes/pt_socks5/pt_socks5.go +++ b/modes/pt_socks5/pt_socks5.go @@ -46,22 +46,21 @@ import ( "github.com/OperatorFoundation/shapeshifter-dispatcher/common/log" "github.com/OperatorFoundation/shapeshifter-dispatcher/common/socks5" - "github.com/OperatorFoundation/shapeshifter-dispatcher/common/termmon" "github.com/OperatorFoundation/shapeshifter-ipc" "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2" "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4" ) -func ClientSetup(termMon *termmon.TermMonitor, socksAddr string, target string, ptClientProxy *url.URL, names []string, options string) (launched bool, listeners []net.Listener) { +func ClientSetup(socksAddr string, ptClientProxy *url.URL, names []string, options string) (launched bool, listeners []net.Listener) { // Launch each of the client listeners. for _, name := range names { ln, err := net.Listen("tcp", socksAddr) if err != nil { - pt.CmethodError(name, err.Error()) + _ = pt.CmethodError(name, err.Error()) continue } - go clientAcceptLoop(target, termMon, name, ln, ptClientProxy, options) + go clientAcceptLoop(name, ln, ptClientProxy, options) pt.Cmethod(name, socks5.Version(), ln.Addr()) log.Infof("%s - registered listener: %s", name, ln.Addr()) @@ -73,8 +72,8 @@ func ClientSetup(termMon *termmon.TermMonitor, socksAddr string, target string, return } -//FIXME figure out how to make this function match the other modes -func clientAcceptLoop(target string, termMon *termmon.TermMonitor, name string, ln net.Listener, proxyURI *url.URL, options string){ + +func clientAcceptLoop(name string, ln net.Listener, proxyURI *url.URL, options string) { for { conn, err := ln.Accept() if err != nil { @@ -85,15 +84,12 @@ func clientAcceptLoop(target string, termMon *termmon.TermMonitor, name string, } continue } - go clientHandler(target, termMon, name, conn, proxyURI, options) + go clientHandler(name, conn, proxyURI, options) } } -func clientHandler(target string, termMon *termmon.TermMonitor, name string, conn net.Conn, proxyURI *url.URL, options string) { - termMon.OnHandlerStart() - defer termMon.OnHandlerFinish() - - var needOptions bool = options == "" +func clientHandler(name string, conn net.Conn, proxyURI *url.URL, options string) { + var needOptions = options == "" // Read the client's SOCKS handshake. socksReq, err := socks5.Handshake(conn, needOptions) @@ -122,28 +118,27 @@ func clientHandler(target string, termMon *termmon.TermMonitor, name string, con var dialer proxy.Dialer // Deal with arguments. - transport, _ := pt_extras.ArgsToDialer(socksReq.Target, name, args,dialer) + transport, _ := pt_extras.ArgsToDialer(socksReq.Target, name, args, dialer) // Obtain the proxy dialer if any, and create the outgoing TCP connection. - dialFn := proxy.Direct.Dial if proxyURI != nil { - dialer, err := proxy.FromURL(proxyURI, proxy.Direct) - if err != nil { + var proxyErr error + dialer, proxyErr = proxy.FromURL(proxyURI, proxy.Direct) + if proxyErr != nil { // This should basically never happen, since config protocol // verifies this. log.Errorf("%s(%s) - failed to obtain proxy dialer: %s", name, addrStr, log.ElideError(err)) - socksReq.Reply(socks5.ReplyGeneralFailure) + _ = socksReq.Reply(socks5.ReplyGeneralFailure) return } - dialFn = dialer.Dial } - fmt.Println("Got dialer", dialFn, proxyURI, proxy.Direct) + fmt.Println("Got dialer", dialer, proxyURI, proxy.Direct) - remote, _ := transport.Dial() - if err != nil { + remote, err2 := transport.Dial() + if err2 != nil { log.Errorf("%s(%s) - outgoing connection failed: %s", name, addrStr, log.ElideError(err)) - socksReq.Reply(socks5.ErrorToReplyCode(err)) + _ = socksReq.Reply(socks5.ErrorToReplyCode(err)) return } err = socksReq.Reply(socks5.ReplySucceeded) @@ -161,7 +156,7 @@ func clientHandler(target string, termMon *termmon.TermMonitor, name string, con return } -func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, options string) (launched bool, listeners []net.Listener) { +func ServerSetup(ptServerInfo pt.ServerInfo, options string) (launched bool, listeners []net.Listener) { for _, bindaddr := range ptServerInfo.Bindaddrs { name := bindaddr.MethodName @@ -199,7 +194,7 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, optio return } case "replicant": - config, ok :=args.Get("config") + config, ok := args.Get("config") fmt.Println(config) if !ok { return false, nil @@ -207,7 +202,7 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, optio transport := replicant.New(replicant.Config{}) listen = transport.Listen case "Dust": - idPath, ok :=args.Get("idPath") + idPath, ok := args.Get("idPath") if !ok { return false, nil } @@ -244,13 +239,11 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, optio return } - - f := listen transportLn := f(bindaddr.Addr.String()) - go serverAcceptLoop(termMon, name, transportLn, &ptServerInfo) + go serverAcceptLoop(name, transportLn, &ptServerInfo) // if args := f.Args(); args != nil { // pt.SmethodArgs(name, ln.Addr(), *args) @@ -268,7 +261,7 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, optio return } -func serverAcceptLoop(termMon *termmon.TermMonitor, name string, ln net.Listener, info *pt.ServerInfo){ +func serverAcceptLoop(name string, ln net.Listener, info *pt.ServerInfo) { for { conn, err := ln.Accept() if err != nil { @@ -277,13 +270,11 @@ func serverAcceptLoop(termMon *termmon.TermMonitor, name string, ln net.Listener } continue } - go serverHandler(termMon, name, conn, info) + go serverHandler(name, conn, info) } } -func serverHandler(termMon *termmon.TermMonitor, name string, remote net.Conn, info *pt.ServerInfo) { - termMon.OnHandlerStart() - defer termMon.OnHandlerFinish() +func serverHandler(name string, remote net.Conn, info *pt.ServerInfo) { addrStr := log.ElideAddr(remote.RemoteAddr().String()) log.Infof("%s(%s) - new connection", name, addrStr) diff --git a/modes/stun_udp/stun_udp.go b/modes/stun_udp/stun_udp.go index 4abe433..3d72b69 100644 --- a/modes/stun_udp/stun_udp.go +++ b/modes/stun_udp/stun_udp.go @@ -47,7 +47,6 @@ import ( "github.com/willscott/goturn" "github.com/OperatorFoundation/shapeshifter-dispatcher/common/log" - "github.com/OperatorFoundation/shapeshifter-dispatcher/common/termmon" "github.com/OperatorFoundation/shapeshifter-ipc" "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2" "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4" @@ -64,7 +63,7 @@ func NewConnState() ConnState { type ConnTracker map[string]ConnState -func ClientSetup(termMon *termmon.TermMonitor, socksAddr string, target string, ptClientProxy *url.URL, names []string, options string) bool { +func ClientSetup(socksAddr string, target string, ptClientProxy *url.URL, names []string, options string) bool { // Launch each of the client listeners. for _, name := range names { udpAddr, err := net.ResolveUDPAddr("udp", socksAddr) @@ -79,7 +78,7 @@ func ClientSetup(termMon *termmon.TermMonitor, socksAddr string, target string, continue } - go clientHandler(target, termMon, name, options, ln, ptClientProxy) + go clientHandler(target, name, options, ln, ptClientProxy) log.Infof("%s - registered listener: %s", name, ln) } @@ -87,12 +86,9 @@ func ClientSetup(termMon *termmon.TermMonitor, socksAddr string, target string, return true } -func clientHandler(target string, termMon *termmon.TermMonitor, name string, options string, conn *net.UDPConn, proxyURI *url.URL) { +func clientHandler(target string, name string, options string, conn *net.UDPConn, proxyURI *url.URL) { - termMon.OnHandlerStart() //defers are never called due to infinite loop - //defer termMon.OnHandlerFinish() - //defer conn.Close() fmt.Println("@@@ handling...") @@ -133,7 +129,7 @@ func clientHandler(target string, termMon *termmon.TermMonitor, name string, opt fmt.Println("Opening connection to ", target) - openConnection(&tracker, addr.String(), target, termMon, name, options, proxyURI) + openConnection(&tracker, addr.String(), target, name, options, proxyURI) // Drop the packet. fmt.Println("recv: Open") @@ -141,7 +137,7 @@ func clientHandler(target string, termMon *termmon.TermMonitor, name string, opt } } -func openConnection(tracker *ConnTracker, addr string, target string, termMon *termmon.TermMonitor, name string, options string, proxyURI *url.URL) { +func openConnection(tracker *ConnTracker, addr string, target string, name string, options string, proxyURI *url.URL) { fmt.Println("Making dialer...") newConn := NewConnState() @@ -193,7 +189,7 @@ func dialConn(tracker *ConnTracker, addr string, target string, name string, opt (*tracker)[addr] = ConnState{remote, false} } -func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, options string, stateDir string) (launched bool, listeners []net.Listener) { +func ServerSetup(ptServerInfo pt.ServerInfo, options string, stateDir string) (launched bool, listeners []net.Listener) { fmt.Println("ServerSetup") // Launch each of the server listeners. @@ -268,7 +264,7 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, optio transportLn := listen(bindaddr.Addr.String()) - go serverAcceptLoop(termMon, name, transportLn, &ptServerInfo) + go serverAcceptLoop(name, transportLn, &ptServerInfo) log.Infof("%s - registered listener: %s", name, log.ElideAddr(bindaddr.Addr.String())) @@ -345,7 +341,7 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, optio // return int(port), err //} -func serverAcceptLoop(termMon *termmon.TermMonitor, name string, ln net.Listener, info *pt.ServerInfo){ +func serverAcceptLoop(name string, ln net.Listener, info *pt.ServerInfo) { for { conn, err := ln.Accept() fmt.Println("accepted") @@ -357,15 +353,13 @@ func serverAcceptLoop(termMon *termmon.TermMonitor, name string, ln net.Listener } continue } - go serverHandler(termMon, name, conn, info) + go serverHandler(name, conn, info) } } -func serverHandler(termMon *termmon.TermMonitor, name string, remote net.Conn, info *pt.ServerInfo) { +func serverHandler(name string, remote net.Conn, info *pt.ServerInfo) { var header *common.Message - termMon.OnHandlerStart() - addrStr := log.ElideAddr(remote.RemoteAddr().String()) fmt.Println("### handling", name) log.Infof("%s(%s) - new connection", name, addrStr) @@ -373,21 +367,19 @@ func serverHandler(termMon *termmon.TermMonitor, name string, remote net.Conn, i serverAddr, err := net.ResolveUDPAddr("udp", info.OrAddr.String()) if err != nil { _ = remote.Close() - termMon.OnHandlerFinish() + golog.Fatal(err) } localAddr, err := net.ResolveUDPAddr("udp", "127.0.0.1:0") if err != nil { _ = remote.Close() - termMon.OnHandlerFinish() golog.Fatal(err) } dest, err := net.DialUDP("udp", localAddr, serverAddr) if err != nil { _ = remote.Close() - termMon.OnHandlerFinish() golog.Fatal(err) } @@ -429,5 +421,4 @@ func serverHandler(termMon *termmon.TermMonitor, name string, remote net.Conn, i } _ = remote.Close() - termMon.OnHandlerFinish() } diff --git a/modes/transparent_tcp/transparent_tcp.go b/modes/transparent_tcp/transparent_tcp.go index 0bdfe75..c1482bb 100644 --- a/modes/transparent_tcp/transparent_tcp.go +++ b/modes/transparent_tcp/transparent_tcp.go @@ -43,14 +43,12 @@ import ( "sync" "github.com/OperatorFoundation/shapeshifter-dispatcher/common/log" - "github.com/OperatorFoundation/shapeshifter-dispatcher/common/termmon" "github.com/OperatorFoundation/shapeshifter-ipc" - //"github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2" "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs4" "github.com/OperatorFoundation/shapeshifter-transports/transports/shadow" ) -func ClientSetup(termMon *termmon.TermMonitor, socksAddr string, target string, ptClientProxy *url.URL, names []string, options string) (launched bool, listeners []net.Listener) { +func ClientSetup(socksAddr string, target string, ptClientProxy *url.URL, names []string, options string) (launched bool, listeners []net.Listener) { // Launch each of the client listeners. for _, name := range names { ln, err := net.Listen("tcp", socksAddr) @@ -59,7 +57,7 @@ func ClientSetup(termMon *termmon.TermMonitor, socksAddr string, target string, continue } - go clientAcceptLoop(target, termMon, name, options, ln, ptClientProxy) + go clientAcceptLoop(target, name, options, ln, ptClientProxy) log.Infof("%s - registered listener: %s", name, ln.Addr()) @@ -70,7 +68,7 @@ func ClientSetup(termMon *termmon.TermMonitor, socksAddr string, target string, return } -func clientAcceptLoop(target string, termMon *termmon.TermMonitor, name string, options string, ln net.Listener, proxyURI *url.URL) { +func clientAcceptLoop(target string, name string, options string, ln net.Listener, proxyURI *url.URL) { for { conn, err := ln.Accept() if err != nil { @@ -81,14 +79,11 @@ func clientAcceptLoop(target string, termMon *termmon.TermMonitor, name string, log.Warnf("Failed to accept connection: %s", err.Error()) continue } - go clientHandler(target, termMon, name, options, conn, proxyURI) + go clientHandler(target, name, options, conn, proxyURI) } } -func clientHandler(target string, termMon *termmon.TermMonitor, name string, options string, conn net.Conn, proxyURI *url.URL) { - termMon.OnHandlerStart() - defer termMon.OnHandlerFinish() - +func clientHandler(target string, name string, options string, conn net.Conn, proxyURI *url.URL) { var dialer proxy.Dialer dialer = proxy.Direct if proxyURI != nil { @@ -103,7 +98,7 @@ func clientHandler(target string, termMon *termmon.TermMonitor, name string, opt } } -//this is where the refactoring begins + //this is where the refactoring begins args, argsErr := options2.ParseOptions(options) if argsErr != nil { log.Errorf("Error parsing transport options: %s", options) @@ -124,7 +119,7 @@ func clientHandler(target string, termMon *termmon.TermMonitor, name string, opt } } -func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, statedir string, options string) (launched bool, listeners []net.Listener) { +func ServerSetup(ptServerInfo pt.ServerInfo, statedir string, options string) (launched bool, listeners []net.Listener) { // Launch each of the server listeners. for _, bindaddr := range ptServerInfo.Bindaddrs { name := bindaddr.MethodName @@ -177,7 +172,7 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, state log.Errorf("could not coerce Dust Url to string") return false, nil } - transport := Dust.NewDustServer(*idPath) + transport := Dust.NewDustServer(idPath) listen = transport.Listen case "meeklite": args, aok := args["meeklite"] @@ -190,22 +185,22 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, state return false, nil } - Url, err := options2.CoerceToString(untypedUrl) if err != nil { log.Errorf("could not coerce meeklite Url to string") } - untypedFront, ok := args["Front"] + untypedFront, ok := args["front"] if !ok { return false, nil } - Front, err := options2.CoerceToString(untypedFront) - if err != nil { - log.Errorf("could not coerce meeklite Front to string") + front, err2 := options2.CoerceToString(untypedFront) + if err2 != nil { + log.Errorf("could not coerce meeklite front to string") } - transport := meeklite.NewMeekTransportWithFront(*Url, *Front) + + transport := meeklite.NewMeekTransportWithFront(Url, front) listen = transport.Listen case "shadow": args, aok := args["shadow"] @@ -220,7 +215,7 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, state Password, err := options2.CoerceToString(untypedPassword) if err != nil { - log.Errorf("could not coerce meeklite Url to string") + log.Errorf("could not coerce shadow password to string") } untypedCertString, ok := args["Url"] @@ -228,13 +223,12 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, state return false, nil } - - certString, err := options2.CoerceToString(untypedCertString) - if err != nil { + certString, err2 := options2.CoerceToString(untypedCertString) + if err2 != nil { log.Errorf("could not coerce meeklite Url to string") } - transport := shadow.NewShadowServer(*Password, *certString) + transport := shadow.NewShadowServer(Password, certString) listen = transport.Listen default: log.Errorf("Unknown transport: %s", name) @@ -245,7 +239,7 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, state transportLn := f(bindaddr.Addr.String()) - go serverAcceptLoop(termMon, name, transportLn, &ptServerInfo) + go serverAcceptLoop(name, transportLn, &ptServerInfo) log.Infof("%s - registered listener: %s", name, log.ElideAddr(bindaddr.Addr.String())) @@ -281,7 +275,7 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, state // return result, nil //} -func serverAcceptLoop(termMon *termmon.TermMonitor, name string, ln net.Listener, info *pt.ServerInfo) { +func serverAcceptLoop(name string, ln net.Listener, info *pt.ServerInfo) { for { conn, err := ln.Accept() if err != nil { @@ -292,14 +286,11 @@ func serverAcceptLoop(termMon *termmon.TermMonitor, name string, ln net.Listener log.Warnf("Failed to accept connection: %s", err.Error()) continue } - go serverHandler(termMon, name, conn, info) + go serverHandler(name, conn, info) } } -func serverHandler(termMon *termmon.TermMonitor, name string, remote net.Conn, info *pt.ServerInfo) { - termMon.OnHandlerStart() - defer termMon.OnHandlerFinish() - +func serverHandler(name string, remote net.Conn, info *pt.ServerInfo) { // Connect to the orport. orConn, err := pt.DialOr(info, remote.RemoteAddr().String(), name) if err != nil { @@ -343,4 +334,3 @@ func copyLoop(a net.Conn, b net.Conn) error { return nil } - diff --git a/modes/transparent_udp/transparent_udp.go b/modes/transparent_udp/transparent_udp.go index 64bc711..506637e 100644 --- a/modes/transparent_udp/transparent_udp.go +++ b/modes/transparent_udp/transparent_udp.go @@ -36,7 +36,6 @@ import ( options2 "github.com/OperatorFoundation/shapeshifter-dispatcher/common" "github.com/OperatorFoundation/shapeshifter-dispatcher/common/log" "github.com/OperatorFoundation/shapeshifter-dispatcher/common/pt_extras" - "github.com/OperatorFoundation/shapeshifter-dispatcher/common/termmon" "github.com/OperatorFoundation/shapeshifter-ipc" "github.com/OperatorFoundation/shapeshifter-transports/transports/Dust" replicant "github.com/OperatorFoundation/shapeshifter-transports/transports/Replicant" @@ -65,7 +64,7 @@ func NewConnState() ConnState { type ConnTracker map[string]ConnState -func ClientSetup(termMon *termmon.TermMonitor, socksAddr string, target string, ptClientProxy *url.URL, names []string, options string) bool { +func ClientSetup(socksAddr string, target string, ptClientProxy *url.URL, names []string, options string) bool { // Launch each of the client listeners. for _, name := range names { udpAddr, err := net.ResolveUDPAddr("udp", socksAddr) @@ -80,7 +79,7 @@ func ClientSetup(termMon *termmon.TermMonitor, socksAddr string, target string, continue } - go clientHandler(target, termMon, name, options, ln, ptClientProxy) + go clientHandler(target, name, options, ln, ptClientProxy) log.Infof("%s - registered listener", name) } @@ -88,12 +87,10 @@ func ClientSetup(termMon *termmon.TermMonitor, socksAddr string, target string, return true } -func clientHandler(target string, termMon *termmon.TermMonitor, name string, options string, conn *net.UDPConn, proxyURI *url.URL) { +func clientHandler(target string, name string, options string, conn *net.UDPConn, proxyURI *url.URL) { var length16 uint16 defer conn.Close() - termMon.OnHandlerStart() - defer termMon.OnHandlerFinish() fmt.Println("@@@ handling...") @@ -153,7 +150,7 @@ func clientHandler(target string, termMon *termmon.TermMonitor, name string, opt fmt.Println("Opening connection to ", target) - openConnection(&tracker, addr.String(), target, termMon, name, options, proxyURI) + openConnection(&tracker, addr.String(), target, name, options, proxyURI) // Drop the packet. fmt.Println("recv: Open") @@ -161,7 +158,7 @@ func clientHandler(target string, termMon *termmon.TermMonitor, name string, opt } } -func openConnection(tracker *ConnTracker, addr string, target string, termMon *termmon.TermMonitor, name string, options string, proxyURI *url.URL) { +func openConnection(tracker *ConnTracker, addr string, target string, name string, options string, proxyURI *url.URL) { fmt.Println("Making dialer...") newConn := NewConnState() @@ -211,7 +208,7 @@ func dialConn(tracker *ConnTracker, addr string, target string, name string, opt (*tracker)[addr] = ConnState{remote, false} } -func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, options string) (launched bool, listeners []net.Listener) { +func ServerSetup(ptServerInfo pt.ServerInfo, options string) (launched bool, listeners []net.Listener) { fmt.Println("ServerSetup") // Launch each of the server listeners. @@ -304,7 +301,7 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, optio transportLn := f(bindaddr.Addr.String()) - go serverAcceptLoop(termMon, name, transportLn, &ptServerInfo) + go serverAcceptLoop(name, transportLn, &ptServerInfo) log.Infof("%s - registered listener: %s", name, log.ElideAddr(bindaddr.Addr.String())) @@ -356,7 +353,7 @@ func ServerSetup(termMon *termmon.TermMonitor, ptServerInfo pt.ServerInfo, optio // return int(port), err //} -func serverAcceptLoop(termMon *termmon.TermMonitor, name string, ln net.Listener, info *pt.ServerInfo) { +func serverAcceptLoop(name string, ln net.Listener, info *pt.ServerInfo) { for { conn, err := ln.Accept() fmt.Println("accepted") @@ -368,16 +365,13 @@ func serverAcceptLoop(termMon *termmon.TermMonitor, name string, ln net.Listener } continue } - go serverHandler(termMon, name, conn, info) + go serverHandler(name, conn, info) } } -func serverHandler(termMon *termmon.TermMonitor, name string, remote net.Conn, info *pt.ServerInfo) { +func serverHandler(name string, remote net.Conn, info *pt.ServerInfo) { var length16 uint16 - termMon.OnHandlerStart() - defer termMon.OnHandlerFinish() - addrStr := log.ElideAddr(remote.RemoteAddr().String()) fmt.Println("### handling", name) log.Infof("%s(%s) - new connection", name, addrStr) -- cgit v1.2.3