summaryrefslogtreecommitdiff
path: root/modes/stun_udp/stun_udp.go
diff options
context:
space:
mode:
Diffstat (limited to 'modes/stun_udp/stun_udp.go')
-rw-r--r--modes/stun_udp/stun_udp.go61
1 files changed, 3 insertions, 58 deletions
diff --git a/modes/stun_udp/stun_udp.go b/modes/stun_udp/stun_udp.go
index c9abcd6..f9d458f 100644
--- a/modes/stun_udp/stun_udp.go
+++ b/modes/stun_udp/stun_udp.go
@@ -31,6 +31,7 @@ package stun_udp
import (
"fmt"
+ "github.com/OperatorFoundation/shapeshifter-dispatcher/common/pt_extras"
"github.com/OperatorFoundation/shapeshifter-transports/transports/shadow"
"io"
golog "log"
@@ -169,39 +170,11 @@ func dialConn(tracker *ConnTracker, addr string, target string, name string, opt
return
}
- var f func(address string) (net.Conn, error)
-
// Deal with arguments.
- switch name {
- case "obfs2":
- transport := obfs2.NewObfs2Transport()
- f = transport.Dial
- case "obfs4":
- if cert, ok := args["cert"]; ok {
- if iatModeStr, ok2 := args["iatMode"]; ok2 {
- iatMode, err := strconv.Atoi(iatModeStr[0])
- if err != nil {
- transport := obfs4.NewObfs4Client(cert[0], iatMode)
- f = transport.Dial
- } else {
- log.Errorf("obfs4 transport bad iatMode value: %s", iatModeStr)
- return
- }
- } else {
- log.Errorf("obfs4 transport missing cert argument: %s", args)
- return
- }
- } else {
- log.Errorf("obfs4 transport missing cert argument: %s", args)
- return
- }
- default:
- log.Errorf("Unknown transport: %s", name)
- return
- }
+ transport, _ := pt_extras.ArgsToDialer(target, name, args)
fmt.Println("Dialing ", target)
- remote, _ := f(target)
+ remote, _ := transport.Dial()
// if err != nil {
// fmt.Println("outgoing connection failed", err)
// log.Errorf("(%s) - outgoing connection failed: %s", target, log.ElideError(err))
@@ -268,34 +241,6 @@ func ServerSetup(termMon *termmon.TermMonitor, bindaddrString string, ptServerIn
log.Errorf("shadow transport missing password argument: %s", args)
return
}
- // case "Optimizer":
- // if _, ok := args["transports"]; ok {
- // if strategyName, ok2 := args["strategy"]; ok2 {
- // var strategy Optimizer.Strategy = nil
- // switch strategyName[0] {
- // case "first":
- // strategy = Optimizer.NewFirstStrategy()
- // case "random":
- // strategy = Optimizer.NewRandomStrategy()
- // case "rotate":
- // strategy = Optimizer.NewRotateStrategy()
- // case "track":
- // strategy = Optimizer.NewTrackStrategy()
- // case "min":
- // strategy = Optimizer.NewMinimizeDialDuration()
- // }
- //transports := []Optimizer.Transport{}
- //transport := Optimizer.NewOptimizerClient(transports, strategy)
- // return transport, nil
- ////says too many arguments to return just like earlier. tried autocorrecting and now it says transport is not type bool
- // } else {
- // log.Errorf("Optimizer transport missing transports argument: %s", args)
- // return
- // }
- //} else {
- // log.Errorf("Optimizer transport missing strategy argument: %s", args)
- // return
- //}
default:
log.Errorf("Unknown transport: %s", name)