Rusty Russell [Wed, 31 Oct 2012 11:31:47 +0000 (22:01 +1030)]
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>
Rusty Russell [Wed, 31 Oct 2012 11:29:50 +0000 (21:59 +1030)]
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>
Rusty Russell [Wed, 31 Oct 2012 11:23:17 +0000 (21:53 +1030)]
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>
Rusty Russell [Wed, 31 Oct 2012 11:05:41 +0000 (21:35 +1030)]
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>
Rusty Russell [Wed, 31 Oct 2012 11:05:27 +0000 (21:35 +1030)]
foreach: remove unused var warning.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Wed, 31 Oct 2012 11:04:20 +0000 (21:34 +1030)]
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>
Rusty Russell [Wed, 31 Oct 2012 11:04:18 +0000 (21:34 +1030)]
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>
Rusty Russell [Wed, 31 Oct 2012 11:03:59 +0000 (21:33 +1030)]
crc: remove gratuitous trailing whitespace.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Wed, 31 Oct 2012 11:03:47 +0000 (21:33 +1030)]
check_type: remove gratuitous trailing whitespace.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Wed, 31 Oct 2012 11:03:18 +0000 (21:33 +1030)]
alloc: remove valgrind warning from test.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Wed, 31 Oct 2012 11:02:54 +0000 (21:32 +1030)]
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>
Rusty Russell [Wed, 31 Oct 2012 11:02:37 +0000 (21:32 +1030)]
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>
Rusty Russell [Wed, 31 Oct 2012 10:59:27 +0000 (21:29 +1030)]
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>
Rusty Russell [Wed, 31 Oct 2012 07:11:43 +0000 (17:41 +1030)]
ccanlint: Understand Creative Commons Zero license.
Public domain for those who don't have it.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Wed, 31 Oct 2012 06:19:21 +0000 (16:49 +1030)]
licenses: Add Creative Commons Zero.
http://creativecommons.org/publicdomain/zero/1.0/legalcode
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Mon, 22 Oct 2012 10:16:33 +0000 (20:46 +1030)]
ccanlint: remove unused variables.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
David Gibson [Wed, 10 Oct 2012 14:19:10 +0000 (01:19 +1100)]
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>
David Gibson [Mon, 8 Oct 2012 07:53:56 +0000 (18:53 +1100)]
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>
David Gibson [Mon, 8 Oct 2012 08:05:48 +0000 (19:05 +1100)]
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>
David Gibson [Thu, 4 Oct 2012 14:35:11 +0000 (00:35 +1000)]
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>
Rusty Russell [Fri, 5 Oct 2012 02:15:24 +0000 (11:45 +0930)]
ccanlint: fix coverage display for gcov 4.7
David Gibson reports a new format, meaning we didn't show the gcov files
with -vv.
David Gibson [Thu, 4 Oct 2012 14:17:10 +0000 (00:17 +1000)]
rfc822: Rename RFC822_HDR_BAD_NAME constant
This error constant is actually more specific than the name suggests - it
indicates that a header field name contains characters which are not
permitted in a header field name. Rename the constant to better reflect
this, likewise rename the testcase based around it.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
David Gibson [Thu, 4 Oct 2012 14:12:27 +0000 (00:12 +1000)]
rfc822: Rename bad-header test
The run-bad-header.c test in the rfc822 module is actually testing handling
of one specific sort of bad header - a header field which contains no
colon character. Rename the test and its internal variables to better
reflect this.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
David Gibson [Wed, 3 Oct 2012 13:20:46 +0000 (23:20 +1000)]
rfc822: Move check_header into helper.c
The check_header() test function will be useful to more than one testcase
so this patch moves it into the common helper.c file.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
David Gibson [Wed, 3 Oct 2012 13:02:39 +0000 (23:02 +1000)]
rfc822: Add an example program
Add a simple full-blown example program for the rfc822 module.
'headernames' simply dumps the header field name for every header field in
each message file given on the command line to stdout.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Rusty Russell [Mon, 24 Sep 2012 01:25:13 +0000 (10:55 +0930)]
str: add STR_MAX_CHARS().
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Wed, 19 Sep 2012 01:08:40 +0000 (10:38 +0930)]
list: change license to BSD-MIT.
Approved by all contributors:
https://lists.ozlabs.org/pipermail/ccan/2012-September/000490.html
https://lists.ozlabs.org/pipermail/ccan/2012-September/000488.html
https://lists.ozlabs.org/pipermail/ccan/2012-September/000489.html
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Mon, 10 Sep 2012 06:43:15 +0000 (16:13 +0930)]
time: make trivial functions inline
And enhance the documentation a little.
Rusty Russell [Mon, 10 Sep 2012 06:43:11 +0000 (16:13 +0930)]
time: add time_check() call and test.
Times can be invalid: non-normalized, or negative.
Rusty Russell [Mon, 10 Sep 2012 06:14:54 +0000 (15:44 +0930)]
failtest, tools: update for new timespec-using ccan/time module.
Rusty Russell [Mon, 10 Sep 2012 06:14:52 +0000 (15:44 +0930)]
time: use timespec instead of timeval.
It's a superset of struct timeval. It's also a bit trickier, since we
need -lrt on Linux to use clock_gettime(), and also we can't just cram the
time into a u64 for multiply and divide.
Rusty Russell [Mon, 10 Sep 2012 06:14:45 +0000 (15:44 +0930)]
ccanlint: don't remove HAVE_STRUCT_TIMESPEC when testing without features.
If we do have it, and we redefine it, compilation breaks.
Rusty Russell [Mon, 10 Sep 2012 06:14:43 +0000 (15:44 +0930)]
configurator: add library testing
In particular, HAVE_CLOCK_GETTIME_IN_LIBRT.
Rusty Russell [Mon, 10 Sep 2012 06:14:11 +0000 (15:44 +0930)]
ccanlint: make sure examples get correct -l options.
We intuit the dependencies of embedded examples by looking for #include.
But these extra dependencies may require extra libraries, so we need to
add those, too.
Rusty Russell [Mon, 10 Sep 2012 06:14:00 +0000 (15:44 +0930)]
ccanlint: recurse to get -l options.
If a dependent module needs -l options, we don't notice. Fix that, now
we have one.
Rusty Russell [Mon, 10 Sep 2012 05:03:01 +0000 (14:33 +0930)]
tools: more intelligent caching for compile _info.
We let the get_deps() caller hand us the compiled _info filename, but what
about recursive dependencies? These we re-generate every time.
So fix this: hand a generator callback to get_deps(), expose the one
which simply compiles it, and add a ccanlint one which looks up the
manifest to see if we have one already.
Before:
$ ccanlint -vvvv ccan/failtest | grep -c 'Creating.*_info'
31
After:
$ ccanlint -vvvv ccan/failtest | grep -c 'Creating.*_info'
17
Rusty Russell [Mon, 10 Sep 2012 05:02:01 +0000 (14:32 +0930)]
Merge branch 'master' of ozlabs.org:ccan
David Gibson [Tue, 14 Aug 2012 03:55:53 +0000 (13:55 +1000)]
rfc822: Fix test bugs on 64-bit platforms
This fixes some format string related bugs that show up on 64-bit builds.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
David Gibson [Sun, 12 Aug 2012 10:21:44 +0000 (20:21 +1000)]
rfc822: Include RFC5322 text for reference
For convenience, check in a copy of the full text of RFC5322 (the latest
revision of RFC822).
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Rusty Russell [Wed, 18 Jul 2012 03:38:08 +0000 (13:08 +0930)]
ccanlint: make depends_accurate test more accurate.
In particular, don't complain on conditional lines. That's less thorough,
but removes false negatives we have now.
David Gibson [Sat, 30 Jun 2012 05:34:23 +0000 (15:34 +1000)]
rfc822: Fix bug parsing headers when body begins with linear whitespace
next_header_parse() had a bug which would mis-parse an extra header if the
body of the message began with a linear whitespace character (space or
tab). This patch fixes it and adds a suitable testcase.
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Rusty Russell [Tue, 26 Jun 2012 07:06:37 +0000 (16:36 +0930)]
rfc822: suppress license warning about failtest.
It's only used for testing, but it's LGPLv3 (vs LGPLv2). But unless we
suppress it, ccanlint exits with status 1 and my sanity checks stop me from
uploading.
Rusty Russell [Tue, 26 Jun 2012 06:59:31 +0000 (16:29 +0930)]
rfc822: new module.
Rusty Russell [Tue, 26 Jun 2012 06:58:08 +0000 (16:28 +0930)]
web: fix umask on uploader so it's group readable.
Rusty Russell [Tue, 26 Jun 2012 06:46:18 +0000 (16:16 +0930)]
bytestring: new module.
Alessandro Guido [Wed, 20 Jun 2012 08:46:19 +0000 (10:46 +0200)]
Avoid compiler errors if u32 is defined as a type
Fixes this error:
/hash.h:304:13: error: two or more data types in
declaration specifiers
Rusty Russell [Sat, 9 Jun 2012 06:06:45 +0000 (15:36 +0930)]
antithread, failtest: use ccan/err instead of err.h.
Rusty Russell [Sat, 9 Jun 2012 06:04:56 +0000 (15:34 +0930)]
opt: avoid using err.h.
Seems it's not available on Solaris.
Rusty Russell [Fri, 8 Jun 2012 11:19:32 +0000 (20:49 +0930)]
err: actually implement replacement versions!
This is where you see the genius of the originals: you can't implement them
without horrible hacks to get the program name :(
Rusty Russell [Fri, 8 Jun 2012 10:58:01 +0000 (20:28 +0930)]
Merge branch 'master' of ozlabs.org:ccan
Rusty Russell [Fri, 8 Jun 2012 07:51:04 +0000 (17:21 +0930)]
configurator: add HAVE_ERR_H test.
Rusty Russell [Fri, 8 Jun 2012 07:37:03 +0000 (17:07 +0930)]
ccan/err: new err.h-replacing module.
Seems like Solaris doesn't have err.h, as discovered by Samba.
Michael Ellerman [Fri, 25 May 2012 06:38:08 +0000 (16:38 +1000)]
tools/create-ccan-tree: Add basic waf support
This adds a "waf" buildtype to create-ccan-tree. When passed it
generates a basic wscript for building everything into a libccan.a
It doesn't support running the generator, so you need to provide
config.h
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com>
Jeremy Kerr [Thu, 24 May 2012 05:48:19 +0000 (13:48 +0800)]
tools/create-ccan-tree: Add --build-type=automake
Add a new build type to create an appropriate Makefile.am for the
newly-created ccan tree.
Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com>
Jeremy Kerr [Thu, 24 May 2012 01:48:00 +0000 (09:48 +0800)]
tools/create-ccan-tree: Add --build-type=TYPE
Replace the --exclude-configurator argument with a
single --build-type=TYPE argument, allowing future expansion of build
system types (and allowing source-tree-only creation). We currently
support:
* 'make' (just the Makefile, equivalent to --exclude-configurator)
* 'make+config' (current default)
Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com>
Jeremy Kerr [Thu, 24 May 2012 03:49:10 +0000 (11:49 +0800)]
tools/create-ccan-tree: replace --exclude-tests with --copy-all option
Rather than explicitly excluding the tests, just copy the source files
by default. Add an option (--copy-all) to include all of the non-source
stuff in each module.
Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com>
Jeremy Kerr [Tue, 22 May 2012 09:19:24 +0000 (17:19 +0800)]
tools: ccan_depends requires a config.h
Commit
a77cc282 causes tools/create-ccan-tree to fail, as it can't build
tools/ccan_depends (via `make tools/ccan_depends`) without a
configuration header present.
This change adds a dependency on config.h, so that the configurator
kicks-in prior to building ccan_depends.o.
Other tools don't need this dependency, as tools/ccan_depends is built
during the Makefile 'include' process.
Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Rusty Russell [Thu, 17 May 2012 03:44:18 +0000 (13:14 +0930)]
config.h: don't include in git repository.
We create and upload an example for the web anyway, if people really need it.
Jeremy Kerr [Wed, 16 May 2012 03:02:56 +0000 (11:02 +0800)]
tools: Add create-ccan-tree utility
Add a script to create a ccan source tree for inclusion into projects'
distributed code.
create-ccan-tree takes a list of ccan modules and copies them, plus any
dependent modules, into a target directory. Enough build infrastructure
is added to build libccan.a from the ccan modules.
Typical usage for my project that uses talloc and read-write-all:
lib/ccan.git/tools/create-ccan-tree --exclude-tests \
lib/ccan/ talloc read-write-all
- this uses a git submodule in $PWDlib/ccan.git to create a source tree
in $PWD/lib/ccan, containing code for talloc and read-write-all.
Signed-off-by: Jeremy Kerr <jeremy.kerr@canonical.com>
Rusty Russell [Thu, 29 Mar 2012 04:28:33 +0000 (14:58 +1030)]
asort: fix test when typesafe_cb not supported.
Solaris CC seems to support typeof, but not __builtin_types_compatible_p.
Rusty Russell [Thu, 29 Mar 2012 04:28:33 +0000 (14:58 +1030)]
cast: make sure suncc sees a constant.
cast_const() et. al. are supposed to be a constant expression, so you can do things like:
static char *p = cast_const(char *, (const char *)"hello");
Unfortunately, a cast to intptr_t and arithmetic makes suncc reject it as
a constant expression. We need the cast, because (1) the expression could be
a void *, so we can't just add to it, and (2) gcc complains with -Wcast-qual
without it.
So instead of adding BUILD_BUG_OR_ZERO, we use a ? :, which keeps everyone happy.
Rusty Russell [Thu, 29 Mar 2012 04:28:23 +0000 (14:58 +1030)]
ccan_tokenizer: don't assume __VA_ARGS__ can be empty.
That's a gcc extension.
Rusty Russell [Tue, 27 Mar 2012 05:10:45 +0000 (15:40 +1030)]
cast: test/compile_fail-cast_static.c should fail without COMPOUND_LITERALS.
It still gave a warning on gcc, because casting a char to a char* gives a warning. Not so on sun CC.
Rusty Russell [Tue, 27 Mar 2012 05:01:27 +0000 (15:31 +1030)]
ccanlint: module_links test must link with module.
Gcc doesn't include unused inline functions, even without -O, but Solaris CC
does, so fails to link block_pool where one inline function refers to a
non-inline function.
Rusty Russell [Tue, 27 Mar 2012 04:37:50 +0000 (15:07 +1030)]
asprintf: #include <stdarg.h> in test/run.c
We get away with it on Linux, not on Solaris.
Rusty Russell [Tue, 27 Mar 2012 04:36:46 +0000 (15:06 +1030)]
ccanlint: tests_compile_coverage needs GCC.
We only support gcc/gcov so far.
Rusty Russell [Tue, 27 Mar 2012 04:22:13 +0000 (14:52 +1030)]
ccanlint: add ilog dependency.
This only matters on non-gcc, where ilog functions are not just mapped to builtins.
Rusty Russell [Tue, 27 Mar 2012 04:08:13 +0000 (14:38 +1030)]
tap: assume variadic macros.
The Sun C compiler has them, but fails this overzealous check.
Rusty Russell [Tue, 27 Mar 2012 04:00:29 +0000 (14:30 +1030)]
opt: fix Solaris compile.
Need sys/termios.h for struct winsize.
Rusty Russell [Tue, 27 Mar 2012 03:54:00 +0000 (14:24 +1030)]
iscsi: use <sys/filio.h> on Solaris.
Needed for FIONREAD.
Rusty Russell [Tue, 27 Mar 2012 03:45:19 +0000 (14:15 +1030)]
alloc: fix return of void.
Sun CC complains.
Rusty Russell [Tue, 27 Mar 2012 03:45:18 +0000 (14:15 +1030)]
tools: don't use __attribute__
We have compiler.h for that.
Rusty Russell [Tue, 27 Mar 2012 03:45:18 +0000 (14:15 +1030)]
tools: fix bogus unreachable return.
Rusty Russell [Tue, 27 Mar 2012 03:45:18 +0000 (14:15 +1030)]
tools/configurator: fix test for /proc/self/maps.
Header file was wrong, suncc gives warning about missing open prototype, causing configurator to fail.
Rusty Russell [Tue, 27 Mar 2012 03:45:16 +0000 (14:15 +1030)]
Makefile: generate config.h in two stages
This means we don't create an empty file if configurator fails.
Rusty Russell [Wed, 21 Mar 2012 00:48:18 +0000 (11:18 +1030)]
failtest: compile fix for OpenBSD
OpenBSD doesn't idempotent-wrap sys/mman.h, so when we #define mmap to
an alternative, it fails to compile when sys/mman.h is included again.
Workaround is not to #define mmap to add arguments on Open BSD.
Rusty Russell [Mon, 19 Mar 2012 05:51:00 +0000 (16:21 +1030)]
Merge branch 'ccantool'
Rusty Russell [Mon, 19 Mar 2012 05:36:27 +0000 (16:06 +1030)]
tools: move config.h reading to its own file
Move ccan_dir determination out to its own function, rather than implying it
by the first time we get the manifest of a module.
Rusty Russell [Mon, 19 Mar 2012 05:15:45 +0000 (15:45 +1030)]
tools: explicit find_ccan_dir()
Move ccan_dir determination out to its own function, rather than implying it
by the first time we get the manifest of a module.
Rusty Russell [Mon, 19 Mar 2012 05:14:59 +0000 (15:44 +1030)]
ccanlint: handle -x correctly with multiple modules.
After the first module we were resetting even the excluded tests, which caused
a segfault as they weren't initialized.
Rusty Russell [Mon, 19 Mar 2012 05:14:13 +0000 (15:44 +1030)]
tools: determing ccan directory differently
Don't assume it's two levels above the module dir, instead look for
last "/ccan/" in path. This is an incremental step towards nested
module directories.
Rusty Russell [Mon, 19 Mar 2012 05:13:13 +0000 (15:43 +1030)]
tools: split out manifest from ccanlint
Other tools will soon want to use this, so make it independent.
(eg. ccantool).
Rusty Russell [Fri, 9 Mar 2012 02:55:03 +0000 (13:25 +1030)]
tdb2: remove: it's now in SAMBA where it belongs.
Rusty Russell [Fri, 9 Mar 2012 02:50:35 +0000 (13:20 +1030)]
htable: fix bug where first entry has hash of 0 or 1.
Thanks to Zoltán Lajos Kis for the bug report and test case!
Rusty Russell [Thu, 8 Mar 2012 03:44:22 +0000 (14:14 +1030)]
failtest: don't assume FD_SETSIZE is maximum runtime fd.
This breaks when rlimit is less. Unfortunately, valgrind (32 bit x86,
3.7.0.SVN, Ubuntu) fails to set the file limit properly on the test:
reducing it to the obvious getrlimit/setrlimit/getrlimit works fine,
so leaving diagnostics for another day.
Daniel Burke [Sun, 26 Feb 2012 17:03:59 +0000 (03:33 +1030)]
ttxml: made alloc failure consistent - return NULL
Daniel Burke [Sun, 26 Feb 2012 17:03:05 +0000 (03:33 +1030)]
ttxml: removed cruft from tests
Daniel Burke [Sun, 26 Feb 2012 17:02:39 +0000 (03:32 +1030)]
ttxml: fixed license test
Rusty Russell [Tue, 14 Feb 2012 09:39:18 +0000 (20:09 +1030)]
tdb: delete from CCAN.
This was an early experiment in putting code into CCAN, but TDB is a public
library distributed as part of the Samba sources; there is no reason to
publish it here (especially now the unit tests are also in Samba).
Rusty Russell [Tue, 14 Feb 2012 09:34:00 +0000 (20:04 +1030)]
configurator: define HAVE_CCAN.
An interesting case came up with the tdb2 code in SAMBA recently. It's a
public library, and it doesn't want to be dependent on CCAN, but the header
uses cast and typesafe_cb for extra type safety.
A good solution to this is to put dummy versions under !HAVE_CCAN. Of course,
any CCAN config.h should define HAVE_CCAN.
Rusty Russell [Sat, 28 Jan 2012 04:14:43 +0000 (14:44 +1030)]
tdb2: copy tdb1's changed expansion logic.
TDB2 uses the same expansion logic as TDB1, which got factored out
recently. So update TDB2 to match.
Rusty Russell [Sat, 28 Jan 2012 04:14:43 +0000 (14:44 +1030)]
tdb2: tdb1: use same expansion factor logic when expanding for new recovery area.
If we're expanding because the current recovery area is too small, we
expand only the amount we need. This can quickly lead to exponential
growth when we have a slowly-expanding record (hence a
slowly-expanding transaction size).
(Syncs with tdb1 SAMBA patch
3a2a755e3380a8f81374009d463cd06161352507)
Volker Lendecke [Sat, 28 Jan 2012 04:14:36 +0000 (14:44 +1030)]
tdb2: Avoid a malloc/memcpy in _tdb1_store
(Syncs tdb2 with SAMBA tdb1's
664add17757836c5ee98618aef11371f412b6e44)
Rusty Russell [Wed, 21 Dec 2011 05:54:41 +0000 (16:24 +1030)]
tdb2: careful on wrap.
It's much harder to wrap a 64-bit tdb2 than a 32-bit tdb1, but we should still
take care against bugs.
Also, we should *not* cast the length to a size_t when comparing it to
the stat result, in case size_t is 32 bit.
Rusty Russell [Wed, 21 Dec 2011 05:44:51 +0000 (16:14 +1030)]
tdb2: be more careful on 4G files (tdb1).
I came across a tdb which had wrapped to 4G + 4K, and the contents had been
destroyed by processes which thought it only 4k long. Fix this by checking
on open, and making tdb_oob() check for wrap itself.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Ported from tdb1 SAMBA commit
b64494535dc62f4073fc6302847593ed6e6ec38b)
Rusty Russell [Tue, 20 Dec 2011 07:10:57 +0000 (17:40 +1030)]
tdb: don't free old recovery area when expanding if already at EOF.
We allocate a new recovery area by expanding the file. But if the
recovery area is already at the end of file (as shown in at least one
client case), we can simply expand the record, rather than freeing it
and creating a new one.
Rusty Russell [Tue, 20 Dec 2011 07:09:28 +0000 (17:39 +1030)]
tdb: use same expansion factor logic when expanding for new recovery area.
If we're expanding because the current recovery area is too small, we
expand only the amount we need. This can quickly lead to exponential
growth when we have a slowly-expanding record (hence a
slowly-expanding transaction size).
Rusty Russell [Tue, 20 Dec 2011 07:07:45 +0000 (17:37 +1030)]
tdb: test exponential recovery expansion problem.
Rusty Russell [Mon, 19 Dec 2011 01:21:45 +0000 (11:51 +1030)]
opt: much prettier usage (using terminal size)
Rusty Russell [Fri, 16 Dec 2011 00:09:47 +0000 (10:39 +1030)]
opt: handle -Wcast-qual warnings.