rfc822: Allow test infrastructure to handle headers with minor errors

Currently the test infrastructure for constructing example messages then
parsing them assumes that constructed headers never have errors of any
kind.  That's true so far, but it limits the versatility of this test
apparatus.  This patch extends the infrastructure to allow minor errors
(that is things other than a missing colon) to be handled.  The existing
test data is also extended to include cases which use this.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
bytestring: Allow bytestring_from_string to be called on NULL

Currently, calling bytestring_from_string(NULL) will result in a SEGV
within strlen().  This patch makes this construct safe, returning
bytestring_NULL, which seems a less surprising result.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
rfc822: Retrieve header fields by name

This patch adds functions to the rfc822 module to retrieve header fields
of a given name.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
rfc822: Index headers by name

Replace the current brute force implementation of
rfc822_next_header_of_name() with one using a hash table to (lazily) index
the header fields by name.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
ccanlint: remove unused variables.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
licenses: Add Creative Commons Zero.

http://creativecommons.org/publicdomain/zero/1.0/legalcode

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ccanlint: Understand Creative Commons Zero license.

Public domain for those who don't have it.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ccanlint: add #line directives to examples.

This means error messages come out in the right place.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
str: fix unused var warning with gcc

Compiler:
/home/rusty/devel/cvs/ccan/ccan/str/str.h: In function ‘main’:
/home/rusty/devel/cvs/ccan/ccan/str/str.h:69:5: warning: variable ‘i’ set but not used [-Wunused-but-set-variable]

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
alignof: fix unused var warning with gcc

/home/rusty/devel/cvs/ccan/ccan/alignof/test/run.c:32:7: warning: variable ‘c2’ set but not used [-Wunused-but-set-variable]

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
alloc: remove valgrind warning from test.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
check_type: remove gratuitous trailing whitespace.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
crc: remove gratuitous trailing whitespace.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
crcsync: fix constness warning.

/home/rusty/devel/cvs/ccan/ccan/crcsync/test/run-crash.c:Compile gave warnings:
/home/rusty/devel/cvs/ccan/ccan/crcsync/test/run-crash.c: In function ‘main’:
/home/rusty/devel/cvs/ccan/ccan/crcsync/test/run-crash.c:30:3: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default]
/home/rusty/devel/cvs/ccan/ccan/crcsync/test/run-crash.c:35:3: warning: initialization discards ‘const’ qualifier from pointer target type [enabled by default]

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
crcsync: fix memory leak in tests.

/home/rusty/devel/cvs/ccan/ccan/crcsync/test/run-crash.c:==6923== 112 bytes in 1 blocks are definitely lost in loss record 2 of 3
==6923==    at 0x402BA7A: malloc (vg_replace_malloc.c:261)
==6923==    by 0x80492EE: crcblocks (run-crash.c:20)
==6923==    by 0x8049448: main (run-crash.c:62)
==6923== 2,217 (2,212 direct, 5 indirect) bytes in 1 blocks are definitely lost in loss record 3 of 3
==6923==    at 0x402BA7A: malloc (vg_replace_malloc.c:261)
==6923==    by 0x8048AA0: crc_context_new (crcsync.c:85)
==6923==    by 0x8049476: main (run-crash.c:64)

/home/rusty/devel/cvs/ccan/ccan/crcsync/test/run.c:==11793== 512 bytes in 1 blocks are definitely lost in loss record 1 of 2
==11793==    at 0x402A52B: calloc (vg_replace_malloc.c:462)
==11793==    by 0x8049A3F: main (run.c:128)
==11793== 512 bytes in 1 blocks are definitely lost in loss record 2 of 2
==11793==    at 0x402A52B: calloc (vg_replace_malloc.c:462)
==11793==    by 0x8049A57: main (run.c:129)

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
foreach: remove unused var warning.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
lbalance: fix unused var warning.

/home/rusty/devel/cvs/ccan/ccan/lbalance/lbalance.c:Compiling object files gave warnings:
/home/rusty/devel/cvs/ccan/ccan/lbalance/lbalance.c: In function ‘best_target’:
/home/rusty/devel/cvs/ccan/ccan/lbalance/lbalance.c:245:18: warning: variable ‘best’ set but not used [-Wunused-but-set-variable]

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
list: fix unused var warning.

/home/rusty/devel/cvs/ccan/ccan/list/list.h: In function ‘main’:
/home/rusty/devel/cvs/ccan/ccan/list/list.h:280:15: warning: variable ‘first’ set but not used [-Wunused-but-set-variable]

/home/rusty/devel/cvs/ccan/ccan/list/list.h: In function ‘main’:
/home/rusty/devel/cvs/ccan/ccan/list/list.h:304:15: warning: variable ‘last’ set but not used [-Wunused-but-set-variable]

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
talloc: remove const warning in _info example.

Compiler:
/home/rusty/devel/cvs/ccan/ccan/talloc/_info: In function ‘main’:
/home/rusty/devel/cvs/ccan/ccan/talloc/_info:84:9: warning: passing argument 2 of ‘open_output_cmd’ discards ‘const’ qualifier from pointer target type [enabled by default]
/home/rusty/devel/cvs/ccan/ccan/talloc/_info:52:24: note: expected ‘char *’ but argument is of type ‘const char *’

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
time: remove unused var warning in example.

Compiler:
/home/rusty/devel/cvs/ccan/ccan/time/time.h: In function ‘main’:
/home/rusty/devel/cvs/ccan/ccan/time/time.h:334:16: warning: variable ‘tv’ set but not used [-Wunused-but-set-variable]

Compiler:
/home/rusty/devel/cvs/ccan/ccan/time/time.h: In function ‘main’:
/home/rusty/devel/cvs/ccan/ccan/time/time.h:353:17: warning: variable ‘ts’ set but not used [-Wunused-but-set-variable]

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>