udp: fix privilege_mode not success for udp type

This commit is contained in:
fatedier
2016-12-19 23:30:48 +08:00
parent 2bf1d3e922
commit d04d31b39a
3 changed files with 9 additions and 8 deletions

View File

@@ -69,7 +69,7 @@ func NewProxyServerFromCtlMsg(req *msg.ControlReq) (p *ProxyServer) {
p.PrivilegeMode = req.PrivilegeMode
p.PrivilegeToken = PrivilegeToken
p.BindAddr = BindAddr
if p.Type == "tcp" {
if p.Type == "tcp" || p.Type == "udp" {
p.ListenPort = req.RemotePort
} else if p.Type == "http" {
p.ListenPort = VhostHttpPort
@@ -152,11 +152,6 @@ func (p *ProxyServer) Start(c *conn.Conn) (err error) {
p.Unlock()
metric.SetStatus(p.Name, p.Status)
// create connection pool if needed
if p.PoolCount > 0 {
go p.connectionPoolManager(p.closeChan)
}
if p.Type == "udp" {
// udp is special
p.udpConn, err = conn.ListenUDP(p.BindAddr, p.ListenPort)
@@ -183,6 +178,11 @@ func (p *ProxyServer) Start(c *conn.Conn) (err error) {
}
}()
} else {
// create connection pool if needed
if p.PoolCount > 0 {
go p.connectionPoolManager(p.closeChan)
}
// start a goroutine for every listener to accept user connection
for _, listener := range p.listeners {
go func(l Listener) {