summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2010-09-15Fix a typoVolker Lendecke1-1/+1
2010-09-15tsocket: we return -1 on error, not fdAndrew Tridgell1-7/+7
the code used this pattent: if (fd < 0) { ...various cleanups... return fd; } it is much clearer to do this: if (fd < 0) { ...various cleanups... return -1; } as otherwise when reading the code you think this function may return a fd. Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-09-15talloc: fixed spelling errors in commentAndrew Tridgell1-2/+2
2010-09-14Ensure incoming timespec values correctly wrap at nsecs.Jeremy Allison1-0/+7
Jeremy.
2010-09-14libreplace: use CLOCK_HIGHRES when availableBjörn Jacke1-3/+5
in Solaris 8 CLOCK_HIGHRES was the (only) name for CLOCK_MONOTONIC
2010-09-14tdb: add ABI/tdb-1.2.4.sigsStefan Metzmacher1-0/+60
metze
2010-09-14subunit.pm: Pass through milliseconds in time reports.Jelmer Vernooij1-2/+1
2010-09-13lib/tdb: change version to 1.2.4 after hash checking improvmentsStefan Metzmacher2-2/+2
lib/tdb: change version to 1.2.4 after hash checking improvments metze Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-09-13tdb: put example hashes into header, so we notice incorrect hash_fn.Rusty Russell3-2/+65
This is Stefan Metzmacher <metze@samba.org>'s patch with minor changes: 1) Use the TDB_MAGIC constant so both hashes aren't of strings. 2) Check the hash in tdb_check (paranoia, really). 3) Additional check in the (unlikely!) case where both examples hash to 0. 4) Cosmetic changes to var names and complaint message. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-09-13tdb: fix tdb_check() on other-endian tdbs.Rusty Russell1-1/+1
We must not endian-convert the magic string, just the rest. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-09-13tdb: fix tdb_check() on read-only TDBs to actually work.Rusty Russell1-5/+17
Commit bc1c82ea137 "Fix tdb_check() to work with read-only tdb databases." claimed to do this, but tdb_lockall_read() fails on read-only databases. Also make sure we can still do tdb_check() inside a transaction (weird, but we previously allowed it so don't break the API). Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-09-13tdb: make check more robust against recovery failures.Rusty Russell1-5/+36
We can end up with dead areas when we die during transaction commit; tdb_check() fails on such a (valid) database. This is particularly noticable now we no longer truncate on recovery; if the recovery area was at the end of the file we used to remove it that way. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-09-11lib/replace/wscript:Tru64 build - Better use version 600 for _XOPEN_SOURCEMatthias Dieter Wallnöfer1-2/+2
This means we request the "Single UNIX Specification, Version 3" with C99 compatibility as the Python 2.5 release on the system. This prevents redefinitions with different values. > [ 451/1918] Compiling scripting/python/pyglue.c > cc: Warning: /usr/local/include/python2.5/pyconfig.h, line 951: The redefinition of the macro "_XOPEN_SOURCE" conflicts with a current definition because the replacement lists differ. The redefinition is now in effect. (macroredef) > #define _XOPEN_SOURCE 600 > ----------------------^ > cc: Warning: default/source4/include/config.h, line 54: The redefinition of the macro "_XOPEN_SOURCE" conflicts with a current definition because the replacement lists differ. The redefinition is now in effect. (macroredef) > #define _XOPEN_SOURCE 500 > ----------------------^
2010-09-11lib/replace:wscript - additional attempt to fix the build on Tru64Matthias Dieter Wallnöfer1-1/+3
Obviously we really need both definitions ("socklen_t" has been found by "_XOPEN_SOURCE"=500). But now FIONREAD wasn't accessible.
2010-09-11lib/replace:wscript - don't check twice for type "bool"Matthias Dieter Wallnöfer1-2/+1
2010-09-11lib/replace:wscript - attempt to fix the features detection on Tru64Matthias Dieter Wallnöfer1-2/+2
Hopefully now we detect the built-in "socklen_t" https://bugs.internet2.edu/jira/browse/SSPCPP-114 http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V50_HTML/MAN/MAN5/0001____.HTM
2010-09-10libreplace: clock_gettime sets errnoBjörn Jacke1-1/+2
2010-09-09lib/util: remove some unused_result warnings.Günther Deschner1-2/+7
Guenther
2010-09-07lib/util: add time_mono() for monotonic time a la time()Björn Jacke2-0/+26
2010-09-04dnspython: Update to latest upstream.Jelmer Vernooij30-104/+225
2010-09-04subunit: Import latest upstream.Jelmer Vernooij13-118/+300
2010-09-04testtools: Import latest upstream.Jelmer Vernooij28-207/+2334
2010-09-04util: added samba_start_debugger()Andrew Tridgell2-0/+18
This developer function is useful for debugging unusual error conditions
2010-09-02pidl-python: cope with NULL pointers in more placesAndrew Tridgell2-0/+24
NULL is converted to Py_None
2010-09-02pytalloc: treat a NULL ptr as Py_NoneAndrew Tridgell1-1/+7
2010-08-31tdb/waf: the deps for rt are provided by libreplaceBjörn Jacke1-1/+1
2010-08-31replace/waf: add rt to deps at this placeBjörn Jacke1-1/+1
2010-08-31lib/util: add nsec_time_diff to calulate diffs from timespecsBjörn Jacke2-0/+14
2010-08-31lib/util: add function to query the monotonic clock with the required ↵Björn Jacke2-0/+15
fallback to the realtime clock
2010-08-31libreplace: make a define for a best effort monotonic clockBjörn Jacke1-0/+7
2010-08-31libreplace: add clock_gettime replacement function for systems that don't ↵Björn Jacke4-0/+32
have it
2010-08-31libreplace/waf: look for clock_gettimeBjörn Jacke1-0/+1
2010-08-31libreplace: move detection of clock_gettime to libreplaceBjörn Jacke1-0/+43
2010-08-31libreplace: move gettimeofday TZ arg check hereBjörn Jacke2-9/+10
2010-08-28lib/util: remove implicit discard_const_p() from SAFE_FREE()Stefan Metzmacher1-1/+1
This should fix a lot of warnings on IRIX. If callers know what they're doing they can use discard_const_p() on their own. metze
2010-08-28Revert "lib/tsocket: sa_socklen is a macro on irix, so better use sasocklen"Stefan Metzmacher3-39/+39
This reverts commit 3d4fb698660381e650d7caeb5b7cff12847c0fb8. This was wrong... The problem was in the caller, sa_len is a macro on irix metze
2010-08-27lib/tsocket: sa_socklen is a macro on irix, so better use sasocklenStefan Metzmacher3-39/+39
metze
2010-08-25pytalloc: fixed py_talloc_steal()Andrew Tridgell2-1/+9
py_talloc_steal() was implemented as a macro which evaluated it's 2nd argument twice. It was often called via a macro with a 2nd argument that was a function call, for example an allocation in py_talloc_new(). This meant it allocated memory twice, and leaked one of them. This re-implements py_talloc_steal() as a function, so that it only does the allocation once.
2010-08-25s4-pytalloc: use better names for python talloc objectsAndrew Tridgell1-0/+2
2010-08-23replace: Fix ifndefs for formatting defines.Jelmer Vernooij1-3/+3
Thanks to Michael Brown for pointing this out.
2010-08-23libreplace: fixed the strptime() waf testAndrew Tridgell1-8/+2
Thanks to Jelmer for pointing this out
2010-08-22Use DocBook DTD rather than Samba one, as no Samba-specific things areJelmer Vernooij3-3/+3
used in the tdb manpages.
2010-08-17smbtorture: Emit correct test results if setup fails.James Peach1-15/+31
If the test setup fails, we still need to format the test result for the UI. At leas in the subunit case, the format doesn't specify what to do here, so we fail every test manually with the setup failure message.
2010-08-17s3: Fix a ton of type-punned warningsVolker Lendecke1-4/+4
2010-08-15s3: Fix a typoVolker Lendecke1-1/+1
2010-08-14talloc:documentation - explain that "talloc_free" works also with "NULL" ↵Matthias Dieter Wallnöfer2-14/+26
pointers (talloc.c) ... > static inline int _talloc_free_internal(void *ptr, const char *location) > { > struct talloc_chunk *tc; > > if (unlikely(ptr == NULL)) { > return -1; > } > > tc = talloc_chunk_from_ptr(ptr); ... Obviously this never had been documented before.
2010-08-14tdb: workaround starvation problem in locking entire database.Rusty Russell4-19/+131
We saw tdb_lockall() take 71 seconds under heavy load; this is because Linux (at least) doesn't prevent new small locks being obtained while we're waiting for a big log. The workaround is to do divide and conquer using non-blocking chainlocks: if we get down to a single chain we block. Using a simple test program where children did "hold lock for 100ms, sleep for 1 second" the time to do tdb_lockall() dropped signifiantly. There are ln(hashsize) locks taken in the contended case, but that's slow anyway. More analysis is given in my blog at http://rusty.ozlabs.org/?p=120 This may also help transactions, though in that case it's the initial read lock which uses this gradual locking routine; the update-to-write-lock code is separate and still tries to update in one go. Even though ABI doesn't change, minor version bumped so behavior change can be easily detected. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2010-08-13tdb: add TDB_DEPS variable filled with required librariesBjörn Jacke4-8/+21
This is required for Solaris, which needs to link in librt to make use of fdatasync().
2010-07-29Fix tdb_check() to work with read-only tdb databases. The function ↵Jeremy Allison1-3/+3
tdb_lockall() uses F_WRLCK internally, which doesn't work on a fd opened with O_RDONLY. Use tdb_lockall_read() instead. Jeremy.
2010-07-26lib: added samba-util.pc creationAndrew Tridgell2-1/+13
Thanks to Brad Hards for this patch