From b089b35f35a14e85d89df69254cc61495d59d3dd Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Tue, 5 May 2020 20:10:08 +0300 Subject: add http connect proxy server --- pkg/server/socket/socket.go | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) (limited to 'pkg/server/socket/socket.go') 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) } -- cgit v1.2.3-70-g09d2