summaryrefslogtreecommitdiff
path: root/pkg/server/socket
diff options
context:
space:
mode:
authorMikhail Osipov <mike.osipov@gmail.com>2020-02-23 05:20:04 +0300
committerMikhail Osipov <mike.osipov@gmail.com>2020-02-23 05:20:04 +0300
commitde868930e2301b68a50bde088dd83dc575b72c54 (patch)
tree9f3df0bbdb5035100311fe7194aef66186478ec4 /pkg/server/socket
parent7c7fafefef94c5fb8bfe319e7745d80a1e88205d (diff)
prepare to auth
Diffstat (limited to 'pkg/server/socket')
-rw-r--r--pkg/server/socket/socket.go26
1 files changed, 9 insertions, 17 deletions
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 {