From 85eb16b6ac1352bd9ef032f8385ba8f0ec6328da Mon Sep 17 00:00:00 2001 From: Brandon Wiley Date: Thu, 8 Dec 2016 17:10:10 -0600 Subject: Implemented server-side transparent TCP proxy mode --- modes/transparent_tcp/transparent_tcp.go | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/modes/transparent_tcp/transparent_tcp.go b/modes/transparent_tcp/transparent_tcp.go index 119e797..ae7b97c 100644 --- a/modes/transparent_tcp/transparent_tcp.go +++ b/modes/transparent_tcp/transparent_tcp.go @@ -32,7 +32,6 @@ package transparent_tcp import ( "fmt" "io" - golog "log" "net" "net/url" "strconv" @@ -44,7 +43,6 @@ import ( "git.torproject.org/pluggable-transports/goptlib.git" "github.com/OperatorFoundation/shapeshifter-dispatcher/common/log" "github.com/OperatorFoundation/shapeshifter-dispatcher/common/termmon" - "github.com/OperatorFoundation/shapeshifter-dispatcher/transports" "github.com/OperatorFoundation/shapeshifter-transports/transports/base" ) @@ -148,31 +146,19 @@ func clientHandler(target string, termMon *termmon.TermMonitor, f base.ClientFac return } -func ServerSetup(termMon *termmon.TermMonitor, bindaddrString string) (launched bool, listeners []net.Listener) { - ptServerInfo, err := pt.ServerSetup(transports.Transports()) - if err != nil { - golog.Fatal(err) - } - - fmt.Println("ServerSetup") +func ServerSetup(termMon *termmon.TermMonitor, bindaddrString string, factories map[string]base.ServerFactory, ptServerInfo pt.ServerInfo) (launched bool, listeners []net.Listener) { + fmt.Println("ServerSetup", bindaddrString, factories, ptServerInfo) - bindaddrs, _ := getServerBindaddrs(bindaddrString) - - for _, bindaddr := range bindaddrs { + // Launch each of the server listeners. + for _, bindaddr := range ptServerInfo.Bindaddrs { name := bindaddr.MethodName fmt.Println("bindaddr", bindaddr) - t := transports.Get(name) - if t == nil { + f := factories[name] + if f == nil { fmt.Println(name, "no such transport is supported") continue } - f, err := t.ServerFactory(stateDir, &bindaddr.Options) - if err != nil { - fmt.Println(name, err.Error()) - continue - } - ln, err := net.ListenTCP("tcp", bindaddr.Addr) if err != nil { fmt.Println(name, err.Error()) -- cgit v1.2.3