nps/server/socks5/socks5_server.go
2019-10-15 17:12:27 +08:00

37 lines
861 B
Go

package socks5
import (
"github.com/cnlh/nps/core"
"github.com/cnlh/nps/lib/conn"
"github.com/cnlh/nps/server/common"
"net"
"strconv"
)
type S5Server struct {
globalConfig map[string]string
clientConfig map[string]string
pluginConfig map[string]string
ServerIp string
ServerPort int
plugins *core.Plugins
listener net.Listener
}
func NewS5Server(globalConfig, clientConfig, pluginConfig map[string]string) *S5Server {
s5 := &S5Server{
globalConfig: globalConfig,
clientConfig: clientConfig,
pluginConfig: pluginConfig,
plugins: &core.Plugins{},
}
s5.plugins.Add(new(Handshake), new(Access), new(CheckAccess), new(Request), new(common.Proxy))
return s5
}
func (s5 *S5Server) Start() error {
return conn.NewTcpListenerAndProcess(s5.ServerIp+":"+strconv.Itoa(s5.ServerPort), func(c net.Conn) {
}, &s5.listener)
}