]> git.ozlabs.org Git - ccan/blobdiff - ccan/rfc822/rfc822.c
rfc822: Rename RFC822_HDR_BAD_NAME constant
[ccan] / ccan / rfc822 / rfc822.c
index 3bd3dd747ae28f532b4eef592297cc0e9b689d4f..6a0f95fc5f31ed7d9246c21719328b9641823774 100644 (file)
@@ -150,29 +150,33 @@ static struct rfc822_header *next_header_parse(struct rfc822_msg *msg)
        if (msg->body && (msg->remainder >= msg->body))
                return NULL;
 
-       eh = h = msg->remainder;
-       do {
-               eh = next_line(eh, msg->end);
-       } while ((eh < msg->end) && rfc822_iswsp(*eh));
-
-       if (eh >= msg->end)
-               msg->remainder = NULL;
-       else
-               msg->remainder = eh;
+       h = msg->remainder;
+       eh = next_line(h, msg->end);
 
        ev = eh;
        if ((ev > h) && (ev[-1] == '\n'))
                ev--;
        if ((ev > h) && (ev[-1] == '\r'))
                ev--;
-
        if (ev == h) {
                /* Found the end of the headers */
+
+               assert(!msg->body || (msg->body == eh));
+
                if (eh < msg->end)
                        msg->body = eh;
                return NULL;
        }
 
+       while ((eh < msg->end) && rfc822_iswsp(*eh))
+               eh = next_line(eh, msg->end);
+
+       if (eh >= msg->end)
+               msg->remainder = NULL;
+       else
+               msg->remainder = eh;
+
+
        hi = talloc_zero(msg, struct rfc822_header);
        ALLOC_CHECK(hi, NULL);
 
@@ -253,7 +257,7 @@ enum rfc822_header_errors rfc822_header_errors(struct rfc822_msg *msg,
                        assert(c != ':');
 
                        if ((c < 33) || (c > 126)) {
-                               err |= RFC822_HDR_BAD_NAME;
+                               err |= RFC822_HDR_BAD_NAME_CHARS;
                                break;
                        }
                }