text client <.A>ide <S>ysconfig <I>nternet , when encountering a "directory" domain...
[citadel.git] / citadel / modules / inetcfg / serv_inetcfg.c
index e3be75c801641d6414c46d362524b1e856a49c63..c0ddb356669726b8f0b1adce5e8b3ba88fc56441 100644 (file)
@@ -4,21 +4,15 @@
  * wrote it as a module merely to keep things as clean and loosely coupled
  * as possible.
  *
- * Copyright (c) 1987-2012 by the citadel.org team
+ * Copyright (c) 1987-2017 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 version 3.
- *  
- *  
+ * This program is open source software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 3.
  *
- *  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.
- *
- *  
- *  
- *  
+ * 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.
  */
 
 #include "sysdep.h"
@@ -57,8 +51,6 @@
 #include "internet_addressing.h"
 #include "genstamp.h"
 #include "domain.h"
-
-
 #include "ctdl_module.h"
 
 
@@ -66,8 +58,8 @@ void inetcfg_setTo(struct CtdlMessage *msg) {
        char *conf;
        char buf[SIZ];
        
-       if (msg->cm_fields['M']==NULL) return;
-       conf = strdup(msg->cm_fields['M']);
+       if (CM_IsEmpty(msg, eMesageText)) return;
+       conf = strdup(msg->cm_fields[eMesageText]);
 
        if (conf != NULL) {
                do {
@@ -85,25 +77,30 @@ void inetcfg_setTo(struct CtdlMessage *msg) {
  * This handler detects changes being made to the system's Internet
  * configuration.
  */
-int inetcfg_aftersave(struct CtdlMessage *msg) {
+int inetcfg_aftersave(struct CtdlMessage *msg, recptypes *recp) {
        char *ptr;
        int linelen;
 
        /* If this isn't the configuration room, or if this isn't a MIME
         * message, don't bother.
         */
-       if (strcasecmp(msg->cm_fields['O'], SYSCONFIGROOM)) return(0);
-       if (msg->cm_format_type != 4) return(0);
+       if ((msg->cm_fields[eOriginalRoom]) && (strcasecmp(msg->cm_fields[eOriginalRoom], SYSCONFIGROOM))) {
+               return(0);
+       }
+       if (msg->cm_format_type != 4) {
+               return(0);
+       }
 
-       ptr = msg->cm_fields['M'];
+       ptr = msg->cm_fields[eMesageText];
        while (ptr != NULL) {
        
                linelen = strcspn(ptr, "\n");
-               if (linelen == 0) return(0);    /* end of headers */    
+               if (linelen == 0) {
+                       return(0);      /* end of headers */    
+               }
                
                if (!strncasecmp(ptr, "Content-type: ", 14)) {
-                       if (!strncasecmp(&ptr[14], INTERNETCFG,
-                          strlen(INTERNETCFG))) {
+                       if (!strncasecmp(&ptr[14], INTERNETCFG, strlen(INTERNETCFG))) {
                                inetcfg_setTo(msg);     /* changing configs */
                        }
                }
@@ -119,46 +116,45 @@ int inetcfg_aftersave(struct CtdlMessage *msg) {
 void inetcfg_init_backend(long msgnum, void *userdata) {
        struct CtdlMessage *msg;
 
-               msg = CtdlFetchMessage(msgnum, 1);
+               msg = CtdlFetchMessage(msgnum, 1, 1);
                if (msg != NULL) {
                inetcfg_setTo(msg);
-                       CtdlFreeMessage(msg);
+                       CM_Free(msg);
        }
 }
 
 
 void inetcfg_init(void) {
-       if (CtdlGetRoom(&CC->room, SYSCONFIGROOM) != 0) return;
-       CtdlForEachMessage(MSGS_LAST, 1, NULL, INTERNETCFG, NULL,
-               inetcfg_init_backend, NULL);
+       if (CtdlGetRoom(&CC->room, SYSCONFIGROOM) != 0) {
+               return;
+       }
+       CtdlForEachMessage(MSGS_LAST, 1, NULL, INTERNETCFG, NULL, inetcfg_init_backend, NULL);
 }
 
 
-
-
 /*****************************************************************************/
 /*                      MODULE INITIALIZATION STUFF                          */
 /*****************************************************************************/
-void clenaup_inetcfg(void)
+void cleanup_inetcfg(void)
 {
        char *buf;
-
        buf = inetcfg;
        inetcfg = NULL;
-       if (buf != NULL)
+       if (buf != NULL) {
                free(buf);
+       }
 }
 
+
 CTDL_MODULE_INIT(inetcfg)
 {
        if (!threading)
        {
                CtdlRegisterMessageHook(inetcfg_aftersave, EVT_AFTERSAVE);
                inetcfg_init();
-               CtdlRegisterCleanupHook(clenaup_inetcfg);
+               CtdlRegisterCleanupHook(cleanup_inetcfg);
        }
        
        /* return our module name for the log */
        return "inetcfg";
 }
-