@@ -187,7 +187,7 @@ func (sess *SessionsManager) connHdl(conn net.Conn) {
187187 GatewaySession : yamuxSession ,
188188 WorkConnIsOpen : true ,
189189 WorkConn : make (chan net.Conn , 5 )}
190- //:TODO 新的登录存储之前先清除旧的同id登录
190+ //新的登录存储之前先清除旧的同id登录
191191 sess .SetSession (token .RunId , gatewaySession )
192192 }
193193
@@ -198,7 +198,7 @@ func (sess *SessionsManager) connHdl(conn net.Conn) {
198198 log .Println ("获取到一个Gateway主动发起的工作连接" )
199199 log .Println ("GatewayWorkConn:" , m .RunId , "@" , m .Version )
200200 //TODO 验证Secret
201- token , _ = models .DecodeUnverifiedToken (config .ConfigMode .Security .LoginKey )
201+ // token, err = models.DecodeToken (config.ConfigMode.Security.LoginKey, m.Secret )
202202 //if err != nil {
203203 // log.Println(err.Error())
204204 // conn.Close()
@@ -223,8 +223,10 @@ func (sess *SessionsManager) connHdl(conn net.Conn) {
223223 //created by github.com/OpenIoTHub/server-go/manager.SessionsManager.listenerHdl in goroutine 12
224224 // /Users/iotserv/git/server-go/manager/listen.go:131 +0x1e5
225225 session .WorkConnMutex .Lock ()
226- if session .WorkConnIsOpen {
226+ if session .WorkConnIsOpen && session . WorkConn != nil {
227227 session .WorkConn <- conn
228+ } else {
229+ conn .Close ()
228230 }
229231 session .WorkConnMutex .Unlock ()
230232 }
@@ -237,8 +239,8 @@ func (sess *SessionsManager) connHdl(conn net.Conn) {
237239 conn .Close ()
238240 return
239241 }
240- if ! token .IfContainPermission (models .PermissionOpenIoTHubLogin ) {
241- log .Println ("token type err ,not 2 " )
242+ if token == nil || ! token .IfContainPermission (models .PermissionOpenIoTHubLogin ) {
243+ log .Println ("token type err ,not PermissionOpenIoTHubLogin " )
242244 conn .Close ()
243245 return
244246 }
0 commit comments