1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-27 14:04:05 +03:00

2281 Commits

Author SHA1 Message Date
Andrew Bartlett
355b5e3a83 modules: standardise on samba_init_module as the hook symbol to resolve 2011-10-06 07:18:07 +02:00
Andrew Bartlett
a718b5a4f1 lib/util: Use only init_module_fn typedef in module loading 2011-10-06 07:18:07 +02:00
Andrew Bartlett
c8945279e7 lib/util: Remove unused module loading functions 2011-10-06 07:18:07 +02:00
Andrew Bartlett
7d33ec3dfe lib/util: consolidate module loading into common code
This creates a samba-modules private libary that handles the details.

Andrew Bartlett
2011-10-06 07:18:07 +02:00
Andrew Tridgell
ea41860d32 ldb: support raw OIDs in control string parsing
this makes it possible to use a raw OID string on the command line or
in python scripts

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-10-06 14:34:21 +11:00
Andrew Tridgell
b3476f00a6 ldb: fixed memory leak in control string parsing
if parsing fails, free ctrl

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2011-10-06 14:34:21 +11:00
Stefan Metzmacher
f2b795e9cf lib/util: make sure panic action can attach a debugger on ubuntu (>=10.10)
By default user processes can't attach a debugger to a process.
So explicitly allow that for all child processes, before calling
the panic action script.

metze
2011-10-04 10:57:56 +02:00
Andrew Tridgell
1df100393b s4-ldb: enable display of partialAttributeSet with --show-binary 2011-10-04 15:08:55 +11:00
Jelmer Vernooij
d6c949b074 testtools: Import new upstream snapshot.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Mon Oct  3 13:54:06 CEST 2011 on sn-devel-104
2011-10-03 13:54:06 +02:00
Stefan Metzmacher
27195b3ac5 socket_wrapper: correctly handle dup()/dup2() ref counting
metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Thu Sep 29 13:13:56 CEST 2011 on sn-devel-104
2011-09-29 13:13:56 +02:00
Stefan Metzmacher
a110d05f67 socket_wrapper: pass down the fd explictly from the swrap_*() to the real_*() calls
metze
2011-09-29 10:27:15 +02:00
Kai Blin
b567694bb0 addns: Remove unused empty header file
Autobuild-User: Kai Blin <kai@samba.org>
Autobuild-Date: Sun Sep 25 09:15:09 CEST 2011 on sn-devel-104
2011-09-25 09:15:09 +02:00
Kai Blin
b02bbf237c net: Don't register link local addresses with DNS 2011-09-24 21:46:06 -07:00
Kai Blin
7466612392 addns: Allow creating AAAA records during updates 2011-09-24 21:46:06 -07:00
Andrew Bartlett
2a789c8442 build: Fix waf build on MacOS X
The -framework CoreFoundation is required by the charset_macosxfs module

The system/time.h header is required to access the replacement clock_gettime()

Andrew Bartlett

Autobuild-User: Andrew Bartlett <abartlet@samba.org>
Autobuild-Date: Fri Sep 23 10:58:02 CEST 2011 on sn-devel-104
2011-09-23 10:58:02 +02:00
Andrew Bartlett
d40fe50a67 build: avoid util.h as a public header name due to conflict with MacOS 2011-09-23 09:24:03 +02:00
Stefan Metzmacher
66f8070dd3 lib/util: move some timespec helpers from source3 to the toplevel
metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Fri Sep 23 00:15:31 CEST 2011 on sn-devel-104
2011-09-23 00:15:31 +02:00
Rusty Russell
95b2e5aa56 tdb2: change --enable-tdb2-breaks-compat to --enable-tdb2
Since we no longer break compatibility, don't scare people.

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

