diff options
| author | Mikhail Osipov <mike.osipov@gmail.com> | 2020-03-11 10:49:15 +0300 |
|---|---|---|
| committer | Mikhail Osipov <mike.osipov@gmail.com> | 2020-03-11 10:49:15 +0300 |
| commit | 76012e39e9201b9dfcbbad546c7c2b38512903cb (patch) | |
| tree | 389e35734416c2bfea9ceeb720757cdca3d29675 /pkg/server/socket/loop.go | |
| parent | 9b85a2f18b2be51dd099beb169e7e30a9eacb816 (diff) | |
auto dial, tunnel limit
Diffstat (limited to 'pkg/server/socket/loop.go')
| -rw-r--r-- | pkg/server/socket/loop.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/pkg/server/socket/loop.go b/pkg/server/socket/loop.go new file mode 100644 index 0000000..88e9491 --- /dev/null +++ b/pkg/server/socket/loop.go @@ -0,0 +1,46 @@ +package socket + +import ( + "tunnel/pkg/server/env" + "tunnel/pkg/server/queue" +) + +type loopSocket struct{} + +type loopChannel struct { + c chan queue.Q + q chan error +} + +func (c *loopChannel) Send(wq queue.Q) error { + c.c <- wq + return <-c.q +} + +func (c *loopChannel) Recv(rq queue.Q) error { + defer close(c.q) + return queue.Copy(rq, <-c.c) +} + +func (c *loopChannel) String() string { + return "loop" +} + +func (c *loopChannel) Close() error { + return nil +} + +func (s *loopSocket) Open(env.Env) (Channel, error) { + return &loopChannel{make(chan queue.Q), make(chan error)}, nil +} + +func (s *loopSocket) String() string { + return "loop" +} + +func (s *loopSocket) Close() { +} + +func newLoopSocket() (S, error) { + return &loopSocket{}, nil +} |
