1
0
mirror of https://github.com/samba-team/samba.git synced 2025-06-23 11:17:06 +03:00

349 Commits

Author SHA1 Message Date
Andrew Tridgell
c74601e0b3 s4-ldb: added an override flag to ldb_register_backend()
this will be used to allow a system ldb build with an ldb backend to
have its ldap handler overridden by the s4 one
2010-11-01 18:55:19 +11:00
Andrew Tridgell
be8e91d9ca s4-ldb: convert the rest of the ldb modules to the new style 2010-11-01 18:55:19 +11:00
Matthias Dieter Wallnöfer
0b8b9aed34 ldb:ldb_tdb/ldb_cache.c - remove a superflous "talloc_free"
Didn't realise that this is already called by "ltdb_attributes_unload".
2010-10-21 09:09:04 +02:00
Matthias Dieter Wallnöfer
de9b737233 ldb:ldb_tdb/ldb_cache.c - in this function we don't use LDB return codes 2010-10-21 08:59:59 +02:00
Matthias Dieter Wallnöfer
0941099a28 ldb:ldb_index.c - fix some memory leaks
Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Wed Oct 20 13:11:49 UTC 2010 on sn-devel-104
2010-10-20 13:11:49 +00:00
Matthias Dieter Wallnöfer
3bf8ca6790 ldb:ldb_index.c - let "ldb_module_oom" generate the return code 2010-10-20 12:31:05 +00:00
Matthias Dieter Wallnöfer
ec43a4d29e ldb:ldb_cache.c - fix memory contexts and memory leaks 2010-10-20 12:31:05 +00:00
Matthias Dieter Wallnöfer
06053a09cb ldb:ldb_tdb submodule - use "ldb_msg_new" where appropriate
It is saver than a manual "talloc".
2010-10-20 12:31:05 +00:00
Matthias Dieter Wallnöfer
1427895531 ldb:ldb_pack.c - remove superflous "message->elements = NULL"
It's already marked at this at the beginning of the call.
2010-10-20 12:31:05 +00:00
Matthias Dieter Wallnöfer
dcbfcbbceb ldb: always return PROTOCOL_ERROR if an operation is unsupported
That's exactly the behaviour of various LDAP servers.
2010-10-18 19:51:19 +00:00
Matthias Dieter Wallnöfer
48cd89e25d ldb:ldb_tdb.c - fix up counter variables
"find_element" returns an "int" since there is also the possibility that a
certain element doesn't exist - then "-1" is returned. But beside this
exception treat all other return values as unsigned.
2010-10-18 20:14:56 +02:00
Matthias Dieter Wallnöfer
94a445869c ldb:ldb_tdb.c - improve the error outputs
- Fix indentation
- Include always the failing DN
- Reorder the outputs to make them consistent
2010-10-18 20:10:14 +02:00
Andrew Tridgell
269143fa00 s4-ldb: take advantage of ldb_match_msg_error() in more places
this gives better error checking
2010-10-13 11:00:04 +00:00
Andrew Tridgell
3d75111fd6 s4-ldb: added an optional operator_fn in the schema syntax
this function takes the operator being invoked, which will allow
schema functions to provide more fine grained control over
comparisons.

The key bug this was introduced to fix is the incorrect handling of
the LDB_OP_PRESENT test for deleted linked attributes. The backends
are unaware of the deleted state of these links, so they cannot do a
LDB_OP_PRESENT test on their own.

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2010-10-13 11:00:04 +00:00
Andrew Tridgell
491e89fa1c ldb-tdb: ignore failure to register control on rootdse
this is expected for non-sam LDBs
2010-09-28 11:36:40 -07:00
Andrew Tridgell
56f04188df s4-ldb: ensure element flags are zero in ldb search return
the distinguishedName element was getting an uninitialised flags value
2010-08-17 21:21:51 +10:00
Andrew Tridgell
fd59a7c4af s4-ldb: fixed the ldb 'displayName=a,b' indexing bug
the problem was the inconsistency between the key form of DNs between
the itdb used for indexing and the on disk form

