]> code.citadel.org Git - citadel.git/blobdiff - webcit/siteconfig.c
* add contexttype, so the subst can precheck the context pointer for us, and bad...
[citadel.git] / webcit / siteconfig.c
index bde63a706dec9eddf6cdc5bf990fc062c3ea51d5..1a760033570b3befe85ae9801ed1243e8439d553 100644 (file)
@@ -880,17 +880,24 @@ void load_siteconfig(void)
        serv_printf("CONF get");
        serv_getln(buf, sizeof buf);
        i = 0;
-       while (len = serv_getln(buf, sizeof buf), 
-              strcmp(buf, "000") && 
-              (i < sizeof(ServerConfig))) 
+       Buf = NewStrBuf();
+       while ((sizeof(ServerConfig) / sizeof(CfgMapping)) &&
+              (len = StrBuf_ServGetln(Buf),
+               strcmp(ChrPtr(Buf), "000")) && 
+              (i <= sizeof(ServerConfig))) 
        {
                Put(Cfg,
                    ServerConfig[i].Key, 
                    ServerConfig[i].len, 
-                   NewStrBufPlain(buf, len)
+                   Buf
                    HFreeStrBuf);
                i++;
+               if (i <= sizeof(ServerConfig) / sizeof(CfgMapping))
+                       Buf = NewStrBuf();
+               else
+                       Buf = NULL;                     
        }
+       FreeStrBuf(&Buf);
 
        serv_puts("GPEX site");
        Buf = NewStrBuf();
@@ -979,7 +986,7 @@ void siteconfig(void)
        display_aide_menu();
 }
 
-void tmplput_servcfg(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context)
+void tmplput_servcfg(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context, int ContextType)
 {
        struct wcsession *WCC = WC;
        void *vBuf;
@@ -997,7 +1004,7 @@ void tmplput_servcfg(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *C
        }
 }
 
-int ConditionalServCfg(WCTemplateToken *Tokens, void *Context)
+int ConditionalServCfg(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
        struct wcsession *WCC = WC;
        void *vBuf;
@@ -1022,7 +1029,7 @@ int ConditionalServCfg(WCTemplateToken *Tokens, void *Context)
        else return 0;
 }
 
-int ConditionalServCfgSubst(WCTemplateToken *Tokens, void *Context)
+int ConditionalServCfgSubst(WCTemplateToken *Tokens, void *Context, int ContextType)
 {
        struct wcsession *WCC = WC;
        void *vBuf;
@@ -1047,11 +1054,11 @@ void
 InitModule_SITECONFIG
 (void)
 {
-       WebcitAddUrlHandler(HKEY("display_siteconfig"), display_siteconfig, 0);
-       WebcitAddUrlHandler(HKEY("siteconfig"), siteconfig, 0);
+       WebcitAddUrlHandler(HKEY("display_siteconfig"), display_siteconfig, CTX_NONE);
+       WebcitAddUrlHandler(HKEY("siteconfig"), siteconfig, CTX_NONE);
 
-       RegisterNamespace("SERV:CFG", 1, 1, tmplput_servcfg);
-       RegisterConditional(HKEY("COND:SERVCFG"), 3, ConditionalServCfg);
-       RegisterConditional(HKEY("COND:SERVCFG:SUBST"), 4, ConditionalServCfgSubst);
+       RegisterNamespace("SERV:CFG", 1, 1, tmplput_servcfg, CTX_SITECFG);
+       RegisterConditional(HKEY("COND:SERVCFG"), 3, ConditionalServCfg, CTX_NONE);
+       RegisterConditional(HKEY("COND:SERVCFG:SUBST"), 4, ConditionalServCfgSubst, CTX_NONE);
 }
 /*@}*/