summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/ldb_tdb/ldb_index.c
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r13335: Fix the build and add an utf8 safe ldb_hadler_fold functionSimo Sorce1-1/+1
based on ldb_casefold (This used to be commit 6104f900863c688707809d42c5429a42d654d5fb)
2007-10-10r13333: revert previous commit I will use ldb_caseless_cmp in attrib_handlersSimo Sorce1-1/+1
to correctly support utf8 comparisons add an ldb_attr_Casefold function for attribute names and use it instead of casefold in the right places (This used to be commit 3b4eb2413bbce059dde69f35c03cdc3cc2ba85c5)
2007-10-10r13324: From now on check attribute names obey rfc2251Simo Sorce1-1/+1
Also add a way to provide utf8 compliant functions by registering them with ldb_set_utf8_fns() Next comes code to register samba internal utf8 functions. Simo. (This used to be commit ac9b8a41ffca8e06c5e849d544d3203a665b8e0d)
2007-10-10r13258: Fix the talloc heirachy for ldb_tdb.Andrew Bartlett1-1/+2
In the return value res->msgs, msgs was not a child of res, in the indexed path. Instead, it hung directly off the ldb, which was sometimes a long-term context. Also remove unused parameters. Found by --leak-report-full Andrew Bartlett (This used to be commit 29cb5af827c459758997c80dca034d471bb92449)
2007-10-10r12829: fix ldb headers, to not include '<...>' files in .c filesStefan Metzmacher1-3/+2
this helps in getting symbol -fvisibility=hidden (GCC 4 feature) working later. metze (This used to be commit 380938e97f31c7860aed1e73cc0110c6e17b472e)
2007-10-10r12733: Merge ldap/ldb controls into main treeSimo Sorce1-0/+1
There's still lot of work to do but the patch is stable enough to be pushed into the main samba4 tree. Simo. (This used to be commit 77125feaff252cab44d26593093a9c211c846ce8)
2007-10-10r11567: Ldb API change patch.Simo Sorce1-10/+17
This patch changes the way lsb_search is called and the meaning of the returned integer. The last argument of ldb_search is changed from struct ldb_message to struct ldb_result which contains a pointer to a struct ldb_message list and a count of the number of messages. The return is not the count of messages anymore but instead it is an ldb error value. I tryed to keep the patch as tiny as possible bu as you can guess I had to change a good amount of places. I also tried to double check all my changes being sure that the calling functions would still behave as before. But this patch is big enough that I fear some bug may have been introduced anyway even if it passes the test suite. So if you are currently working on any file being touched please give it a deep look and blame me for any error. Simo. (This used to be commit 22c8c97e6fb466b41859e090e959d7f1134be780)
2007-10-10r11364: added a ldb_attr_dn() function for testing if an attribute name isAndrew Tridgell1-2/+1
"dn" or "distinguishedName". This makes us a bit more consistent (This used to be commit b41b374b55f9a056c47ffa2ff88aa5272dbc42fc)
2007-10-10r11353: a bit of an improvement to the ldb_tdb error handlingAndrew Tridgell1-2/+0
(This used to be commit 896704f5c139c8bce30dfc898bb3a12be10035ed)
2007-10-10r11111: fixed a talloc error in the dn shortcut codeAndrew Tridgell1-5/+18
(This used to be commit e28a334eeb8fa22f686d0c1dc48b2977d85b9e10)
2007-10-10r10913: This patch isn't as big as it looks ...Andrew Tridgell1-13/+15
most of the changes are fixes to make all the ldb code compile without warnings on gcc4. Unfortunately That required a lot of casts :-( I have also added the start of an 'operational' module, which will replace the timestamp module, plus add support for some other operational attributes In ldb_msg_*() I added some new utility functions to make the operational module sane, and remove the 'ldb' argument from the ldb_msg_add_*() functions. That argument was only needed back in the early days of ldb when we didn't use the hierarchical talloc and thus needed a place to get the allocation function from. Now its just a pain to pass around everywhere. Also added a ldb_debug_set() function that calls ldb_debug() plus sets the result using ldb_set_errstring(). That saves on some awkward coding in a few places. (This used to be commit f6818daecca95760c12f79fd307770cbe3346f57)
2007-10-10r10889: make searches for dn's less of a special case, and much faster whenAndrew Tridgell1-0/+7
part of more complex expressions (This used to be commit 40d304140b4cf22559d6b55c8cbaf1b984baf62f)
2007-10-10r10753: don't require every ldb module to implement both a search_bytree() andAndrew Tridgell1-2/+14
a search() function, instead each module now only implements the bytree method, and the expression based search is handled generically by the modules code. This makes for more consistency and less code duplication. fixed the tdb backend to handle BASE searches much more efficiently. They now always only lookup one record, regardless of the search expression (This used to be commit 7e44f9153c5578624e2fca04cdc0a00af0fd9eb4)
2007-10-10r9391: Convert all the code to use struct ldb_dn to ohandle ldap like ↵Simo Sorce1-43/+90
distinguished names Provide more functions to handle DNs in this form (This used to be commit 692e35b7797e39533dd2a1c4b63d9da30f1eb5ba)
2007-10-10r8668: fixed a segv during upgrade of a very old ldb.Andrew Tridgell1-0/+5
Thanks to volker for finding this one too. Keep them coming! (This used to be commit 756796ad2ea86a9471d1b09e66b1a74c4523f6f4)
2007-10-10r8585: add to ldb and ldap comparison functionalitySimo Sorce1-22/+25
better pares filters Approx is currently only a stub need to dig more info to understand what it really means and how it works exactly (This used to be commit a9e8cd0bad27ed2b3c6a12302e787ba3c9a70a3c)
2007-10-10r8520: fixed a pile of warnings from the build farm gcc -Wall output onAndrew Tridgell1-1/+1
S390. This is an attempt to avoid the panic we're seeing in the automatic builds. The main fixes are: - assumptions that sizeof(size_t) == sizeof(int), mostly in printf formats - use of NULL format statements to perform dn searches. - assumption that sizeof() returns an int (This used to be commit a58ea6b3854973b694d2b1e22323ed7eb00e3a3f)
2007-10-10r8373: New wildcard matching code.Simo Sorce1-8/+3
This code applies correct ldap standard wildcard matching code removes WILDCARD matching from tdb @ATTRIBUTES, that's now handled independently adds some more tests for wildcard matching fixes dn comparison code in ldb_match (This used to be commit 4eb5863042011988d85092d7dde3d809aa15bd59)
2007-10-10r8082: large rewite of ldb_dn.cSimo Sorce1-1/+1
- we do not support multpiple attribute components anymore, makes code a lot easier they will be readded later if we found out they are really used, so far my tests show w2k3 do not handle them as well - fix escaping issues, move component value to be in an ldb_val structure still need to handle binary values case - make cononicalize functions leak less memory by giving a specific memory context - fix tests scripts so that test-ldap can start - make test not delete databases on completion so that I can inspect them (This used to be commit 624a73148d125690ce18515f19231d26df207738)
2007-10-10r8038: - fixed indexing on binary values that need base64 encoding and ↵Andrew Tridgell1-2/+1
canonicalisation - added support for recognising the S- form of objectsid in search expressions. I thought this could be done with just a comparison modified comparison function, but it turns out it also needs a canonicalisation function so that indexing can work (This used to be commit 7d2bee2c5619f284375ecbed14371c5e8639ed1c)
2007-10-10r8037: a fairly major update to the internals of ldb. Changes are:Andrew Tridgell1-34/+78
- moved the knowledge of attribute types out of ldb_tdb and into the generic ldb code. This allows the ldb_match() message match logic to be generic, so it can be used by other backend - added the generic ability to load attribute handlers, for canonicalisation, compare, ldif read and ldif write. In the future this will be used by the schema module to allow us to correctly obey the attributetype schema elements - added attribute handlers for some of the core ldap attribute types, Integer, DirectoryString, DN, ObjectClass etc - added automatic registration of attribute handlers for well-known attribute names 'cn', 'dc', 'dn', 'ou' and 'objectClass' - converted the objectSid special handlers for Samba to the new system - added more correct handling of indexing in tdb backend based on the attribute canonicalisation function - added generic support for subclasses, moving it out of the tdb backend. This will be used in future by the schema module - fixed several bugs in the dn_explode code. It still needs more work, but doesn't corrupt ldb dbs any more. (This used to be commit 944c5844ab441b96d8e5d7b2d151982139d1fab9)
2007-10-10r7558: added support in ldb for extended ldap search requests. These areAndrew Tridgell1-0/+5
using to perform such things as bitop tests on integers. So far I have only added support for the 1.2.840.113556.1.4.803 and 1.2.840.113556.1.4.804 rules, which are for bitwise and/or (This used to be commit 5f773b065f1db959e59c02de68bcf30cef1a6c2c)
2007-10-10r7527: - added a ldb_search_bytree() interface, which takes a ldb_parse_treeAndrew Tridgell1-1/+0
instead of a search expression. This allows our ldap server to pass its ASN.1 parsed search expressions straight to ldb, instead of going via strings. - updated all the ldb modules code to handle the new interface - got rid of the separate ldb_parse.h now that the ldb_parse structures are exposed externally - moved to C99 structure initialisation in ldb - switched ldap server to using ldb_search_bytree() (This used to be commit 96620ab2ee5d440bbbc51c1bc0cad9977770f897)
2007-10-10r5374: - changed the dn key code in the ldb tdb backend to correctly honorAndrew Tridgell1-0/+10
the case sensitive/insensitive flags on sections of a dn. So if a dn is made up of 4 attributes, and 2 of those are case insensitive and 2 are case sensitive, then all the attribute names are uppercases, but only the values of the case insensitive attributes are uppercased when forming the tdb key. - added code to canonicalise the dn, removing leading and trailing spaces from attribute names and values - when the @ATTRIBUTES record changes, fix the dn keys of any records that should now have new dn keys due to changes in the case sensitivity of the record I really did this to allow me to make the WINS database properly case insensitive, but it is also the correct general fix for ldb, as it matches the LDAP specification (and w2k LDAP server behaviour) (This used to be commit 0f034dc5636d182a1d9207ad662b3fc8df7ca3e4)
2007-10-10r5189: fixed a double free bug in the ltdb indexing codeAndrew Tridgell1-7/+0
(This used to be commit 7be0bc93bd6757e52fd10bd3d3b3d1a8f5221452)
2007-10-10r4714: move the ldb code to the new talloc interface (eg remove _p suffix)Simo Sorce1-16/+16
this helps standalone building of ldb renew the schema module split code into functions to improve readability and code reuse add and modify works correctly but we need a proper testsuite Simo (This used to be commit a681ae365ff1b5a2771b42ebd90336651ce1e513)
2007-10-10r4477: expanded the test suite to increase code coverage a lotAndrew Tridgell1-0/+51
(This used to be commit 4edbd1b18ee38e584cf844b64c7fcb2645921837)
2007-10-10r4474: - converted ldb to use talloc internallyAndrew Tridgell1-145/+182
- added gcov flags to Makefile.ldb - expanded ldb test suite to get more coverage (This used to be commit 0ab98f50a7e0fe15347a99e5c29a6590a87729a0)
2007-10-10r4424: fixed a simple bug in the '|' handling in indexed ldb searches. I'mAndrew Tridgell1-0/+1
amazed we got along for so long with this bug! (This used to be commit 937159cf2c6ae08808bd10946fcdbd8741e1a560)
2007-10-10r4397: Fix a bug where ↵Volker Lendecke1-0/+1
'(&(objectclass=domain)(!(objectclass=builtindomain)))' fell back to a full search. Volker (This used to be commit 55c9fbd4f4afdde30a0d92bfd31f5c9ebb98c59b)
2007-10-10r4282: removed a spurious error message now we remove index entries in the ↵Andrew Tridgell1-1/+0
modify call (This used to be commit 58fcc326241e73cc8a122e6130b5ff0d6a3b9232)
2007-10-10r4281: fixed an ldb indexing bug in ldb found by volker.Andrew Tridgell1-3/+3
index entries were not always being removed on modify (This used to be commit 9c668e7b43dc2d82d3d639b64c53e887723ccba7)
2007-10-10r4022: fix compiler warningsStefan Metzmacher1-2/+3
metze (This used to be commit 79d0eb2f677f9e985ba476a9680f68537d41be6f)
2007-10-10r3783: - don't use make proto for ldb anymoreStefan Metzmacher1-3/+5
- split ldh.h out of samba's includes.h - make ldb_context and ldb_module private to the subsystem - use ltdb_ prefix for all ldb_tdb functions metze (This used to be commit f5ee40d6ce8224e280070975efc9911558fe675c)
2007-10-10r3782: use ldb_ namespaceStefan Metzmacher1-2/+2
metze (This used to be commit 9003698e0fba28551d41d41dec159cc9c42ce7d2)
2007-10-10r3754: merge in ldb modules support from the tmp branch ldbPluginsSimo Sorce1-57/+64
(This used to be commit 71323f424b4561af1fdddd2358629049be3dad8c)
2007-10-10r2713: better handling of binary values in index key creationAndrew Tridgell1-1/+1
(This used to be commit b0c92616fb69d8139f66dc8144cfcc88ea6825dc)
2007-10-10r2667: Remove forward declaration of static function from function. GCC 3.5 ↵Jelmer Vernooij1-2/+3
and 4.0 don't accept declarations of static functions inside other functions, see http://gcc.gnu.org/ml/gcc-patches/2004-08/msg02514.html (This used to be commit 8768168aadf51b9559831954e349d9aa94101c41)
2007-10-10r1374: Fix signed/unsigned warnings (actually found by g++) after unsigned intTim Potter1-16/+22
changes in r1018. (This used to be commit 45b4016530fc0bfa13146f73a503866b5dbed517)
2007-10-10r792: - changed the ldb ldif_* functions to be in the ldb_ namespaceAndrew Tridgell1-0/+1
- added better error reporting in ldbdel - fixed a bug in handling packing of records which contain elements with no values (it caused db corruption) - allow search with "dn" as target attribute (This used to be commit 36575396234e3d35dbd442c8f1ff54a17ae64e64)
2007-10-10r583: fixed two bugs in the handling of index entry deletionAndrew Tridgell1-8/+11
(This used to be commit 7b5f3370e6c078bf506ac3eb24fb330d4aee7688)
2007-10-10r574: - another attempt at const cleanliness in ldbAndrew Tridgell1-2/+2
- fixed a problem with searching for values containing an '=' sign - fixed the semantics of attempting an attribute deletion on an attribute that doesn't exist. - added some more ldb_msg_*() utilities (This used to be commit 62b4ec367d170330d837b0f1fe5cd13205a53b59)
2007-10-10r504: fixed a bad call to list_union()Andrew Tridgell1-2/+3
(This used to be commit 4404056cd5fd65d72a38ea474fe330281b3ee19e)
2007-10-10r502: modified ldb to allow the use of an external pool memoryAndrew Tridgell1-55/+66
allocator. The way to use this is to call ldb_set_alloc() with a function pointer to whatever memory allocator you like. It includes a context pointer to allow for pool based allocators. (This used to be commit 3955c482e6c2c9e975a4bb809ec8cb6068e48e34)
2007-10-10r490: - expanded the test suite to test modify and delete operationsAndrew Tridgell1-5/+17
- made yet another attempt to make ldb const clean. - "make test" now runs both the tdb and ldap backend tests, and run the ldbtest utility with and without indexing - added prototypes in ldb.h for ldb_msg_*() public functions (This used to be commit 01e87406768cb5a98ac8530a2f361a4987a36cd3)
2007-10-10r456: - added -i option to ldbsearchAndrew Tridgell1-4/+9
- fixed sorting bug in ldb index handing (This used to be commit cdd48e2b9b3ca6be5503eec401e09db162408ac8)
2007-10-10r442: fixed some uninitialised variables pointed out by gcc -O3Andrew Tridgell1-1/+1
(This used to be commit ff31cfb941b77e99e648011a6b7639b2a5923a6a)
2007-10-10r437: fixed handling of a corner case with multi-valued indexingAndrew Tridgell1-0/+8
(This used to be commit b38612185657512419c4b3dc806cf1183e0db0cb)
2007-10-10r436: fixed indexing of objectclass with subclassesAndrew Tridgell1-1/+64
(This used to be commit 4d92e6f79f52ec0d580dfda2a91b4afc95838ff4)
2007-10-10r435: a major upgrade for ldbAndrew Tridgell1-38/+37
- added the ability to mark record attributes as being CASE_INSENSITIVE, WILDCARD or INTEGER. - added the ability to support objectclass subclasses, and to search by a parent class - added internal support for case insensitive versus case sensitive indexing (not UTF8 compliant yet) - cleaned up a number of const warnings - added a number of helper functions for fetching integers, strings and doubles - added a in-memory cache for important database properties, supported by a database sequence number - changed some variable names to avoid conflicts with C++ (This used to be commit f2bf06f25c2e6c744817711c7bedbd1d3b52f994)