Thanks to Matthieu Patou for finding this bug!

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-08-17 08:44:28 +10:00
Andrew Tridgell
1cc471d69f s4-ldb: add some comments explaining the ltdb_index_idxptr() function
this function copes with alignment sensitive CPUs

Signed-off-by: Andrew Bartlett <abartlet@samba.org>
2010-08-17 08:44:28 +10:00
Matthias Dieter Wallnöfer
1949864417 s4:objectclass_attrs LDB module - move the single-valued attribute check into this module
It seems to me more consistent (and also to keep the same behaviour on all
backends).

Also the DRS hack should therefore not be needed anymore since the
"repl_meta_data" module launches requests behind "objectclass_attrs".
2010-06-07 20:54:10 +02:00
Matthias Dieter Wallnöfer
a75d271373 s4:rdn_name LDB module - move the "distinguishedName" write prevent check here
In my eyes it fits better here than in the TDB backend code.
2010-06-07 20:31:22 +02:00
Matthias Dieter Wallnöfer
fa2a86ec61 ldb:ltdb_filter_attrs - fix a counter variable type 2010-06-06 20:46:52 +02:00
Matthias Dieter Wallnöfer
327fa70f3f ldb:ldb_tdb/ldb_tdb.c - quiet a warning regarding TDB -> LDB error code conversions 2010-05-30 23:13:09 +02:00
Andrew Tridgell
7d90b59602 ldb: mark the tdb backend in ldb as _PRIVATE_ 2010-04-18 15:00:38 +10:00
Matthias Dieter Wallnöfer
30ff229a3e s4:LDB TDB index code - reintroduce accidentally removed code part
This was removed by 95d726f3018ef5d249f89d56bde24b7ee0c24ecf. Sorry.
2010-03-08 11:45:39 +01:00
Matthias Dieter Wallnöfer
2d03011858 LDB:TDB backend - change counter variables to "unsigned" where appropriate 2010-03-08 10:32:56 +01:00
Brad Hards
1683d090cc LDB related spelling fixes.
Signed-off-by: Matthias Dieter Wallnöfer <mwallnoefer@yahoo.de>
2010-02-22 21:45:36 +01:00
Andrew Tridgell
282cc79454 s4-ldb: use TYPESAFE_QSORT() in the rest of the ldb code 2010-02-14 18:44:20 +11:00
Andrew Tridgell
a5d2fb752c s4-ldb: update ldb_tdb to use new DLIST_ macros
(cherry picked from commit 6ede911654566a7e21ded70dacac68df3b6a1bca)
2010-02-10 15:36:20 -08:00
Simo Sorce
08a20006c8 s4:ldb quiet down rootdse control registration 2010-01-31 13:25:17 -05:00
Simo Sorce
772d808ac8 s4:ldb Fix check made conditional by mistake 2010-01-30 02:57:33 -05:00
Simo Sorce
df7be036d7 s4:ldb add support for permissive modify control 2010-01-30 01:04:12 -05:00
Andrew Tridgell
a56ede9027 s4-ldb: cope with bad ptr alignment in ldb_index.c
We can't assume that a rec_ptr will come back from a tdb traverse with
alignment sufficient for a pointer.
2010-01-16 09:34:27 +11:00
Andrew Tridgell
fdf12a607d s4-ldb: improve error handling in indexing code
When we get an indexing failure we want a clear error message
2010-01-08 13:03:03 +11:00
Andrew Tridgell
b34db0840d s4-ldb: use the RELAX control to disable single value checking on replace
When using w2k3 linked attributes we are allowed to have multiple
values on a single valued attribute. This happens when the other
values are deleted.

