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 +}