From de868930e2301b68a50bde088dd83dc575b72c54 Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Sun, 23 Feb 2020 05:20:04 +0300 Subject: prepare to auth --- pkg/server/socket/socket.go | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) (limited to 'pkg/server/socket') diff --git a/pkg/server/socket/socket.go b/pkg/server/socket/socket.go index bf754cf..c6219a5 100644 --- a/pkg/server/socket/socket.go +++ b/pkg/server/socket/socket.go @@ -2,6 +2,8 @@ package socket import ( "tunnel/pkg/server/queue" + "tunnel/pkg/server/opts" + "tunnel/pkg/server/env" "strings" "sync" "fmt" @@ -16,7 +18,7 @@ type Channel interface { } type S interface { - Open() (Channel, error) + Open(env env.Env) (Channel, error) Close() } @@ -106,7 +108,7 @@ func newListenSocket(proto, addr string) (S, error) { return s, nil } -func (s *listenSocket) Open() (Channel, error) { +func (s *listenSocket) Open(env env.Env) (Channel, error) { conn, err := s.listen.Accept() if err != nil { return nil, err @@ -137,7 +139,7 @@ func (s *dialSocket) String() string { return fmt.Sprintf("%s/%s", s.proto, s.addr) } -func (s *dialSocket) Open() (Channel, error) { +func (s *dialSocket) Open(env env.Env) (Channel, error) { conn, err := net.Dial(s.proto, s.addr) if err != nil { return nil, err @@ -148,19 +150,9 @@ func (s *dialSocket) Open() (Channel, error) { func (s *dialSocket) Close() { } -func New(name string) (S, error) { - vv := strings.Split(name, ",") - args := strings.Split(vv[0], "/") - opts := map[string]string{} - - for _, v := range vv[1:] { - ss := strings.SplitN(v, "=", 2) - if len(ss) < 2 { - opts[ss[0]] = "" - } else { - opts[ss[0]] = ss[1] - } - } +func New(desc string, env env.Env) (S, error) { + base, opts := opts.Parse(desc) + args := strings.Split(base, "/") var proto string var addr string @@ -176,7 +168,7 @@ func New(name string) (S, error) { } if addr == "" { - return nil, fmt.Errorf("bad socket '%s'", name) + return nil, fmt.Errorf("bad socket '%s'", desc) } if _, ok := opts["listen"]; ok { -- cgit v1.2.3-70-g09d2