X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fhousekeeping.c;h=f4d930d64802631a320086be954b50f409255f58;hb=ef347e598ab670b87e178af7fc6b00795494303a;hp=78e0da5f2d025a5a71983b0c31dc6de17e9a8a4d;hpb=2a557d1e1aeee5b4bb8d829a1cff40c37f8d4d2c;p=citadel.git diff --git a/citadel/housekeeping.c b/citadel/housekeeping.c index 78e0da5f2..f4d930d64 100644 --- a/citadel/housekeeping.c +++ b/citadel/housekeeping.c @@ -1,8 +1,21 @@ /* - * $Id$ - * * This file contains miscellaneous housekeeping tasks. * + * Copyright (c) 1987-2011 by the citadel.org team + * + * This program is open source software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include "sysdep.h" @@ -30,6 +43,7 @@ #ifdef HAVE_SYS_SELECT_H #include #endif +#include #include #include "citadel.h" #include "server.h" @@ -46,47 +60,10 @@ #include "ctdl_module.h" #include "threads.h" -/* - * Terminate idle sessions. This function pounds through the session table - * comparing the current time to each session's time-of-last-command. If an - * idle session is found it is terminated, then the search restarts at the - * beginning because the pointer to our place in the list becomes invalid. - */ -void terminate_idle_sessions(void) { - CitContext *ccptr; - time_t now; - int session_to_kill; - int killed = 0; - int longrunners = 0; - - now = time(NULL); - session_to_kill = 0; - begin_critical_section(S_SESSION_TABLE); - for (ccptr = ContextList; ccptr != NULL; ccptr = ccptr->next) { - if ( (ccptr!=CC) - && (config.c_sleeping > 0) - && (now - (ccptr->lastcmd) > config.c_sleeping) ) { - if (!ccptr->dont_term) { - ccptr->kill_me = 1; - ++killed; - } - else - longrunners ++; - } - } - end_critical_section(S_SESSION_TABLE); - if (killed > 0) - CtdlLogPrintf(CTDL_INFO, "Terminated %d idle sessions\n", killed); - if (longrunners > 0) - CtdlLogPrintf(CTDL_INFO, "Didn't terminate %d protected idle sessions;\n", killed); -} - - - void check_sched_shutdown(void) { if ((ScheduledShutdown == 1) && (ContextList == NULL)) { - CtdlLogPrintf(CTDL_NOTICE, "Scheduled shutdown initiating.\n"); - CtdlThreadStopAll(); + syslog(LOG_NOTICE, "Scheduled shutdown initiating.\n"); + server_shutting_down = 1; } } @@ -111,7 +88,7 @@ void check_ref_counts(void) { int new_refcounts[MAXFLOORS]; - CtdlLogPrintf(CTDL_DEBUG, "Checking floor reference counts\n"); + syslog(LOG_DEBUG, "Checking floor reference counts\n"); for (a=0; a