diff options
Diffstat (limited to 'pkg/server/socket/proxy.go')
| -rw-r--r-- | pkg/server/socket/proxy.go | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/pkg/server/socket/proxy.go b/pkg/server/socket/proxy.go index e4baec2..1be4bba 100644 --- a/pkg/server/socket/proxy.go +++ b/pkg/server/socket/proxy.go @@ -5,6 +5,7 @@ import ( "bytes" "errors" "fmt" + "tunnel/pkg/http" "tunnel/pkg/server/env" "tunnel/pkg/server/queue" @@ -16,7 +17,7 @@ type status struct { } type proxySocket struct { - proto string + Proto string `opts:"default:tcp"` } type proxyServer struct { @@ -28,11 +29,7 @@ type proxyServer struct { conn Conn } -func newProxySocket(proto string) (S, error) { - return &proxySocket{proto}, nil -} - -func (sock *proxySocket) Open(env env.Env) (Conn, error) { +func (sock *proxySocket) New(env env.Env) (Conn, error) { s := &proxyServer{ sock: sock, auth: env.Value("proxy.auth"), @@ -78,12 +75,12 @@ func (s *proxyServer) Send(wq queue.Q) error { } func (s *proxyServer) initConn(addr string) error { - dial, err := newDialSocket(s.sock.proto, addr) - if err != nil { - return err + dial := dialSocket{ + Proto: s.sock.Proto, + Addr: addr, } - conn, err := dial.Open(s.env) + conn, err := dial.New(s.env) if err != nil { dial.Close() return err @@ -138,3 +135,7 @@ func (s *proxyServer) Close() (err error) { return } + +func init() { + register("proxy", proxySocket{}) +} |