Autobuild-User: Rusty Russell <rusty@rustcorp.com.au>
Autobuild-Date: Wed Sep 21 09:25:11 CEST 2011 on sn-devel-104
2011-09-21 09:25:11 +02:00
Rusty Russell
fb41dfb77f tdb_compat: add "TDB_COMPAT_USE_TDB2" environment variable
When BUILD_TDB2 is defined, add TDB_VERSION1 flag to all tdb_open()
calls, unless this flag is set.  This means we use the tdb1 on-disk
format unless the user specifically asks for tdb2.

We'd love to do this using loadparm, but we need to work with both
Samba 3 and Samba 4's loadparm, and they're not unified yet.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2011-09-21 12:58:59 +09:30
Rusty Russell
f08b323a88 tdb_compat: honour hashsize arg when using tdb2 with TDB_VERSION1 flag.
We use the TDB_ATTRIBUTE_TDB1_HASHSIZE to set the hash size.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2011-09-21 12:57:59 +09:30
Rusty Russell
10e6a32820 tdb_compat: handle TDB_VOLATILE flag.
This is only meaningful when using the TDB_VERSION1 flag: we set the
attribute to control the maximum number of dead records (to 5, which is
what TDB_VOLATILE did for tdb1).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2011-09-21 12:56:59 +09:30
Rusty Russell
36b455d952 tdb_compat: handle TDB_INCOMPATIBLE_HASH flag.
This is only meaningful when using the TDB_VERSION1 flag: it is done
by using a magic hash value (which will fall back to the default hash
if that works instead).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2011-09-21 12:55:59 +09:30
Rusty Russell
92c022f043 tdb2: allow readonly changes even while holding locks.
This happens in SAMBA with the TDB_VERSION1, presumably due to a
read-only traverse nested inside a normal traverse (since it doesn't
occur without TDB_VERSION1).

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

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit 24e5ddb143fb5e79112649472258f5da67cc7362)

Autobuild-User: Rusty Russell <rusty@rustcorp.com.au>
Autobuild-Date: Tue Sep 20 09:35:10 CEST 2011 on sn-devel-104
2011-09-20 09:35:10 +02:00
Andrew Bartlett
f9acf770e9 lib/util/charset: remove charset module loading
Now that the 'table' modules are gone, there is no reason for there to
be charset modules at all.  This builds the macosxfs and weird modules
into the binary at the appropriate times, and changes the tests to
test instead the difference between the remaining internal handlers
and iconv().

Andrew Bartlett

Autobuild-User: Andrew Bartlett <abartlet@samba.org>
Autobuild-Date: Tue Sep 20 06:27:06 CEST 2011 on sn-devel-104
2011-09-20 06:27:06 +02:00
Andrew Bartlett
8316577b75 lib/util/charcnv: Remove broken internal CP850 and CP464 modules
These modules are now known to be faulty, and Samba 3.6.0 didn't
include support for them, so we now require a system iconv if you wish
to support these character sets for the non-ASCII range.

Andrew Bartlett
2011-09-20 04:53:05 +02:00
Matthias Dieter Wallnöfer
2e76b798fe ldb:"ldb_extended" -make the call more similar to "ldb_search"
For example NULL out the LDB result pointer on failures.

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2011-09-19 10:57:03 +10:00
Volker Lendecke
120b1392d3 swrap: Fix a c++ warning 2011-09-18 17:24:22 +02:00
Jelmer Vernooij
6589f1712f pyldb: Drop unnecessary dependency on pytalloc-util.
Autobuild-User: Jelmer Vernooij <jelmer@samba.org>
Autobuild-Date: Sun Sep 18 17:23:40 CEST 2011 on sn-devel-104
2011-09-18 17:23:40 +02:00
Stefan Metzmacher
94bebb96c5 talloc: change version to 2.0.7
The version change is needed because the ABI file
of the pytalloc code was fixed.

metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Thu Sep 15 22:32:59 CEST 2011 on sn-devel-104
2011-09-15 22:32:59 +02:00
Rusty Russell
cb064f28f9 tdb2: remove bogus leftover .orig file.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>