Setting the RELAX control tell the ldb-tdb backend to not check for
this on replace, which means the caller has to check for single valued
violations.
2010-01-02 08:16:51 +11:00
Andrew Tridgell
9955756314 s4-ldb: show the OID of any unhandled critical controls
It isn't very useful just saying that a control is not supported,
without saying which one is the problem

Pair-Programmed-With: Andrew Bartlett <abartlet@samba.org>
2009-12-16 20:56:23 +11:00
Andrew Tridgell
4bb2958f16 s4-ldb: fixed nested searches inside ldb modules
We need to keep a search count in ltdb to allow for nesting
of searches inside a module

Signed-off-by: Andrew Tridgell <tridge@samba.org>
2009-12-09 18:18:25 +11:00
Andrew Tridgell
e5a478d3a2 s4-ldb: added a missing ltdb_unlock_read() 2009-12-09 18:18:25 +11:00
Matthias Dieter Wallnöfer
a2707a3248 ldb:ldb_tdb backend/indexes - Outside API
- The outside API contains "DN" string arguments: Bad. Since in this way we
  fully rely on the outside calls regarding the right DN format. Solution: Use
  always a "struct ldb_dn" entry. Since this one is interchangeable and we can
  handle it in our preferred way.
2009-11-20 12:30:44 +11:00
Matthias Dieter Wallnöfer
afb70f9176 ldb:ldb_tdb backend/indexes - DN comparison
- DN comparison: The function doesn't seem that efficient. I "upgraded" it a bit
  to be more powerful (added a second length check and do both before the string
  comparison)
2009-11-20 12:26:37 +11:00
Andrew Tridgell
3b96d08b29 s4-ldb: fixed an issue in rename/modify indexing
When we rename or modify a record, we need to update the indexes at
the same time. It is important that we use the DN of the actual
message that is stored in the database to do this, not the DN that was
passed in by the user. If the two differ in case then the index
records needs to use the 'real' record DN, as index handling is
currently case sensitive.
2009-11-20 11:34:39 +11:00
Matthias Dieter Wallnöfer
90862a55fd ldb:tdb backend - be also here more careful with the result value
"msg_delete_attribute" doesn't return an LDB result constant.
2009-10-27 19:42:12 +01:00
Andrew Bartlett
8ae0abc65f s4:ldb Add detail to failures in the indexing code 2009-10-27 11:32:21 +11:00
Andrew Tridgell
98a3725252 Merge branch 'master' of ssh://git.samba.org/data/git/samba 2009-10-25 23:14:56 +11:00
Andrew Tridgell
12c9af7817 s4-ldb: allow for unescaped '=' in a index DN
The ldb_dn_explode code normally enforces all special characters,
including a '=', must be escaped. Unfortunately this conflicts with
the ltdb index DNs, which for binary attributes may be base64
encoded. This allows a unescaped '=' as a special case for index DNs.
2009-10-25 22:02:31 +11:00
Matthias Dieter Wallnöfer
1ea460b0b0 ldb:backend "connect" functions - convert result values to LDB constants
I think this is better since "ldb_backend_connect" and "ldb_connect" which
propagate those values should return only LDB constants. Therefore a conversion
(especially for "-1") would be needed.
2009-10-25 11:24:54 +01:00
Andrew Tridgell
b55a5adab9 s4-ldb: ensure DNs pass validity tests in indexing 2009-10-25 13:15:18 +11:00
Andrew Tridgell
2eca02a408 s4-ldb: fixed string length handling on index records 2009-10-25 13:15:18 +11:00
Andrew Tridgell
dffb572ce0 s4-ldb: don't allow modifies outside a transaction. 2009-10-25 13:15:18 +11:00
Andrew Tridgell
5002cddcb0 s4-ldb: fixed re-index during a complex transaction
We may have modified index objects in the in-memory index tdb
2009-10-25 13:15:18 +11:00
Andrew Tridgell
a109ee71fb s4-ldb: added a TODO about checking the indexlist 2009-10-22 12:47:55 +11:00