]> code.citadel.org Git - citadel.git/blobdiff - webcit/paramhandling.c
Performed a bunch of markup fixes suggested by validator.w3.org
[citadel.git] / webcit / paramhandling.c
index d1edfeb066270be3420b1f523e5479da8ebc17e4..3d12c376c18f6921efbee630bd56d0f8a5a8a766 100644 (file)
@@ -1,6 +1,4 @@
 /*
- * $Id$
- *
  * parse urlparts and post data
  */
 
@@ -55,20 +53,33 @@ void ParseURLParams(StrBuf *url)
                        free(u);
                        continue;
                }
-
-               Put(WCC->Hdr->urlstrings, u->url_key, keylen, u, free_url);
-               len = bptr - aptr;
-               u->url_data = NewStrBufPlain(aptr, len);
-               StrBufUnescape(u->url_data, 1);
-            
-               up = bptr;
-               ++up;
+               
+               if (strncmp(u->url_key, "__", 2) != 0)
+               {
+                       Put(WCC->Hdr->urlstrings, u->url_key, keylen, u, free_url);
+                       len = bptr - aptr;
+                       u->url_data = NewStrBufPlain(aptr, len);
+                       StrBufUnescape(u->url_data, 1);
 #ifdef DEBUG_URLSTRINGS
-               lprintf(9, "%s = [%ld]  %s\n", 
-                       u->url_key, 
-                       StrLength(u->url_data), 
-                       ChrPtr(u->url_data)); 
+                       lprintf(9, "%s = [%ld]  %s\n", 
+                               u->url_key, 
+                               StrLength(u->url_data), 
+                               ChrPtr(u->url_data)); 
 #endif
+               }
+               else {
+                       len = bptr - aptr;
+                       u->url_data = NewStrBufPlain(aptr, len);
+                       StrBufUnescape(u->url_data, 1);
+                       lprintf(1, "REJECTED because of __ is internal only: %s = [%ld]  %s\n", 
+                               u->url_key, 
+                               StrLength(u->url_data), 
+                               ChrPtr(u->url_data)); 
+                       
+                       free_url(u);
+               }
+               up = bptr;
+               ++up;
        }
 }
 
@@ -294,8 +305,10 @@ void upload_handler(char *name, char *filename, char *partnum, char *disp,
 {
        wcsession *WCC = WC;
        urlcontent *u;
+       long keylen;
+
 #ifdef DEBUG_URLSTRINGS
-       lprintf(9, "upload_handler() name=%s, type=%s, len=%d\n", name, cbtype, length);
+       lprintf(9, "\033[31mupload_handler() name=%s, type=%s, len=%d\033[0m\n", name, cbtype, length);
 #endif
        if (WCC->Hdr->urlstrings == NULL)
                WCC->Hdr->urlstrings = NewHash(1, NULL);
@@ -304,10 +317,21 @@ void upload_handler(char *name, char *filename, char *partnum, char *disp,
        if ( (length > 0) && (IsEmptyStr(cbtype)) ) {
                u = (urlcontent *) malloc(sizeof(urlcontent));
                
-               safestrncpy(u->url_key, name, sizeof(u->url_key));
+               keylen = safestrncpy(u->url_key, name, sizeof(u->url_key));
                u->url_data = NewStrBufPlain(content, length);
                
-               Put(WCC->Hdr->urlstrings, u->url_key, strlen(u->url_key), u, free_url);
+               if (strncmp(u->url_key, "__", 2) != 0)
+               {
+                       Put(WCC->Hdr->urlstrings, u->url_key, keylen, u, free_url);
+               }
+               else {
+                       lprintf(1, "REJECTED because of __ is internal only: %s = [%ld]  %s\n", 
+                               u->url_key, 
+                               StrLength(u->url_data), 
+                               ChrPtr(u->url_data)); 
+                       
+                       free_url(u);
+               }
 #ifdef DEBUG_URLSTRINGS
                lprintf(9, "Key: <%s> len: [%ld] Data: <%s>\n", 
                        u->url_key, 
@@ -316,13 +340,15 @@ void upload_handler(char *name, char *filename, char *partnum, char *disp,
 #endif
        }
 
-       /** Uploaded files */
+       /* Uploaded files */
        if ( (length > 0) && (!IsEmptyStr(cbtype)) ) {
                WCC->upload = NewStrBufPlain(content, length);
                WCC->upload_length = length;
                WCC->upload_filename = NewStrBufPlain(filename, -1);
-               safestrncpy(WCC->upload_content_type, cbtype,
-                           sizeof(WC->upload_content_type));
+               safestrncpy(WCC->upload_content_type, cbtype, sizeof(WC->upload_content_type));
+#ifdef DEBUG_URLSTRINGS
+               lprintf(9, "File: <%s> len: [%ld]\n", filename, length);
+#endif
                
        }
 
@@ -393,16 +419,16 @@ void diagnostics(void)
 {
        output_headers(1, 1, 1, 0, 0, 0);
        wc_printf("Session: %d<hr />\n", WC->wc_session);
-       wc_printf("Command: <br /><PRE>\n");
+       wc_printf("Command: <br><PRE>\n");
 /*     
 StrEscPuts(WC->UrlFragment1);
-       wc_printf("<br />\n");
+       wc_printf("<br>\n");
        StrEscPuts(WC->UrlFragment2);
-       wc_printf("<br />\n");
+       wc_printf("<br>\n");
        StrEscPuts(WC->UrlFragment3);
 */
        wc_printf("</PRE><hr />\n");
-       wc_printf("Variables: <br /><PRE>\n");
+       wc_printf("Variables: <br><PRE>\n");
        dump_vars();
        wc_printf("</PRE><hr />\n");
        wDumpContent(1);