From 6da69879eeb6b53cc6cf07e842ca47076b318768 Mon Sep 17 00:00:00 2001 From: V2Ray Date: Mon, 7 Sep 2015 14:49:40 +0200 Subject: [PATCH] Prototype for socks5 proxy server --- net/sockshandler.go | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 net/sockshandler.go diff --git a/net/sockshandler.go b/net/sockshandler.go new file mode 100644 index 00000000..49c919db --- /dev/null +++ b/net/sockshandler.go @@ -0,0 +1,35 @@ +package net + +import ( + "net" +) + +// SocksServer is a SOCKS 5 proxy server +type SocksServer struct { + accepting bool +} + +func (server *SocksServer) Listen(port uint8) error { + listener, err := net.Listen("tcp", ":"+string(port)) + if err != nil { + return err + } + server.accepting = true + go server.AcceptConns(listener) + return nil +} + +func (server *SocksServer) AcceptConnections(listener net.Listener) error { + for server.accepting { + connection, err := listener.Accept() + if err != nil { + return err + } + go server.HandleConnection(connection) + } + return nil +} + +func (server *SocksServer) HandleConnection(connection *net.Conn) error { + return nil +}