summaryrefslogtreecommitdiff
path: root/modes/transparent_tcp/transparent_tcp.go
diff options
context:
space:
mode:
Diffstat (limited to 'modes/transparent_tcp/transparent_tcp.go')
-rw-r--r--modes/transparent_tcp/transparent_tcp.go31
1 files changed, 27 insertions, 4 deletions
diff --git a/modes/transparent_tcp/transparent_tcp.go b/modes/transparent_tcp/transparent_tcp.go
index a948d2d..def348f 100644
--- a/modes/transparent_tcp/transparent_tcp.go
+++ b/modes/transparent_tcp/transparent_tcp.go
@@ -32,6 +32,8 @@ package transparent_tcp
import (
"fmt"
"github.com/OperatorFoundation/shapeshifter-dispatcher/common/pt_extras"
+ "github.com/OperatorFoundation/shapeshifter-transports/transports/meeklite"
+ "github.com/OperatorFoundation/shapeshifter-transports/transports/obfs2"
"io"
"net"
"net/url"
@@ -97,7 +99,11 @@ func clientHandler(target string, termMon *termmon.TermMonitor, name string, opt
// Deal with arguments.
- transport, _ := pt_extras.ArgsToDialer(target, name, args)
+ transport, dialerErr := pt_extras.ArgsToDialer(target, name, args)
+ if dialerErr != nil {
+ log.Errorf("Error parsing transport-specific options: %s (%s)", args, dialerErr)
+ return
+ }
dialer = transport.Dial
f := dialer
@@ -153,12 +159,29 @@ func ServerSetup(termMon *termmon.TermMonitor, bindaddrString string, ptServerIn
// Deal with arguments.
switch name {
- //case "obfs2":
- // transport := obfs2.NewObfs2Transport()
- // listen = transport.Listen
+ case "obfs2":
+ transport := obfs2.NewObfs2Transport()
+ listen = transport.Listen
case "obfs4":
transport := obfs4.NewObfs4Server(statedir)
listen = transport.Listen
+ case "meeklite":
+ shargs, aok := args["meeklite"]
+ if !aok {
+ return false, nil
+ }
+
+ Url, ok := shargs.Get("Url")
+ if !ok {
+ return false, nil
+ }
+
+ Front, ok2 := shargs.Get("Front")
+ if !ok2 {
+ return false, nil
+ }
+ transport := meeklite.NewMeekTransportWithFront(Url, Front)
+ listen = transport.Listen
case "shadow":
shargs, aok := args["shadow"]
if !aok {