webcit-ng: fixed the way HTTP uploads are fed into the MIME Parser.
[citadel.git] / libcitadel / lib / mime_parser.c
index 65093a2fac298fbce79f5accab7332c8aed79d55..776e3fe4ac2f5af83f92ab676817b5ac533b3d54 100644 (file)
@@ -457,13 +457,14 @@ static int IsAsciiEncoding(interesting_mime_headers *m) {
 }
 
 
-static char *FindNextContent(char *ptr,
-                       char *content_end,
-                       interesting_mime_headers *SubMimeHeaders,
-                       interesting_mime_headers *m)
-{
+static char *FindNextContent(
+               char *ptr,
+               char *content_end,
+               interesting_mime_headers *SubMimeHeaders,
+               interesting_mime_headers *m
+) {
        char *next_boundary;
-       char  tmp;
+       char tmp;
 
        if (IsAsciiEncoding(SubMimeHeaders)) {
                tmp = *content_end;
@@ -482,8 +483,9 @@ static char *FindNextContent(char *ptr,
                                        
                        lines = SubMimeHeaders->content_length / 80;
                        pptr = ptr + SubMimeHeaders->content_length - lines - 10;
-                       if (pptr < content_end)
+                       if (pptr < content_end) {
                                ptr = pptr;
+                       }
                }
                        
                next_boundary = strstr(ptr, m->b[startary].Key);
@@ -512,8 +514,9 @@ static char *FindNextContent(char *ptr,
                                next_boundary = srch;
                                srch = content_end;
                        }
-                       else srch ++;
-
+                       else {
+                               srch++;
+                       }
                }
 
        }
@@ -535,15 +538,15 @@ static void recurseable_mime_parser(char *partnum,
                interesting_mime_headers *m
 ) {
        interesting_mime_headers *SubMimeHeaders;
-       char     *ptr;
-       char     *part_start;
-       char     *part_end = NULL;
-       char     *evaluate_crlf_ptr = NULL;
-       char     *next_boundary;
-       char      nested_partnum[256];
-       int       crlf_in_use = 0;
-       int       part_seq = 0;
-       CBufStr  *chosen_name;
+       char *ptr;
+       char *part_start;
+       char *part_end = NULL;
+       char *evaluate_crlf_ptr = NULL;
+       char *next_boundary;
+       char nested_partnum[256];
+       int crlf_in_use = 0;
+       int part_seq = 0;
+       CBufStr *chosen_name;
 
        // If this is a multipart message, then recursively process it
        ptr = content_start;
@@ -568,7 +571,7 @@ static void recurseable_mime_parser(char *partnum,
 
                // Figure out where the boundaries are
                m->b[startary].len = snprintf(m->b[startary].Key, SIZ, "--%s", m->b[boundary].Key);
-               SubMimeHeaders = InitInterestingMimes ();
+               SubMimeHeaders = InitInterestingMimes();
 
                while ((*ptr == '\r') || (*ptr == '\n')) {
                        ptr++;
@@ -610,14 +613,14 @@ static void recurseable_mime_parser(char *partnum,
 
                                if (!IsEmptyStr(partnum)) {
                                        snprintf(nested_partnum,
-                                                sizeof nested_partnum,
-                                                "%s.%d", partnum,
-                                                ++part_seq);
+                                               sizeof nested_partnum,
+                                               "%s.%d", partnum,
+                                               ++part_seq);
                                }
                                else {
                                        snprintf(nested_partnum,
-                                                sizeof nested_partnum,
-                                                "%d", ++part_seq);
+                                               sizeof nested_partnum,
+                                               "%d", ++part_seq);
                                }
                                recurseable_mime_parser(nested_partnum,
                                                        part_start, 
@@ -679,6 +682,7 @@ static void recurseable_mime_parser(char *partnum,
                        );
                }
        }
+
        // If it's not a multipart message, then do something with it
        else {
                size_t length;
@@ -803,9 +807,7 @@ void the_mime_parser(char *partnum,
        }
 
        m = InitInterestingMimes();
-
        if (!parse_MimeHeaders(m, &content_start, content_end)) {
-
                recurseable_mime_parser(partnum,
                                        content_start, content_end,
                                        CallBack,