summaryrefslogtreecommitdiff
path: root/source4/lib/ldb
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r17542: In using ldb_map, I ran across some very odd behaviours when we searchAndrew Bartlett4-5/+26
for objectClass=xyz. The code has been warning at me 'no covert_operator set', and indeed this is the case. (It then proceeds to strip this as a search expression) In this commit, I have implemented a convert_operator for objectClass, by pretending it is a simple MAP_CONVERT operator for the search requests. I also have changed the logic for when we should bail out. I can only see reason to bail out on the search if we have both local and remote trees. How can a remote-only search be un-splittable? Andrew Bartlett (This used to be commit 656e58672c357121647a080400fcab4e5d30b46b)
2007-10-10r17526: Move timestamp generation into the objectGUID module. It probablyAndrew Bartlett1-41/+0
needs to be renamed (operation_add?). This allows me to match the behaviour and substitute with the entryUUID module for remote LDAP connections. Andrew Bartlett (This used to be commit af02b4d7c631bb15bf5a5f73f9fdc23075d50f60)
2007-10-10r17525: This is a merge from the Google Summer of Code 2006 project by ↵Andrew Bartlett6-1238/+3054
Martin Kühl <mkhl@samba.org>. Martin took over the work done last year by Jelmer, in last year's SoC. This was a substanital task, as the the ldb modules API changed significantly during the past year, with the addition of async calls. This changeset reimplements and enables the ldb_map ldb module and adapts the example module and test case, both named samba3sam, to the implementation. The ldb_map module supports splitting an ldb database into two parts (called the "local" and "remote" part) and storing the data in one of them (the remote database) in a different format while the other acts as a fallback. This allows ldb to e.g. store to and load data from a remote LDAP server and present it according to the Samba4 schema while still allowing the LDAP to present and modify its data separately. A complex example of this is the samba3sam module (by Jelmer Vernooij), which maps data between the samba3 and samba4 schemas. A simpler example is given by the entryUUID module (by Andrew Bartlett), which handles some of the differences between AD and OpenLDAP in operational attributes. It principally maps objectGUID, to and from entryUUID elements. This is also an example of a module that doesn't use the local backend as fallback storage. This merge also splits the ldb_map.c file into smaller, more manageable parts. (This used to be commit af2bece4d343a9f787b2e3628848b266cec2b9f0)
2007-10-10r17516: Change helper function names to make more clear what they are meant ↵Simo Sorce5-45/+45
to do (This used to be commit ad75cf869550af66119d0293503024d41d834e02)
2007-10-10r17515: Fix warningsSimo Sorce1-7/+7
(This used to be commit 5f7864515008a596bbf92163ef8bd48dc8269b09)
2007-10-10r17514: Simplify the way to set ldb errors and add anotherSimo Sorce16-119/+123
helper function to set them. (This used to be commit 260868bae56194fcb98d55afc22fc66d96a303df)
2007-10-10r17504: Do not use the invented unixID but use the rfc2307 uidNumber and ↵Simo Sorce1-1/+2
gidNumber attributes instead Do not change unixName right now, we don't have an attribute to use in the posixGroup class, and I think we should remove its usage altogether and look up users and groups by their uid/gid only. Simo. (This used to be commit d57b521aadf24a277152ec1ff1dac3210bd14316)
2007-10-10r17503: Add a useful function to search for a DNSimo Sorce2-0/+17
(This used to be commit 8c6efd7b55e4ad45e1bd10519a1b91285a4e0347)
2007-10-10r17474: Allow the partitions module to load modules for specific backends.Andrew Bartlett2-4/+8
Andrew Bartlett (This used to be commit c016db2187120991e8ad779b9df35480d7c19400)
2007-10-10r17473: Split loading a list of modules and initialising them into a seperateAndrew Bartlett1-42/+58
function. Andrew Bartlett (This used to be commit bed17cc579d82f04e44ce3c3d1e74d999c2ab867)
2007-10-10r17432: display more GUID values nicely,Stefan Metzmacher1-0/+48
they all have rangeLower=16 rangeUpper=16 and attribute syntax 2.5.5.10 metze (This used to be commit 932f8bec21a64be3ca84c32a2ceaea98e2ceecf9)
2007-10-10r17430: implement the LDAP_SERVER_PERMISSIVE_MODIFY control in the clientStefan Metzmacher2-0/+29
metze (This used to be commit 96259f0f24b114e505241c9d2deb702a8b40f1b6)
2007-10-10r17429: implement the LDAP_SERVER_SHOW_DELETED control in the clientStefan Metzmacher2-0/+28
metze (This used to be commit 40dc7c1787c16bfc15ac87fee81d2d2d1f3d2fde)
2007-10-10r17420: add client support for the LDAP_SERVER_DOMAIN_SCOPE controlStefan Metzmacher2-2/+30
metze (This used to be commit 84e74a759cfa49ebc8b4ba1b8e729d6d920fc55a)
2007-10-10r17419: add client support for the LDAP_SERVER_SEARCH_OPTIONS support.Stefan Metzmacher2-0/+49
with this you can limit a search to a specific partitions or a search over all partitions without getting referrals. (Witch is the default behavior on the Global Catalog Port) metze (This used to be commit 4ccd0f8171f3748ee6efe1abd3f894d2cdf46bf4)
2007-10-10r17418: add client support for the LDAP_SERVER_SD_FLAGS controlStefan Metzmacher2-1/+43
metze (This used to be commit 23759a1e9b05c4fde475a9016cb0b7447656d7e7)
2007-10-10r17416: display the attributeSecurityGUID nicely.Stefan Metzmacher1-0/+8
this attriute is used to group multiple attribute to a propertySet for access control. metze (This used to be commit 96e9d46091c9fb4fd92782a42fcd9f2c510e9b56)
2007-10-10r17415: the ldif handlers can't do search as this now blocks foereverStefan Metzmacher1-11/+3
because the handlers are called within the async callbacks in side the main search. Also it makes no sense to give the sddl encoder the sid of the primary domain when we need a description of a real security_descriptor, this only makes sense for the defaultSecurityDescriptor... metze (This used to be commit 92f133f1ef1cd4064c9b328244d3be3351c5bab9)
2007-10-10r17398: avoid a memleak when we are returned 0 results and make a more ↵Simo Sorce1-8/+8
creative use of memory contexts (This used to be commit fc97b5dc8ce65232a7a98ffb59def44a931b1565)
2007-10-10r17397: Add const, and use a more local memory context.Andrew Bartlett1-12/+22
Andrew Bartlett (This used to be commit 59fc8031ecf3ba5aa2eff9ec5fa7df76d0c990c6)
2007-10-10r17370: Fix tdb searches, we need to return an LDAP_REPLY_DONE packet when done.Simo Sorce1-0/+15
Awesome how this didn't break everything around... (This used to be commit 1b3b6176592314e91af9ed911e8a244519dea9aa)
2007-10-10r17368: Add 'const' to ldb_match_msg().Andrew Bartlett2-22/+22
Andrew Bartlett (This used to be commit 54eda4b85975c44c993a7dc45f6caa898076f163)
2007-10-10r17350: Avoid a couple of memleaks, unnecessary code and use a more linear styleSimo Sorce2-27/+28
(This used to be commit 97c4d41a30a5d85145abb781cb7001b502bc7dcb)
2007-10-10r17349: We can't just return sucess here, modules below us expect the asyncAndrew Bartlett2-44/+87
reply rules to be followed. Add code to do a fake async callback on the skipped records. Andrew Bartlett (This used to be commit 26bc7dbed978f92e814d9803366eac7d7f4ded3e)
2007-10-10r17304: Improve ldb_tdb error strings a bit more.Andrew Bartlett1-2/+23
Andrew Bartlett (This used to be commit 38bd4f61794e5a664822240d77c1e1c61abc7c44)
2007-10-10r17301: Add a new function to copy a list of attributes, while adding one toAndrew Bartlett1-0/+22
the end. Andrew Bartlett (This used to be commit 2a87ed1111f4ed72798372d6005a88a929c39de6)
2007-10-10r17300: Try to fix some segfaults in ldb_ildap module, when the remote serverAndrew Bartlett1-1/+6
drops the connection. The reconnect code needs to be hooked in here. Andrew Bartlett (This used to be commit 778debedea77ac81cc05f00f27bb96a58cbebcd8)
2007-10-10r17225: Fix the build by fixing the spelling of START-TLS.Andrew Bartlett1-1/+1
Andrew Bartlett (This used to be commit 4827a6b171d7b007f1641ef422d23449fb5a1606)
2007-10-10r17195: Start thinking how to implement extended operations.Simo Sorce2-0/+18
Ad supports three extended operations: - start tls - dynamic objects - fast binds none of these are a priority. (This used to be commit 523e8f3ed4bf5fcf9dc0c9e2100e4ac3b8032be7)
2007-10-10r17186: "async" word abuse clean-up part 2Simo Sorce14-202/+188
(This used to be commit c6aa60c7e69abf1f83efc150b1c3ed02751c45fc)
2007-10-10r17185: Oh, I wanted to do this for sooo long time.Simo Sorce17-341/+341
Finally acknowledge that ldb is inherently async and does not have a dual personality anymore Rename all ldb_async_XXX functions to ldb_XXX except for ldb_async_result, it is now ldb_reply to reflect the real function of this structure. Simo. (This used to be commit 25fc7354049d62efeba17681ef1cdd326bc3f2ef)
2007-10-10r17113: build tdb and ldb standalone with the same sizes of 'off_t' as from ↵Stefan Metzmacher1-0/+1
samba metze (This used to be commit 5c1e6c08c7cce233ca5798a325bdd17c2640286f)
2007-10-10r17112: - fix the build of the ldap ldb backend with newer openldap header ↵Stefan Metzmacher1-1/+2
files. - use the correct timeout variable (simo you should do a standalone build before commiting:-) metze (This used to be commit ac9d69d2574e8331b3ce9c3b97922ead9165fa79)
2007-10-10r17031: When I first revived the objectclass sorting module, simo complainedAndrew Bartlett1-151/+293
that it should handle the add without a search. Now that I'm working on better behaviour with an LDAP backend, I've fixed the module to do just that. For an ADD, and a MODIFY with the REPLACE flag, we do not need the search step. Andrew Bartlett (This used to be commit 87573e2ee4a71168ea69182d2dc4ebf1779b7c02)
2007-10-10r16972: Replace the sequence_number function pointer in ldb with the ldb flags.Andrew Bartlett3-16/+22
The function pointer was meant to be unused, this patch fixes partition.c to use ldb_sequence_number(). (No backend provided the pointer any more). Set the flags onto the ldb structure, so that all backends opened by the partitions module inherit the flags. Set the read-ony flag when accessed as the global catalog Modify the LDAP server to track that this query is for the global catalog (by incoming port), and set a opqaue pointer. Next step is to read that opaque pointer in the partitions module. Andrew Bartlett (This used to be commit a1161cb30e4ffa09657a89e03ca85dd6efd4feba)
2007-10-10r16965: Take a better stab at comparison functions between string and binaryAndrew Bartlett1-24/+44
forms of the objectGUID and objectSID attributes. Andrew Bartlett (This used to be commit e7894b49b37de296320fea2e6d86052b81845e51)
2007-10-10r16937: Add const, to make it clear that it is invalid to talloc_free() the DNAndrew Bartlett1-7/+6
at this point. Andrew Bartlett (This used to be commit f7fb168ab69e39ab3ff236bb5db4e5306a79971d)
2007-10-10r16936: Correct comment in this comparison functionAndrew Bartlett1-1/+1
Andrew Bartlett (This used to be commit d64987a2882c70669421b02aee8d75d95ce99bcb)
2007-10-10r16932: Consistanly use the macro for these DNs and attributes.Andrew Bartlett1-2/+2
Andrew Bartlett (This used to be commit dd6ca3342218aa25619a98d48e0efbbe31012c30)
2007-10-10r16916: Implement metze's proposed changes to the tdb logging API.Andrew Bartlett1-2/+5
This clearly links the log function with its private pointer, and makes the argument list for tdb_open_ex a bit shorter. Andrew Bartlett (This used to be commit 5d5503e8d8a10ead3ef21a5ffda52cadb9a07727)
2007-10-10r16908: Set an error string if we can't find a backend for an operation.Andrew Bartlett1-1/+5
Andrew Bartlett (This used to be commit 6a8c9af9bae8c482dfdb07114ae8313b7e35d9e9)
2007-10-10r16832: I should be more careful (and test!) when trying to make compilers andAndrew Bartlett1-1/+3
static checkers happy... Andrew Bartlett (This used to be commit ae7ec0d553650b2a90fac8b7564b8f986e3e4288)
2007-10-10r16829: Fix a number of issues raised by the IBM checker, or gcc warnings.Andrew Bartlett1-8/+11
In particular, this removes one use of the LDB_DN_NULL_FAILED macro, which was being used on more than DNs, had an embedded goto, and confused the IBM checker. In the password_hash code, ensure that sambaAttr is not, before checking the number of values. In GENSEC, note that this switch value can't occour. This seems to be the only way to quiet both the IBM checker and gcc, as well as cope with possibly invalid inputs. Andrew Bartlet (This used to be commit 3e58350ec2ab883795b1dd03ac46a3520cac67d0)
2007-10-10r16825: Make ldb_sainity_check() set an error string. This makes it muchAndrew Bartlett4-13/+26
easier to chase down what modules or application code gets wrong. Ensure not to leave memory allocated on failure in ldb_search() Andrew Bartlett (This used to be commit 0828739951ed879640f8ed6e4700d8ca6b8221b8)
2007-10-10r16784: - make some function in ldb static, they not need to be exported ↵Simo Sorce1-3/+3
anywhere - fix a bad segfault Andrew please make test before committing. Simo. (This used to be commit b9b6bb3e89d3b0e04ccce15156c1a128b6f20d88)
2007-10-10r16774: This patch modifies the tdb API to allow the logging function to be usedAndrew Bartlett3-6/+43
as part of ldb. This allows tdb failures to be passed all the way up to Samba's DEBUG system, which allowed easier debugging. Unfortunately I had to extend the tdb API, as the logging function didn't have a context pointer. I've worked over the 'debug levels' in TDB. Most of them were 0, which didn't seem right, as some were trace-like messages. We didn't see any of these previously, except when accessing TDB directly. Andrew Bartlett (This used to be commit 58898092c1ce043f6d698db5065f372b79109e22)
2007-10-10r16264: Add, but do not yet enable, the partitions module.Andrew Bartlett4-8/+15
This required changes to the rootDSE module, to allow registration of partitions. In doing so I renamed the 'register' operation to 'register_control' and 'register_partition', which changed a few more modules. Due to the behaviour of certain LDAP servers, we create the baseDN entry in two parts: Firstly, we allow the admin to export a simple LDIF file to add to their server. Then we perform a modify to add the remaining attributes. To delete all users in partitions, we must now search and delete all objects in the partition, rather than a simple search from the root. Against LDAP, this might not delete all objects, so we allow this to fail. In testing, we found that the 'Domain Controllers' container was misnamed, and should be 'CN=', rather than 'OU='. To avoid the Templates being found in default searches, they have been moved to CN=Templates from CN=Templates,${BASEDN}. Andrew Bartlett (This used to be commit b49a4fbb57f10726bd288fdc9fc95c0cbbe9094a)
2007-10-10r16172: Translate the ldb error codes into appropriate messages for theAndrew Bartlett1-3/+9
transaction cases. Andrew Bartlett (This used to be commit 28883f719304ee438c54a4d33e6bf1239f8c4094)
2007-10-10r16100: Patch from Michael Wood <mwood@icts.uct.ac.za>: s/then/than/ for ↵Gerald Carter2-3/+3
correct grammar (This used to be commit 26a2fa97e4c819e630bc9b50e11c8d5328c7b8c8)
2007-10-10r16090: Fix standalone build after the rename of enum ldb_request_type inTim Potter3-21/+21
r15944. Hey idra I think a better rename would be to keep the LDB_REQ suffix here to remain consistent with the other enums (e.g ldb_reply_type, ldb_async_wait_type and ldb_async_state). (This used to be commit d44ee8c43bd8f6f978330a8ded8bf30ffad494d6)