|
@@ -70,7 +70,7 @@ func controlWorker(c *conn.Conn) {
|
|
|
}
|
|
|
|
|
|
// login when type is NewCtlConn or NewWorkConn
|
|
|
- ret, info := doLogin(cliReq, c)
|
|
|
+ ret, info, s := doLogin(cliReq, c)
|
|
|
// if login type is NewWorkConn, nothing will be send to frpc
|
|
|
if cliReq.Type == consts.NewCtlConn {
|
|
|
cliRes := &msg.ControlRes{
|
|
@@ -94,12 +94,6 @@ func controlWorker(c *conn.Conn) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- s, ok := server.GetProxyServer(cliReq.ProxyName)
|
|
|
- if !ok {
|
|
|
- log.Warn("ProxyName [%s] does not exist now", cliReq.ProxyName)
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
// create a channel for sending messages
|
|
|
msgSendChan := make(chan interface{}, 1024)
|
|
|
go msgSender(s, c, msgSendChan)
|
|
@@ -199,7 +193,7 @@ func msgSender(s *server.ProxyServer, c *conn.Conn, msgSendChan chan interface{}
|
|
|
// NewCtlConn
|
|
|
// NewWorkConn
|
|
|
// NewWorkConnUdp
|
|
|
-func doLogin(req *msg.ControlReq, c *conn.Conn) (ret int64, info string) {
|
|
|
+func doLogin(req *msg.ControlReq, c *conn.Conn) (ret int64, info string, s *server.ProxyServer) {
|
|
|
ret = 1
|
|
|
// check if PrivilegeMode is enabled
|
|
|
if req.PrivilegeMode && !server.PrivilegeMode {
|
|
@@ -208,10 +202,7 @@ func doLogin(req *msg.ControlReq, c *conn.Conn) (ret int64, info string) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- var (
|
|
|
- s *server.ProxyServer
|
|
|
- ok bool
|
|
|
- )
|
|
|
+ var ok bool
|
|
|
s, ok = server.GetProxyServer(req.ProxyName)
|
|
|
if req.PrivilegeMode && req.Type == consts.NewCtlConn {
|
|
|
log.Debug("ProxyName [%s], doLogin and privilege mode is enabled", req.ProxyName)
|
|
@@ -340,7 +331,6 @@ func doLogin(req *msg.ControlReq, c *conn.Conn) (ret int64, info string) {
|
|
|
if err != nil {
|
|
|
info = fmt.Sprintf("ProxyName [%s], start proxy error: %v", req.ProxyName, err)
|
|
|
log.Warn(info)
|
|
|
- s.Close()
|
|
|
return
|
|
|
}
|
|
|
log.Info("ProxyName [%s], start proxy success", req.ProxyName)
|