Autobuild-User: Rusty Russell <rusty@rustcorp.com.au>
Autobuild-Date: Wed Sep 14 06:06:41 CEST 2011 on sn-devel-104
2011-09-14 06:06:41 +02:00
Rusty Russell
84a4289b52 tdb_compat: change offset of CLEAR_IF_FIRST lock.
This makes it match tdb1, which mean it will Just Work as TDB2 gets
tdb1 format support.

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

Autobuild-User: Rusty Russell <rusty@rustcorp.com.au>
Autobuild-Date: Wed Sep 14 02:21:29 CEST 2011 on sn-devel-104
2011-09-14 02:21:29 +02:00
Rusty Russell
72c4074c65 tdb_compat: support tdb_reopen/tdb_reopen_all for TDB2
This matters with the clear-if-first support: we need to re-establish
those locks at this point.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2011-09-14 08:13:28 +09:30
Rusty Russell
2d7c85a971 tdb2: fix prototypes which return enum TDB_ERROR.
Since enums and ints are compatible in C, the compiler didn't warn
that our prototypes for these functions disagreed with the
definitions.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit 6d3832ee613adeb9ae7ed6454996ffa39c32650f)
2011-09-14 08:13:28 +09:30
Rusty Russell
c5c0a4d331 tdb2: fix return handling in pytdb wrapper.
tdb_close() does genuinely return non-zero, not an error code, even in tdb2.
And tdb_exists() returns true or false, not an error code.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2011-09-14 08:13:27 +09:30
Rusty Russell
2237daed7e tdb2: add error conversion functions.
This clarifies the code a little, but also provides a more explicit
mechanism which can be used to debug error handling (by introducing
tdb_err_t and making it a pointer type).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit afa6d57b7d93fe4675a952f556eb462951baa257)
2011-09-14 08:13:27 +09:30
Rusty Russell
45467c0118 tdb2: set tdb_error() on tdb_transaction_prepare_commit.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit feb36b14278b4230af70dab90369a345b6a027ef)
2011-09-14 08:13:27 +09:30
Rusty Russell
5e3731a281 tdb2: make tests work in parallel.
Lazy cut & paste of tdb names causes failure when we run in parallel.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit 380372e733416c2b348d5307f536d0a0807e95df)
2011-09-14 08:13:27 +09:30
Rusty Russell
67164070d5 tdb2: fix error handling for tdb1_transaction_commit.
tdb_repack() returns an enum TDB_ERROR, whereas
tdb1_transaction_commit is expected to return 0 or -1.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit b679512e4260b9847e2f846b07443e6907d8276f)
2011-09-14 08:13:27 +09:30
Rusty Russell
5de58894c7 tdb2: don't return -1 (ie. TDB_ERR_CORRUPT) on transaction write fail.
A left-over -1 return; should be returning ecode (probably TDB_ERR_IO).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit 077bdae6877d26749987b26a1b5b28cdba5ebbdd)
2011-09-14 08:13:27 +09:30
Rusty Russell
fbf0783722 tdb2: enhance tdb1 porting document.
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit 9cbae0f976118472f0065eee674eacf6ab4b80c5)
2011-09-14 08:13:27 +09:30
Rusty Russell
d96dfb24d1 tdb2: delete old tdb1 tests.
These two tdb1-specific tests have been superceded by the TDB_VERSION1
flags used in the main tests.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit e42097b73f6cd509aa17a48487a707401a2d4bd0)
2011-09-14 08:13:27 +09:30
Rusty Russell
2dfa64c3c9 tdb2: test: Speed up run-01-new_database.
Don't run tdb_check with failtest on, since it is very slow.  Do the
tdb_check w/ failtest in a new test, but skip MMAP suppression which
doesn't add much and slows down valgrind a lot.

