func ServerSetup(termMon *termmon.TermMonitor, bindaddrString string, target string) bool { fmt.Println("ServerSetup") bindaddrs, _ := getServerBindaddrs(bindaddrString) for _, bindaddr := range bindaddrs { name := bindaddr.MethodName fmt.Println("bindaddr", bindaddr) t := transports.Get(name) if t == 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()) continue } go serverAcceptLoop(termMon, f, ln, target) log.Infof("%s - registered listener: %s", name, log.ElideAddr(ln.Addr().String())) } return true }
func ClientSetup(termMon *termmon.TermMonitor, target string) (launched bool, listeners []net.Listener) { methodNames := [...]string{"obfs2"} var ptClientProxy *url.URL = nil // Launch each of the client listeners. for _, name := range methodNames { t := transports.Get(name) if t == nil { log.Errorf("no such transport is supported: %s", name) continue } f, err := t.ClientFactory(stateDir) if err != nil { log.Errorf("failed to get ClientFactory: %s", name) continue } fmt.Println("Listening ", socksAddr) ln, err := net.Listen("tcp", socksAddr) if err != nil { log.Errorf("failed to listen %s %s", name, err.Error()) continue } go clientAcceptLoop(target, termMon, f, ln, ptClientProxy) log.Infof("%s - registered listener: %s", name, ln.Addr()) listeners = append(listeners, ln) launched = true } return }
func ClientSetup(termMon *termmon.TermMonitor) (launched bool, listeners []net.Listener) { ptClientInfo, err := pt.ClientSetup(transports.Transports()) if err != nil { golog.Fatal(err) } ptClientProxy, err := pt_extras.PtGetProxy() fmt.Println("ptclientproxy", ptClientProxy) if err != nil { golog.Fatal(err) } else if ptClientProxy != nil { pt_extras.PtProxyDone() } // Launch each of the client listeners. for _, name := range ptClientInfo.MethodNames { t := transports.Get(name) if t == nil { pt.CmethodError(name, "no such transport is supported") continue } f, err := t.ClientFactory(stateDir) if err != nil { pt.CmethodError(name, "failed to get ClientFactory") continue } ln, err := net.Listen("tcp", socksAddr) if err != nil { pt.CmethodError(name, err.Error()) continue } go clientAcceptLoop(termMon, f, ln, ptClientProxy) pt.Cmethod(name, socks5.Version(), ln.Addr()) log.Infof("%s - registered listener: %s", name, ln.Addr()) listeners = append(listeners, ln) launched = true } pt.CmethodsDone() return }
func ServerSetup(termMon *termmon.TermMonitor) (launched bool, listeners []net.Listener) { ptServerInfo, err := pt.ServerSetup(transports.Transports()) if err != nil { golog.Fatal(err) } for _, bindaddr := range ptServerInfo.Bindaddrs { name := bindaddr.MethodName t := transports.Get(name) if t == nil { pt.SmethodError(name, "no such transport is supported") continue } f, err := t.ServerFactory(stateDir, &bindaddr.Options) if err != nil { pt.SmethodError(name, err.Error()) continue } ln, err := net.ListenTCP("tcp", bindaddr.Addr) if err != nil { pt.SmethodError(name, err.Error()) continue } go serverAcceptLoop(termMon, f, ln, &ptServerInfo) if args := f.Args(); args != nil { pt.SmethodArgs(name, ln.Addr(), *args) } else { pt.SmethodArgs(name, ln.Addr(), nil) } log.Infof("%s - registered listener: %s", name, log.ElideAddr(ln.Addr().String())) listeners = append(listeners, ln) launched = true } pt.SmethodsDone() 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") bindaddrs, _ := getServerBindaddrs(bindaddrString) for _, bindaddr := range bindaddrs { name := bindaddr.MethodName fmt.Println("bindaddr", bindaddr) t := transports.Get(name) if t == 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()) continue } go serverAcceptLoop(termMon, f, ln, &ptServerInfo) log.Infof("%s - registered listener: %s", name, log.ElideAddr(ln.Addr().String())) listeners = append(listeners, ln) launched = true } return }
func ClientSetup(termMon *termmon.TermMonitor, target string) bool { methodNames := [...]string{"obfs2"} var ptClientProxy *url.URL = nil // Launch each of the client listeners. for _, name := range methodNames { t := transports.Get(name) if t == nil { log.Errorf("no such transport is supported: %s", name) continue } f, err := t.ClientFactory(stateDir) if err != nil { log.Errorf("failed to get ClientFactory: %s", name) continue } udpAddr, err := net.ResolveUDPAddr("udp", socksAddr) if err != nil { fmt.Println("Error resolving address", socksAddr) } fmt.Println("@@@ Listening ", name, socksAddr) ln, err := net.ListenUDP("udp", udpAddr) if err != nil { log.Errorf("failed to listen %s %s", name, err.Error()) continue } go clientHandler(target, termMon, f, ln, ptClientProxy) log.Infof("%s - registered listener: %s", name, ln) } return true }