summaryrefslogtreecommitdiff
path: root/pkg/server/socket/socket.go
diff options
context:
space:
mode:
authorMikhail Osipov <mike.osipov@gmail.com>2020-05-05 20:10:08 +0300
committerMikhail Osipov <mike.osipov@gmail.com>2020-05-05 20:10:08 +0300
commitb089b35f35a14e85d89df69254cc61495d59d3dd (patch)
treeda07e5b015e02f7fa05cf0be181697670af787ed /pkg/server/socket/socket.go
parentf44d6e1a111154b70aaeac9ffe38beaee2cc5dd7 (diff)
add http connect proxy server
Diffstat (limited to 'pkg/server/socket/socket.go')
-rw-r--r--pkg/server/socket/socket.go19
1 files changed, 10 insertions, 9 deletions
diff --git a/pkg/server/socket/socket.go b/pkg/server/socket/socket.go
index 1d447f8..48c06b4 100644
--- a/pkg/server/socket/socket.go
+++ b/pkg/server/socket/socket.go
@@ -16,17 +16,17 @@ var ErrAlreadyClosed = errors.New("already closed")
type exported struct {
info string
- Channel
+ Conn
}
-type Channel interface {
+type Conn interface {
Send(wq queue.Q) error
Recv(rq queue.Q) error
Close() error
}
type S interface {
- Open(env env.Env) (Channel, error)
+ Open(env env.Env) (Conn, error)
Close()
}
@@ -44,7 +44,7 @@ func (c exported) String() string {
return c.info
}
-func newConn(cn net.Conn) Channel {
+func newConn(cn net.Conn) Conn {
c := &conn{Conn: cn}
log.Println("open", c)
return c
@@ -87,15 +87,16 @@ func New(desc string, env env.Env) (S, error) {
proto, addr = args[0], args[1]
}
- if addr == "loop" {
- return newLoopSocket()
- }
-
if proto == "" {
proto = "tcp"
}
- if addr == "" {
+ switch addr {
+ case "loop":
+ return newLoopSocket()
+ case "proxy":
+ return newProxySocket(proto)
+ case "":
return nil, fmt.Errorf("bad socket '%s'", desc)
}