]> code.citadel.org Git - citadel.git/blobdiff - citadel/context.c
More debugging
[citadel.git] / citadel / context.c
index cfe30334ecdd3526d95bf1fb17659ec0b7798621..1bdea382923e744c2e4f5d233c87f40356dc8573 100644 (file)
@@ -332,12 +332,16 @@ void terminate_stuck_sessions(void)
  */
 void RemoveContext (CitContext *con)
 {
+       const char *c;
        if (con==NULL) {
-               syslog(LOG_ERR,
-                       "WARNING: RemoveContext() called with NULL!\n");
+               syslog(LOG_ERR, "WARNING: RemoveContext() called with NULL!\n");
                return;
        }
-       syslog(LOG_DEBUG, "RemoveContext() session %d\n", con->cs_pid);
+       c = con->ServiceName;
+       if (c == NULL)
+               c = "WTF?";
+       syslog(LOG_DEBUG, "RemoveContext(%s) session %d\n", c, con->cs_pid);
+       cit_backtrace ();
 
        /* Run any cleanup routines registered by loadable modules.
         * Note: We have to "become_session()" because the cleanup functions
@@ -350,15 +354,8 @@ void RemoveContext (CitContext *con)
 
        syslog(LOG_NOTICE, "[%3d] Session ended.\n", con->cs_pid);
 
-       /* 
-        * If the client is still connected, blow 'em away. 
-        * if the socket is 0, its already gone or was never there.
-        */
-       if (con->client_socket != 0)
-       {
-               syslog(LOG_DEBUG, "Closing socket %d\n", con->client_socket);
-               close(con->client_socket);
-       }
+       /* If the client is still connected, blow 'em away. */
+       client_close();
 
        /* If using AUTHMODE_LDAP, free the DN */
        if (con->ldap_dn) {