]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/inetcfg/serv_inetcfg.c
Memleak: free the global inet-config on exit.
[citadel.git] / citadel / modules / inetcfg / serv_inetcfg.c
index 06e61c88c75e337a86de45a0d6094db3c1e67127..3ac9339c2045d65573e411c741fe0053b6f3ea49 100644 (file)
@@ -1,11 +1,24 @@
 /*
- * $Id$ 
- *
  * This module handles the loading/saving and maintenance of the
  * system's Internet configuration.  It's not an optional component; I
  * wrote it as a module merely to keep things as clean and loosely coupled
  * as possible.
  *
+ * Copyright (c) 1987-2009 by the citadel.org team
+ *
+ *  This program is free 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"
@@ -38,9 +51,7 @@
 #include "citserver.h"
 #include "support.h"
 #include "config.h"
-#include "room_ops.h"
 #include "user_ops.h"
-#include "policy.h"
 #include "database.h"
 #include "msgbase.h"
 #include "internet_addressing.h"
@@ -163,7 +174,7 @@ void spamstrings_init_backend(long msgnum, void *userdata) {
 
 
 void inetcfg_init(void) {
-       if (getroom(&CC->room, SYSCONFIGROOM) != 0) return;
+       if (CtdlGetRoom(&CC->room, SYSCONFIGROOM) != 0) return;
        CtdlForEachMessage(MSGS_LAST, 1, NULL, INTERNETCFG, NULL,
                inetcfg_init_backend, NULL);
 }
@@ -174,7 +185,15 @@ void inetcfg_init(void) {
 /*****************************************************************************/
 /*                      MODULE INITIALIZATION STUFF                          */
 /*****************************************************************************/
+void clenaup_inetcfg(void)
+{
+       char *buf;
 
+       buf = inetcfg;
+       inetcfg = NULL;
+       if (buf != NULL)
+               free(buf);
+}
 
 CTDL_MODULE_INIT(inetcfg)
 {
@@ -182,9 +201,10 @@ CTDL_MODULE_INIT(inetcfg)
        {
                CtdlRegisterMessageHook(inetcfg_aftersave, EVT_AFTERSAVE);
                inetcfg_init();
+               CtdlRegisterCleanupHook(clenaup_inetcfg);
        }
        
        /* return our Subversion id for the Log */
-       return "$Id$";
+       return "inetcfg";
 }