CtdlLogPrintf(CTDL_INFO, "Didn't terminate %d protected idle sessions;\n", killed);
}
+void terminate_stuck_sessions(void)
+{
+ CitContext *ccptr;
+ int killed = 0;
+
+ begin_critical_section(S_SESSION_TABLE);
+ for (ccptr = ContextList; ccptr != NULL; ccptr = ccptr->next) {
+ if (ccptr->client_socket != -1)
+ {
+ close(ccptr->client_socket);
+ ccptr->client_socket = -1;
+ killed++;
+ }
+ }
+ end_critical_section(S_SESSION_TABLE);
+ if (killed > 0)
+ CtdlLogPrintf(CTDL_INFO, "Flushed %d stuck sessions\n", killed);
+}
+
/*
}
FreeStrBuf(&con->MigrateBuf);
- FreeStrBuf(&con->ReadBuf);
+ FreeStrBuf(&con->RecvBuf.Buf);
CtdlLogPrintf(CTDL_DEBUG, "Done with RemoveContext()\n");
}
* the list.
*/
me->MigrateBuf = NewStrBuf();
- me->ReadBuf = NewStrBuf();
+ me->RecvBuf.Buf = NewStrBuf();
begin_critical_section(S_SESSION_TABLE);
me->cs_pid = ++next_pid;
me->prev = NULL;
if (context->user.usernum == 0)
{ /* old system user with number 0, upgrade it */
context->user.usernum = get_new_user_number();
- CtdlLogPrintf(CTDL_DEBUG, "Upgrading system user \"%s\" from user number 0 to user number %d\n", context->user.fullname, context->user.usernum);
+ CtdlLogPrintf(CTDL_DEBUG, "Upgrading system user \"%s\" from user number 0 to user number %ld\n", context->user.fullname, context->user.usernum);
/* add user to the database */
CtdlPutUser(&(context->user));
cdb_store(CDB_USERSBYNUMBER, &(context->user.usernum), sizeof(long), context->user.fullname, strlen(context->user.fullname)+1);