]> code.citadel.org Git - citadel.git/blobdiff - webcit/paramhandling.c
MAILINGLIST: add facility to choose the default room email alias.
[citadel.git] / webcit / paramhandling.c
index 1e26e9cb0d1b26fa7dce70a7857851d4130cddaa..f5cc22bbc3faefbd0b19e27b3223395d6f1708c0 100644 (file)
@@ -50,18 +50,18 @@ void ParseURLParams(StrBuf *url)
                        bptr++;
                }
                keylen = aptr - up - 1; /* -1 -> '=' */
-               if(keylen > sizeof(u->url_key)) {
-                       syslog(1, "invalid url_key");
-                       continue;
+               if(keylen >= sizeof(u->url_key)) {
+                       syslog(1, "invalid url_key from %s", ChrPtr(WCC->Hdr->HR.browser_host));
+                       return;
                }
 
                u = (urlcontent *) malloc(sizeof(urlcontent));
                memcpy(u->url_key, up, keylen);
                u->url_key[keylen] = '\0';
                if (keylen < 0) {
-                       syslog(1, "invalid url_key");
+                       syslog(1, "invalid url_key from %s", ChrPtr(WCC->Hdr->HR.browser_host));
                        free(u);
-                       continue;
+                       return;
                }
                
                if (strncmp(u->url_key, "__", 2) != 0)
@@ -318,7 +318,7 @@ void upload_handler(char *name, char *filename, char *partnum, char *disp,
        long keylen;
 
 #ifdef DEBUG_URLSTRINGS
-       syslog(9, "upload_handler() name=%s, type=%s, len=%d", name, cbtype, length);
+       syslog(9, "upload_handler() name=%s, type=%s, len="SIZE_T_FMT, name, cbtype, length);
 #endif
        if (WCC->Hdr->urlstrings == NULL)
                WCC->Hdr->urlstrings = NewHash(1, NULL);
@@ -364,14 +364,13 @@ void upload_handler(char *name, char *filename, char *partnum, char *disp,
 
 }
 
-
-
 void PutBstr(const char *key, long keylen, StrBuf *Value)
 {
        urlcontent *u;
+       wcsession *WCC = WC;
 
-       if(keylen > sizeof(u->url_key)) {
-               syslog(1, "invalid url_key");
+       if(keylen >= sizeof(u->url_key)) {
+               syslog(1, "invalid url_key from %s", ChrPtr(WCC->Hdr->HR.browser_host));
                FreeStrBuf(&Value);
                return;
        }
@@ -380,6 +379,14 @@ void PutBstr(const char *key, long keylen, StrBuf *Value)
        u->url_data = Value;
        Put(WC->Hdr->urlstrings, u->url_key, keylen, u, free_url);
 }
+void PutlBstr(const char *key, long keylen, long Value)
+{
+       StrBuf *Buf;
+
+       Buf = NewStrBufPlain(NULL, sizeof(long) * 16);
+       StrBufPrintf(Buf, "%ld", Value);
+       PutBstr(key, keylen, Buf);
+}
 
 
 
@@ -557,7 +564,7 @@ InitModule_PARAMHANDLING
        RegisterNamespace("BSTR:PAIR:X", 1, 2, tmplput_bstr_pair_x, NULL, CTX_BSTRPAIRS);
        RegisterNamespace("BSTR:PAIR:Y", 1, 2, tmplput_bstr_pair_y, NULL, CTX_BSTRPAIRS);
 
-       RegisterConditional(HKEY("COND:BSTR"), 1, ConditionalBstr, CTX_NONE);
+       RegisterConditional("COND:BSTR", 1, ConditionalBstr, CTX_NONE);
        RegisterNamespace("BSTR", 1, 2, tmplput_bstr, NULL, CTX_NONE);
        RegisterNamespace("BSTR:FORWARD", 1, 2, tmplput_bstrforward, NULL, CTX_NONE);
        RegisterNamespace("URLPART", 1, 2, tmplput_url_part, NULL, CTX_NONE);