X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=citadel%2Fcontext.c;fp=citadel%2Fcontext.c;h=d08c74d62c69b5534408e442076b35bd56bc4f7e;hp=7993ce08c930b27b3d40f3002eb197b5b56eb5da;hb=92d82ca214f2f57d6311174a2231a8d031c2a77e;hpb=9f3bb5c0737c12bd1765425ad8676d5cde03f52f diff --git a/citadel/context.c b/citadel/context.c index 7993ce08c..d08c74d62 100644 --- a/citadel/context.c +++ b/citadel/context.c @@ -84,7 +84,7 @@ #include "user_ops.h" #include "control.h" - +int DebugSession = 0; pthread_key_t MyConKey; /* TSD key for MyContext() */ @@ -159,7 +159,7 @@ int CtdlTerminateOtherSession (int session_num) return TERM_NOTALLOWED; } - syslog(LOG_DEBUG, "Locating session to kill\n"); + CONM_syslog(LOG_DEBUG, "Locating session to kill\n"); begin_critical_section(S_SESSION_TABLE); for (ccptr = ContextList; ccptr != NULL; ccptr = ccptr->next) { if (session_num == ccptr->cs_pid) { @@ -298,9 +298,9 @@ void terminate_idle_sessions(void) } end_critical_section(S_SESSION_TABLE); if (killed > 0) - syslog(LOG_INFO, "Scheduled %d idle sessions for termination\n", killed); + CON_syslog(LOG_INFO, "Scheduled %d idle sessions for termination\n", killed); if (longrunners > 0) - syslog(LOG_INFO, "Didn't terminate %d protected idle sessions", longrunners); + CON_syslog(LOG_INFO, "Didn't terminate %d protected idle sessions", longrunners); } @@ -316,7 +316,7 @@ void terminate_all_sessions(void) for (ccptr = ContextList; ccptr != NULL; ccptr = ccptr->next) { if (ccptr->client_socket != -1) { - syslog(LOG_INFO, "terminate_all_sessions() is murdering %s", ccptr->curr_user); + CON_syslog(LOG_INFO, "terminate_all_sessions() is murdering %s", ccptr->curr_user); close(ccptr->client_socket); ccptr->client_socket = -1; killed++; @@ -324,7 +324,7 @@ void terminate_all_sessions(void) } end_critical_section(S_SESSION_TABLE); if (killed > 0) { - syslog(LOG_INFO, "Flushed %d stuck sessions\n", killed); + CON_syslog(LOG_INFO, "Flushed %d stuck sessions\n", killed); } } @@ -337,14 +337,14 @@ void RemoveContext (CitContext *con) { const char *c; if (con == NULL) { - syslog(LOG_ERR, "WARNING: RemoveContext() called with NULL!"); + CONM_syslog(LOG_ERR, "WARNING: RemoveContext() called with NULL!"); return; } c = con->ServiceName; if (c == NULL) { c = "WTF?"; } - syslog(LOG_DEBUG, "RemoveContext(%s) session %d", c, con->cs_pid); + CON_syslog(LOG_DEBUG, "RemoveContext(%s) session %d", c, con->cs_pid); /// cit_backtrace(); /* Run any cleanup routines registered by loadable modules. @@ -357,7 +357,7 @@ void RemoveContext (CitContext *con) client_close(); /* If the client is still connected, blow 'em away. */ become_session(NULL); - syslog(LOG_NOTICE, "[%3d] Session ended.", con->cs_pid); + CON_syslog(LOG_NOTICE, "[%3d]SRV[%s] Session ended.", con->cs_pid, c); /* * If the client is still connected, blow 'em away. @@ -365,7 +365,7 @@ void RemoveContext (CitContext *con) */ if (con->client_socket > 0) { - syslog(LOG_NOTICE, "Closing socket %d", con->client_socket); + CON_syslog(LOG_NOTICE, "Closing socket %d", con->client_socket); close(con->client_socket); } @@ -381,7 +381,7 @@ void RemoveContext (CitContext *con) free(con->cached_msglist); } - syslog(LOG_DEBUG, "Done with RemoveContext()"); + CONM_syslog(LOG_DEBUG, "Done with RemoveContext()"); } @@ -398,7 +398,7 @@ CitContext *CreateNewContext(void) { me = (CitContext *) malloc(sizeof(CitContext)); if (me == NULL) { - syslog(LOG_ALERT, "citserver: can't allocate memory!!\n"); + CONM_syslog(LOG_ALERT, "citserver: can't allocate memory!!\n"); return NULL; } memset(me, 0, sizeof(CitContext)); @@ -448,7 +448,7 @@ CitContext *CloneContext(CitContext *CloneMe) { me = (CitContext *) malloc(sizeof(CitContext)); if (me == NULL) { - syslog(LOG_ALERT, "citserver: can't allocate memory!!\n"); + CONM_syslog(LOG_ALERT, "citserver: can't allocate memory!!\n"); return NULL; } memcpy(me, CloneMe, sizeof(CitContext)); @@ -552,7 +552,7 @@ void CtdlFillSystemContext(CitContext *context, char *name) if (context->user.usernum == 0) { /* old system user with number 0, upgrade it */ context->user.usernum = get_new_user_number(); - syslog(LOG_DEBUG, "Upgrading system user \"%s\" from user number 0 to user number %ld\n", context->user.fullname, context->user.usernum); + CON_syslog(LOG_INFO, "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); @@ -586,7 +586,7 @@ void context_cleanup(void) rem = ptr->next; --num_sessions; - syslog(LOG_DEBUG, "context_cleanup(): purging session %d\n", ptr->cs_pid); + CON_syslog(LOG_DEBUG, "context_cleanup(): purging session %d\n", ptr->cs_pid); RemoveContext(ptr); free (ptr); ptr = rem; @@ -646,7 +646,7 @@ void dead_session_purge(int force) { * is allocated privately on this thread's stack. */ while (rem != NULL) { - syslog(LOG_DEBUG, "dead_session_purge(): purging session %d, reason=%d\n", rem->cs_pid, rem->kill_me); + CON_syslog(LOG_DEBUG, "dead_session_purge(): purging session %d, reason=%d\n", rem->cs_pid, rem->kill_me); RemoveContext(rem); ptr = rem; rem = rem->next; @@ -677,7 +677,7 @@ void InitializeMasterCC(void) { */ void set_async_waiting(struct CitContext *ccptr) { - syslog(LOG_DEBUG, "Setting async_waiting flag for session %d\n", ccptr->cs_pid); + CON_syslog(LOG_DEBUG, "Setting async_waiting flag for session %d\n", ccptr->cs_pid); if (ccptr->is_async) { ccptr->async_waiting++; if (ccptr->state == CON_IDLE) { @@ -685,3 +685,16 @@ void set_async_waiting(struct CitContext *ccptr) } } } + + +void DebugSessionEnable(const int n) +{ + DebugSession = n; +} +CTDL_MODULE_INIT(session) +{ + if (!threading) { + CtdlRegisterDebugFlagHook(HKEY("session"), DebugSessionEnable, &DebugSession); + } + return "session"; +}