Age | Commit message (Collapse) | Author | Files | Lines |
|
These will be used to help avoid the problem we have with hundreds of
places that do "return LDB_ERR_OPERATIONS_ERROR" without an
explanation. It is very difficult to track down ldb errors which don't
have any explanation.
By replacing "return LDB_ERR_OPERATIONS_ERROR;" with "return ldb_operr(ldb);"
we at least get a file:line message in the ldb error string. It isn't
an ideal error message, but it is much better than just "operations
error"
This change also makes ldb_oom() return the error code
(LDB_ERR_OPERATIONS_ERROR) so you can do:
return ldb_oom(ldb);
instead of:
ldb_oom(ldb);
return LDB_ERR_OPERATIONS_ERROR;
|
|
Check on modify if we are RODC and return referral.
On the ldap backend side now we pass context and ldb_modify_default_callback
to propagate the referral error to the client.
|
|
To count LDB objects use variables of type "unsigned (int)" or "long long int"
on binary or downto searches.
To count characters in strings use "size_t".
To calculate differences between pointers use "ptrdiff_t".
|
|
This canonicalise avoids a problem with an add that has multiple
elements with the same el->name. That is allowed by MS servers, and by
ldb, but it breaks things like the tdb backend and the repl_meta_data
RPMD handling.
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
|
|
when a prepare commit fails, we need to give a cancel to all modules,
not a commit!
Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
|
|
|
|
We were testing for valid DNs in ldbrename in the command line
tool. This hid a bug in the ldb library where we caught a bad DN in
the objectclass module rather than in the main ldb code. It is better
to do validation of the DNs passed on the command line in the library
code, as this gives us more consistent error handling between the
programming APIs for ldb and the command line.
|
|
ldap_backend used to filter out ldap controls on modify. Also, modified
python binding for ldap_modify to allow writing tests for such controls.
|
|
|
|
Signed-off-by: Stefan Metzmacher <metze@samba.org>
|
|
This helps pin down where errors occour, by printing a call stack and
setting error strings and trace messages in the transaction case.
Andrew Bartlett
|
|
This will be used to allow cancelling of transactions in a child after
a fork()
|
|
|
|
|
|
This adds ldb_debug_add() and ldb_debug_end() to format multiline
messages
|
|
|
|
When LDB_FLG_ENABLE_TRACING is set ldb will send full traces
of all operations and results
|
|
|
|
It is useful to be able to control the 2 phase commit from application
code (s4 replication uses it)
|
|
|
|
The reason we need this is to make multi-tdb transactions safe, with
the partition module. The linked_attributes and repl_meta_data modules
now do extra processing when the transaction ends, and that processing
can fail. When it fails we need to cancel the transaction, which we
can only do if the hook is on the prepare commit instead of the end
transaction call. Otherwise the partition module cannot ensure that no
commit has been done on another partition.
|
|
|
|
|
|
of LDB
(including the one in Samba 3).
|
|
metze
|
|
metze
|
|
behavior anyway, and given we can only have one transaction active per
ldb context this is the only sane model we can support.
Fix ldb_tdb transactions, we could return back with an error with neither
committing nor canceling the actual tdb transaction in some error paths
within the ltdb commit and cancel transaction paths.
Added also some debugging to trace what was going on.
|
|
Separate again the public from the private headers.
Add a new header specific for modules.
Also add service function for modules as now ldb_context and ldb_module are
opaque structures for them.
|
|
metze
|
|
list=""
list="$list event_context:tevent_context"
list="$list fd_event:tevent_fd"
list="$list timed_event:tevent_timer"
for s in $list; do
o=`echo $s | cut -d ':' -f1`
n=`echo $s | cut -d ':' -f2`
r=`git grep "struct $o" |cut -d ':' -f1 |sort -u`
files=`echo "$r" | grep -v source3 | grep -v nsswitch | grep -v packaging4`
for f in $files; do
cat $f | sed -e "s/struct $o/struct $n/g" > $f.tmp
mv $f.tmp $f
done
done
metze
|
|
it should always have been. Make it also async so that it is not a special case.
|
|
|
|
The previous ldb_search() interface made it way too easy to leak results,
and being able to use a printf-like expression turns to be really useful.
|
|
(This used to be commit 40b71bbd718f6dee70c0611e527f55c56623dea6)
|
|
metze
(This used to be commit 1d5b714438a955d76f92f4ccd8aa2f7f89ffa5fd)
|
|
Current glibc libraries include a function called init_module(). If we
use the same name, then a dlsym() can find the glibc function if the
module doesn't have an initialisation function.
In ldb, none of our modules have an init_module(), so we end up calling the libc
functions with bogus arguments.
(This used to be commit 1b0621068998590e7b1e9528b78744dcd2cd5909)
|
|
freeing up resources. Try to avoid races by making the autofree context
be the parent of the event system
(This used to be commit 10ffa87b6b7ebfe51e81819feb93a72e9ec10418)
|
|
event_context_init() where possible
(This used to be commit 412f7a98dd809306ac9f35003fce554e1e1252e7)
|
|
(This used to be commit eb351e33e58abdacdf44cf700f028cc13f52c4c8)
|
|
Remove trailing spaces adn try to fit 80 columns where possible
(This used to be commit 5457c667647ec156bb7b4f86ce580def4e9350d5)
|
|
(This used to be commit 3b8eec7ca334528cad3cdcd5e3fc5ee555d8d0e0)
|
|
metze
(This used to be commit 91b49365abed6f67e2b3c18b0090b4e6ff1df935)
|
|
(This used to be commit 5cd3310b78a85243eb436d05db3228c3495f9162)
|
|
This makes it easier to track down which module only returned and
error code, but not the error string.
Andrew Bartlett
(This used to be commit c4d502f68fbd5d5bc2ac5bb6369950379c9176fc)
|
|
(This used to be commit 92c1c0e9137f0845cac6cc96bf78711b6aaffe21)
|
|
(This used to be commit b1a7810f3e70f9a831d9b8e85d531e448072adaf)
|
|
(This used to be commit 141ee91272fb4dafca0149f679e17721b6a3011e)
|
|
(This used to be commit 6ac86f8be7d9a8c5ab396a93e6d1e6819e11f173)
|
|
(This used to be commit e53e79eebef3ece6978f0a2b4a1ee0a0814bb5d2)
|
|
modules to provide an ops table directly rather than an initialization function.
(This used to be commit a71419a73a869c24121005ccbbcb4396f888888b)
|