]> code.citadel.org Git - citadel.git/blobdiff - webcit/inetconf.c
* save_inetconf was clobbering the screen. Fixed it by registering it as an ordinary...
[citadel.git] / webcit / inetconf.c
index 8814784fb9a974427708b3b156db8a2ee3fa5191..ee1daf4b11c91eaac5f98dd63d0e9bbfcabc9e65 100644 (file)
@@ -44,7 +44,7 @@ ConstStrBuf CfgNames[] = {
  */
 void load_inetconf(void)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        StrBuf *Buf, *CfgToken, *Value;
        void *vHash;
        HashList *Hash;
@@ -93,7 +93,7 @@ void load_inetconf(void)
  * save changes to the inet config
  */
 void new_save_inetconf(void) {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        HashList *Hash;
        StrBuf *Str;
        const StrBuf *eType, *eNum, *eName;
@@ -157,7 +157,7 @@ void new_save_inetconf(void) {
                                return;
                        }
                        if (GetCount(Hash) > 0) {
-                               where = GetNewHashPos();
+                               where = GetNewHashPos(Hash, 0);
                                while (GetNextHashPos(Hash, where, &KeyLen, &Key, &vStr)) {
                                        Str = (StrBuf*) vStr;
                                        if ((Str!= NULL) && (StrLength(Str) > 0))
@@ -175,14 +175,14 @@ void new_save_inetconf(void) {
        url_do_template();
 }
 
-void InetCfgSubst(StrBuf *TemplBuffer, void *vContext, WCTemplateToken *Tokens)
+void InetCfgSubst(StrBuf *TemplBuffer, WCTemplputParams *TP)
 {
-       SVPutBuf("SERVCFG:INET:HOSTNAME", vContext, 1);
+       SVPutBuf("SERVCFG:INET:HOSTNAME", CTX, 1);
 }
 
-void DeleteInetConfHash(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context, int ContextType)
+void DeleteInetConfHash(StrBuf *Target, WCTemplputParams *TP)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
 
        if (WCC->InetCfg != NULL)
                DeleteHash(&WCC->InetCfg);
@@ -190,18 +190,15 @@ void DeleteInetConfHash(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void
 }
 
 
-HashList *GetInetConfHash(StrBuf *Target, int nArgs, WCTemplateToken *Tokens, void *Context, int ContextType)
+HashList *GetInetConfHash(StrBuf *Target, WCTemplputParams *TP)
 {
-       struct wcsession *WCC = WC;
+       wcsession *WCC = WC;
        void *vHash;
 
        if (WCC->InetCfg == NULL)
                load_inetconf();
-       GetHash(WCC->InetCfg, 
-               Tokens->Params[2]->Start, 
-               Tokens->Params[2]->len,
-               &vHash);
-       svprintf(HKEY("SERVCFG:INET:TYPE"), WCS_STRING, Tokens->Params[2]->Start);
+       GetHash(WCC->InetCfg, TKEY(5), &vHash);
+       svprintf(HKEY("SERVCFG:INET:TYPE"), WCS_STRING, TP->Tokens->Params[5]->Start);
        return vHash;
 }
 
@@ -209,7 +206,7 @@ void
 InitModule_INETCONF
 (void)
 {
-       WebcitAddUrlHandler(HKEY("save_inetconf"), new_save_inetconf, AJAX);
-       RegisterIterator("SERVCFG:INET", 1, NULL, GetInetConfHash, InetCfgSubst, NULL, CTX_INETCFG, CTX_NONE);
+       WebcitAddUrlHandler(HKEY("save_inetconf"), new_save_inetconf, 0);
+       RegisterIterator("SERVCFG:INET", 1, NULL, GetInetConfHash, InetCfgSubst, NULL, CTX_INETCFG, CTX_NONE, IT_NOFLAG);
        RegisterNamespace("SERVCFG:FLUSHINETCFG",0, 0, DeleteInetConfHash, CTX_NONE);
 }