Before this change run-01-new_database took 40 seconds (under
valgrind), after it takes 8 seconds, and run-12-check takes 3
seconds).

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit b3ae89992ecaffed31dcc2e912539c289478801a)
2011-09-14 08:13:26 +09:30
Rusty Russell
c3f3cad9eb tdb2: speed up testing.
The time to run tests under valgrind has become excessive; particularly
the failure tests which fork().   Thus we cut down testing:

1) api-94-repack: reduce from 234 seconds to 2 seconds by cutting
   iterations, despite adding TDB_VERSION1 tests.

2) api-missing-entries: reduce from 17 seconds to under 1 second by
   not checking db inside loop, but at end.

This reduces the total ccanlint time from 729 to 489 seconds.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit a99c2ccf97465d47c3277d997ea93f20ff97ad4d)
2011-09-14 08:13:26 +09:30
Rusty Russell
5e2ad32f81 tdb2: test: convert (non-invasive) run tests to api tests.
This reduces compilation time, since these are merely linked with the
pre-built module, rather than recompiling it into the test (which
allows for fancy things like failtest).

This reduces the test compile time down from about 62 seconds to 45
seconds.  Since ccanlint compiles tests three times (once normally,
once with coverage, and once with reduced config.h) this makes a
difference: we go from 780 seconds to 729 seconds.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit c4ca9f54301c0367891be6330f59fdd5dcdd51d1)
2011-09-14 08:13:26 +09:30
Rusty Russell
5fac36f5ad tdb2: test: fix run-57-die-during-transaction.c to be more efficient.
We track malloc and free, but we didn't catch the free() inside
external_agent, which means that our list of allocations keeps
growing.  Particularly under valgrind, which re-uses memory less than
the glibc allocator.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit d9cbd7d4454ae35e4e2f6d18a9469bf26948e4b9)
2011-09-14 08:13:26 +09:30
Rusty Russell
1cb92ea9cf tdb2: don't continue if tdb1_find fails.
The TDB1 code's tdb1_find() returns 0 on error; the callers should
not assume that the error means that the entry wasn't found, but use
last_error to determine it.

This was found by looking at how long the failure path testing for
test/run-10-simple-store.c was taking under valgrind, ie:

	valgrind -q ./run-10-simple-store --show-slowest

This change dropped the time for that test from 53 seconds to 19
seconds.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit 1be090a2d749713cfd0c4584cafb97bffd716189)
2011-09-14 08:13:26 +09:30
Rusty Russell
01b2214a18 tdb2: test: try (almost) all tests with TDB_VERSION1 flag.
There are some minor changes required, in particular:

1) Make sure lockcheck understands tdb1 allrecord lock upgrades.
2) Handle tdb1 sequence number jumps: various operations increment the
   sequence number twice, especually tdb_append.
3) Don't test fail on unlock, since it gets triggered with traversal on the
   tdb1 backend (we didn't actually ever test this case for tdb2).
4) Move clear_if_first to offset 4, to match tdb1. 

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit 818ed29730b030ce79855fc35c212b51adff3180)
2011-09-14 08:13:26 +09:30
Rusty Russell
ef70f5dd35 tdb2: log allocation failures in tdb1 backend.
The TDB2 tests are stricter about this; they want every error logged.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit 670ba98f74b52df541d153eeab9d3310932e75cd)
2011-09-14 08:13:26 +09:30
Rusty Russell
6b11a26301 tdb2: fix bogus error from tdb_unlockall() after fork in tdb1 backend.
We're always allowed to unlock after a fork; by setting the count to 0
before calling the generic unlock function we don't trigger the pid
check.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit ba5bb8eae6bcd230fd5321c618d6a9d56e74e7d1)
2011-09-14 08:13:13 +09:30
Rusty Russell
d26908846a tdb2: check lock owner in tdb1 backend.
This reports errors if we fork() while holding a lock, or misuse a tdb
which we have dual-opened.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
(Imported from CCAN commit bef6f1b02e95370ecb2cb44be87c82afc9cb74b2)
2011-09-14 08:12:13 +09:30