diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2020-04-21 14:54:27 +0300 |
|---|---|---|
| committer | Mikhail Osipov <mike.osipov@gmail.com> | 2020-04-21 14:54:27 +0300 |
| commit | f44d6e1a111154b70aaeac9ffe38beaee2cc5dd7 (patch) | |
| tree | 03235fde5578abcaa2a22a633572428a73d27d00 /pkg/server/socket/auto.go | |
| parent | 38b515c5470b74099b85a4f30aef2dce65600818 (diff) | |
rename auto socket to defer
Diffstat (limited to 'pkg/server/socket/auto.go')
| -rw-r--r-- | pkg/server/socket/auto.go | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/pkg/server/socket/auto.go b/pkg/server/socket/auto.go deleted file mode 100644 index 97bc625..0000000 --- a/pkg/server/socket/auto.go +++ /dev/null @@ -1,80 +0,0 @@ -package socket - -import ( - "tunnel/pkg/server/env" - "tunnel/pkg/server/queue" -) - -type autoSocket struct { - S -} - -type autoChannel struct { - s *autoSocket - c chan Channel - e env.Env -} - -func newAutoSocket(proto, addr string) (S, error) { - s, err := newDialSocket(proto, addr) - if err != nil { - return s, err - } - - return &autoSocket{s}, nil -} - -func (s *autoSocket) Open(env env.Env) (Channel, error) { - c := &autoChannel{ - s: s, - c: make(chan Channel), - e: env, - } - - return c, nil -} - -func (c *autoChannel) String() string { - return "auto" -} - -func (c *autoChannel) Send(wq queue.Q) error { - if x := <-c.c; x == nil { - return nil - } else { - return x.Send(wq) - } -} - -func (c *autoChannel) Recv(rq queue.Q) error { - b := <-rq - if b == nil { - close(c.c) - return nil - } - - x, err := c.s.S.Open(c.e) - if err != nil { - close(c.c) - return err - } - - c.c <- x - - q := queue.New() - - go func() { - q <- b - queue.Copy(rq, q) - close(q) - }() - - defer q.Dry() - - return x.Recv(q) -} - -/* TODO */ -func (c *autoChannel) Close() error { - return nil -} |
