summaryrefslogtreecommitdiff
path: root/source4/lib/ldb
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r7860: switch our ldb storage format to use a NDR encoded objectSid. This isAndrew Tridgell2-8/+2
quite a large change as we had lots of code that assumed that objectSid was a string in S- format. metze and simo tried to convince me to use NDR format months ago, but I didn't listen, so its fair that I have the pain of fixing all the code now :-) This builds on the ldb_register_samba_handlers() and ldif handlers code I did earlier this week. There are still three parts of this conversion I have not finished: - the ltdb index records need to use the string form of the objectSid (to keep the DNs sane). Until that it done I have disabled indexing on objectSid, which is a big performance hit, but allows us to pass all our tests while I rejig the indexing system to use a externally supplied conversion function - I haven't yet put in place the code that allows client to use the "S-xxx-yyy" form for objectSid in ldap search expressions. w2k3 supports this, presumably by looking for the "S-" prefix to determine what type of objectSid form is being used by the client. I have been working on ways to handle this, but am not happy with them yet so they aren't part of this patch - I need to change pidl to generate push functions that take a "const void *" instead of a "void*" for the data pointer. That will fix the couple of new warnings this code generates. Luckily it many places the conversion to NDR formatted records actually simplified the code, as it means we no longer need as many calls to dom_sid_parse_talloc(). In some places it got more complex, but not many. (This used to be commit d40bc2fa8ddd43560315688eebdbe98bdd02756c)
2007-10-10r7851: We are case preserving let the DN be returned the same the user put ↵Simo Sorce2-78/+83
it into. sss (This used to be commit 5b41e3202456549250e6e5b1c63bd45ea7500fa3)
2007-10-10r7844: eliminate superfluous attribute tablesDerrell Lipman1-382/+91
(This used to be commit 863beef35b769c5a531819c974754aea2a790921)
2007-10-10r7834: added comment about the "((" search testAndrew Tridgell1-0/+4
(This used to be commit 42c42f6611fa295ca60782661781d023c4fdaf8b)
2007-10-10r7833: changed ldbsearch and ldbedit to have command line syntax closer toAndrew Tridgell3-19/+19
ldapsearch. They look for an '=' in the first argument to see if it is a search expression, and if not then it does an 'all records' search (This used to be commit 91cc009fedefa7b263b345dfa511800e0f4f66a8)
2007-10-10r7832: missed oneAndrew Tridgell1-1/+1
(This used to be commit 20c84f5c5219c6f306888771b56e0dfdeb8fd774)
2007-10-10r7831: use cn=TEST as base of test DNs so we don't interfere with ↵Andrew Tridgell6-66/+66
potentially real records (This used to be commit 2a426f654db668f4bfc899771dd11598e295b774)
2007-10-10r7828: Although there is still plenty to do, ldb_sqlite3 now passes the set ↵Derrell Lipman8-364/+1156
of tests in tests/test-sqlite3.sh (tests/test-generic.sh). There are lots of optimizations still TBD, and some things are REALLY slow right now (e.g. each add() operation takes 1/3 - 1/2 second) but it's ready for interested parties to poke it and prod it and see how (un)reasonable it is. Play away. Still to be implemented or improved: - tdb specials (@MODULES, @SUBCLASSES, etc.) - all DNs are case-folded in their entirty right now (since doing otherwise would require @ATTRIBUTES to be implemented) - speed improvements and optimizations. I am quite confident that the excessively slow add() operation can be much improved, and other areas can be somewhat improved. (This used to be commit 1dd865005594671e7effe06fb088fa97fa08de0b)
2007-10-10r7808: fixed the build of ldb after the binary file support in ldif was addedAndrew Tridgell1-1/+3
(This used to be commit 0a8c722c8017e20635223b2c5dfc58759478312c)
2007-10-10r7806: add test for binary files as attribute valuesSimo Sorce3-0/+8
(This used to be commit 2b2675055e5113eccb0b876799b226d480335495)
2007-10-10r7805: add support to read binary files into attributes data like ldap tools ↵Simo Sorce1-3/+73
does (This used to be commit 38a14396262eeb279d67c2f0da06bfa0706a3be4)
2007-10-10r7804: added the samba specific ldif handlers into the tree, but don't enableAndrew Tridgell6-5/+146
them just yet. I have tested them, and they work fine, but enabling them will break code in rpc_server/ and samdb, so we need to fix that first (This used to be commit 07d459406b4c63e49141e0e533e1274b4052abf9)
2007-10-10r7803: added support in ldb for callers to setup ldif read/write functions,Andrew Tridgell3-10/+86
so that ldbedit, ldbsearch etc can display nice human readable ldif, while storing the data as binary blobs. This will be used for storing NDR encoded objectSid and similar attributes, while making the command line interface sane (This used to be commit 37e283089a846fc0608fef3981a3447300e33728)
2007-10-10r7784: give an error in ldb_tdb for invalid modify flags. The "whenChanged"Andrew Tridgell1-0/+3
bug was being silently ignored with the tdb backend because of this bug. A case where the ldap backend was right, and the tdb backend was wrong! (This used to be commit ddb26db763c314049043d80d27113226c0f2e656)
2007-10-10r7776: add a method for getting arbitrary opaque data into a ldb context, ↵Andrew Tridgell4-2/+45
for use by backends. Currently only EventContext is used in this way. (This used to be commit 9fa21b245843371f7777682ee4e5b98e2925b4d0)
2007-10-10r7767: fixed ldb dependenciesAndrew Tridgell1-1/+1
(This used to be commit 97e4ba84fb4cf4b95270c5d49b6bb8a9a92feaac)
2007-10-10r7759: allow ldb_errstring() to be used when not connectedAndrew Tridgell1-0/+3
(This used to be commit 818ae965afad37216d804aa630359d875794612e)
2007-10-10r7749: some bug fixes from testing with socket:testnonblockAndrew Tridgell1-0/+2
- fixed some infinite loops in asn1.c - ensure asn1 callers know if an error is end of buffer or bad data - handle npending 0 in ldap server (This used to be commit f22c3b84c8912ccd36e676a782b58f1841be8875)
2007-10-10r7743: be consistent in how stdin is supported for ldbadd and ldbmodifyAndrew Tridgell1-18/+10
(This used to be commit 3d60b3a8eea5ac6c35cf2e579ae12cef3dc1794e)
2007-10-10r7741: fixed the verbose option in ldbeditAndrew Tridgell1-12/+11
(This used to be commit a440133140a6adb5ea62d37690b9c4ae74dc6be0)
2007-10-10r7740: get rid of our duplicate base64 routinesAndrew Tridgell3-5/+6
(This used to be commit cf17f90a83cf04815544c5408eb56d00546b3e88)
2007-10-10r7739: fixed an off by one bug in the base64 decoder for ldb ldifAndrew Tridgell1-0/+3
(This used to be commit fe2b77af2352f1964402a4286105916e990dc36f)
2007-10-10r7728: handle 64 bit integers in INTEGER matchAndrew Tridgell1-3/+3
(This used to be commit 57132344b4e39a670e683b3db00665e5f7a899fd)
2007-10-10r7726: - removed some unused variablesAndrew Tridgell3-3/+9
- handle ldb_errstring() calls on failed connect (This used to be commit 8698a20fcc6a04ccbe533afd742e7a5df94423ee)
2007-10-10r7719: make the ildap ldb backend use the defaultNamingContext if the basednAndrew Tridgell1-2/+28
is not specified, so: ldbsearch ldap://hostname '(objectclass=user)' works without knowing the domain name (This used to be commit f6c2c5190737ca11f55a147f5295ccca505fb58b)
2007-10-10r7714: enable samba credentials handling in ldb tools. So you can now do aAndrew Tridgell10-58/+38
encrypted ldbedit against w2k3 (This used to be commit 6277c3923e7d9c26753424b1e77ac62f8e0729a4)
2007-10-10r7712: ldb/common/util.c is goneAndrew Tridgell1-1/+0
(This used to be commit aec0544962483b3cd8507b2de6d1552691e72932)
2007-10-10r7710: new command line handling code for ldbAndrew Tridgell3-0/+189
(This used to be commit 5e8db1c9b3bb6c5196652a7af877b4204148c305)
2007-10-10r7709: - convert ldb to use popt, so that it can interact with the sambaAndrew Tridgell23-689/+343
cmdline credentials code (which will be done soon) - added a ldb_init() call, and changed ldb_connect() to take a ldb context. This allows for much better error handling in ldb_connect(), and also made the popt conversion easier - fixed up all the existing backends with the new syntax - improved error handling in *_connect() - fixed a crash bug in the new case_fold_required() code - ensured that ltdb_rename() and all ltdb_search() paths get the read lock - added a ldb_oom() macro to make it easier to report out of memory situations in ldb code (This used to be commit f648fdf187669d6d87d01dd4e786b03cd420f220)
2007-10-10r7669: removed ldap from our configure testsAndrew Tridgell2-17/+0
This takes our link dependencies from this: tridge@blu:~/samba/samba4/source$ ldd bin/ldbsearch libdl.so.2 => /lib/tls/libdl.so.2 (0xb7fc9000) libldap_r.so.2 => /usr/lib/libldap_r.so.2 (0xb7f92000) liblber.so.2 => /usr/local/lib/liblber.so.2 (0xb7f85000) libpam.so.0 => /lib/libpam.so.0 (0xb7f7d000) libc.so.6 => /lib/tls/libc.so.6 (0xb7e48000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000) libresolv.so.2 => /lib/tls/libresolv.so.2 (0xb7e36000) libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0xb7e09000) libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb7df3000) libgnutls.so.11 => /usr/lib/libgnutls.so.11 (0xb7d8c000) libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7d7d000) libtasn1.so.2 => /usr/lib/libtasn1.so.2 (0xb7d6d000) libgcrypt.so.11 => /usr/lib/libgcrypt.so.11 (0xb7d20000) libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0xb7d1c000) libz.so.1 => /usr/lib/libz.so.1 (0xb7d09000) libnsl.so.1 => /lib/tls/libnsl.so.1 (0xb7cf5000) to this: tridge@blu:~/samba/samba4/source$ ldd bin/ldbsearch libdl.so.2 => /lib/tls/libdl.so.2 (0xb7fc9000) libpam.so.0 => /lib/libpam.so.0 (0xb7fc0000) libc.so.6 => /lib/tls/libc.so.6 (0xb7e8b000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000) this finally gets rid of the implicit dependency on pthreads! Yay! (This used to be commit 844d2a20830a4666b6c38f6a58305be64b6b76fa)
2007-10-10r7667: added a ldb ildap backend, using our internal ldap client library. ↵Andrew Tridgell4-1/+421
Next step is to remove the check for the ldap libraries in configure (This used to be commit 74841dbb2a86bb1c584b5c26c4cd24a818a65a34)
2007-10-10r7666: fixed a memory leak in the ldap ldb backendAndrew Tridgell1-3/+2
(This used to be commit ac3f33c61555a2afa30fe446676013564982e257)
2007-10-10r7635: change the license of this file to lgpl like the rest of ldbSimo Sorce1-14/+30
(This used to be commit 8735188b46d4bb6c3d63d22a8c6f3fad2c82df89)
2007-10-10r7615: fix the build and simplify gendb_search_dnSimo Sorce1-1/+1
(This used to be commit b38bb63175ae0bdcf833c017e5fbbfc2c0769506)
2007-10-10r7608: bug fix after yesterday's changeSimo Sorce1-1/+1
(This used to be commit 0218fc678e375a05fbc4da5500706199340918e2)
2007-10-10r7602: fix some compiler warningsDerrell Lipman3-3/+3
(This used to be commit ce9966e091d36f66d409ac6f7b5e462c9dc37325)
2007-10-10r7601: ldb_sqlite3 work in progressDerrell Lipman5-47/+231
(This used to be commit 0a64948152a446b5e127578d49b1ed8a90a1a222)
2007-10-10r7596: next step in ldap cleanup. I'm aiming to get rid of the cut&pastedAndrew Tridgell1-3/+5
ldif parsing code in libcli/ldap/ldap_ldif.c, and instead use the ldb ldif code. To do that I have changed the ldap code to use 'struct ldb_message_element' instead of 'struct ldap_attribute'. They are essentially the same structure anyway, so by making them really the same it will be much easier to use the ldb code in libcli/ldap/ I have also made 'struct ldb_val' the same as a DATA_BLOB, which will simplify data handling in quite a few places (I haven't yet removed all the code that maps between these two, that will come later) (This used to be commit 87fc3073392236221a3a6b933284e9e477c24ae5)
2007-10-10r7586: ldb_sqlite3 making progress. add and search have indicated a ↵Derrell Lipman3-379/+306
willingness to operate properly on initial testing (This used to be commit 86ca8639e0ddc2525f8ed0ca9879d9f98c0cd00e)
2007-10-10r7582: Better way to have a fast path searching for a specific DN.Simo Sorce5-13/+20
Old way was ugly and had a bug, you couldn't add an attribute named dn or distinguishedName and search for it, tdb would change that search in a dn search. This makes it also possible to search by dn against an ldap server as the old method was not supported by ldap syntaxes. sss (This used to be commit a614466dec2484a0d39bdfae53da822cfcf80926)
2007-10-10r7572: fixed filter in test suiteAndrew Tridgell1-1/+1
(This used to be commit 73d2e5df0ccf4ab1b78a1044058efd8e2479aa1a)
2007-10-10r7571: fixed the generation of the filter string for extended filtersAndrew Tridgell1-1/+1
(This used to be commit 348a86e64392245571204ac5004e73221ac441f5)
2007-10-10r7564: added a test showing the search expression that w2k is actually givingAndrew Tridgell1-0/+19
us that triggered this work (This used to be commit 853b8cd72dbb8c50d527e66aa7b5692060b66d2b)
2007-10-10r7562: work in progressDerrell Lipman1-323/+699
(This used to be commit d8a9ce78533639f510b60b48c8f305bd07f3f717)
2007-10-10r7561: moved OID constants into ldb.h and used manifest constants in ldb_match.cDerrell Lipman2-2/+8
(This used to be commit 42cbb155c20779c458f727488c8554842b24681b)
2007-10-10r7560: added tests for extended bitop search functionsAndrew Tridgell2-0/+50
(This used to be commit 7b58b3a9c53952f606eb75f5e916e0cf994b2d06)
2007-10-10r7559: support 64 bit matching in bitopsAndrew Tridgell1-6/+6
(This used to be commit 0c44a67001b9ae91c1ba7fc52f22d1eafc22dcc7)
2007-10-10r7558: added support in ldb for extended ldap search requests. These areAndrew Tridgell6-14/+193
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-10r7533: don't show compile flags for each fileAndrew Tridgell1-0/+4
(This used to be commit 6a9ab148a98490e52da81d4ddedf42af2b5bf1a7)
2007-10-10r7527: - added a ldb_search_bytree() interface, which takes a ldb_parse_treeAndrew Tridgell17-154/+216
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)