Commit 4c5f970e authored by Rusty Russell's avatar Rusty Russell

Merge branch 'master' of ozlabs.org:ccan

parents 87c679ff 00b26784
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -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);
......
......@@ -45,7 +45,7 @@ static void check_header(struct rfc822_msg *msg,
allocation_failure_check();
ok(hname.ptr && bytestring_eq(hname, bytestring_from_string(name)),
"Header name \"%.*s\"", hname.len, hname.ptr);
"Header name \"%.*s\"", (int)hname.len, hname.ptr);
hvalue = rfc822_header_raw_value(msg, h);
allocation_failure_check();
......
......@@ -89,7 +89,7 @@ static void check_folded_header(const char *buf, size_t len)
hunfold = rfc822_header_unfolded_value(msg, hdr);
allocation_failure_check();
ok(hunfold.len == strlen(UNFOLDED), "Unfolded length %d, should be %d",
ok(hunfold.len == strlen(UNFOLDED), "Unfolded length %zd, should be %zd",
hunfold.len, strlen(UNFOLDED));
ok1(memcmp(hunfold.ptr, UNFOLDED, hunfold.len) == 0);
......
......@@ -53,11 +53,15 @@ AEXAMPLE(test_msg_nlnl_crlf);
const char test_msg_nlnl_mixed_body[] = "Message containing both \n\n and \r\n\r\n inside body\n\r\n";
AEXAMPLE(test_msg_nlnl_mixed);
#define test_msg_space_body_hdrs test_msg_1_hdrs
const char test_msg_space_body_body[] = " Message with LWS at start of body\n";
AEXAMPLE(test_msg_space_body);
#define for_each_aexample(_e) \
foreach_ptr((_e), &test_msg_1, &test_msg_empty_body, \
&test_msg_nlnl_lf, &test_msg_nlnl_crlf, \
&test_msg_nlnl_mixed)
&test_msg_nlnl_mixed, \
&test_msg_space_body)
#define for_each_aexample_buf(_e, _buf, _len) \
for_each_aexample((_e)) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment