浏览代码

fixed a broken list during a timeout-cleanup, relates #449, #453

Stasik0 9 年之前
父节点
当前提交
46c6388cb3
共有 1 个文件被更改,包括 1 次插入0 次删除
  1. 1 0
      src/server/ua_session_manager.c

+ 1 - 0
src/server/ua_session_manager.c

@@ -27,6 +27,7 @@ void UA_SessionManager_cleanupTimedOut(UA_SessionManager *sessionManager,
     session_list_entry *sentry, *temp;
     session_list_entry *sentry, *temp;
     LIST_FOREACH_SAFE(sentry, &sessionManager->sessions, pointers, temp) {
     LIST_FOREACH_SAFE(sentry, &sessionManager->sessions, pointers, temp) {
         if(sentry->session.validTill < now) {
         if(sentry->session.validTill < now) {
+            LIST_REMOVE(sentry, pointers);
             UA_Session_deleteMembersCleanup(&sentry->session, server);
             UA_Session_deleteMembersCleanup(&sentry->session, server);
             UA_free(sentry);
             UA_free(sentry);
             sessionManager->currentSessionCount--;
             sessionManager->currentSessionCount--;