1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-07 20:23:50 +03:00
Commit Graph

93 Commits

Author SHA1 Message Date
Simo Sorce
22c8c97e6f r11567: Ldb API change patch.
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.
2007-10-10 13:45:53 -05:00
Andrew Tridgell
f6818daecc r10913: This patch isn't as big as it looks ...
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.
2007-10-10 13:39:41 -05:00
Andrew Tridgell
99a5b08881 r10897: added in a hackish ldb proxy module that I am using to experiment with
mmc management support
2007-10-10 13:39:41 -05:00
Andrew Bartlett
efdc6d834a r10791: Add copyright, fix comments (this isn't the timestamps module any more)
Andrew Bartlett
2007-10-10 13:39:29 -05:00
Andrew Tridgell
45f0c967b5 r10759: make modules easier to write by allowing modules to only implement the
functions they care about, instead of all functions. This also makes
it more likely that future changes to ldb will not break existing
modules
2007-10-10 13:39:27 -05:00
Andrew Tridgell
7e44f9153c r10753: don't require every ldb module to implement both a search_bytree() and
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
2007-10-10 13:39:26 -05:00
Simo Sorce
c2bb2a36bd r10477: expose transactions outside ldb and change the API once more
do not autostart transactions on ldb operations if a transaction is already in place
test transactions on winsdb

all my tests passes so far
tridge please confirm this is ok for you
2007-10-10 13:38:52 -05:00
Andrew Tridgell
91c27bc976 r10411: we don't need the 10 times retry on rid allocation now, as
transactions ensure two account creations can't interfere with each
other
2007-10-10 13:38:42 -05:00
Simo Sorce
e86c9b4a7f r10306: change these modules to use new error API 2007-10-10 13:38:16 -05:00
Simo Sorce
e9018e3d9f r10300: forgot to change the dsdb modules function names 2007-10-10 13:38:15 -05:00
Tim Potter
cda829f0d9 r9992: More fixes from the 64-bit warning police. 2007-10-10 13:36:27 -05:00
Jelmer Vernooij
8ff1358f40 r9915: Some more mappings. Fix weird sAMAccountName values. 2007-10-10 13:36:21 -05:00
Jelmer Vernooij
ebed25b47d r9908: Generate posixUser and posixGroup as well 2007-10-10 13:36:21 -05:00
Jelmer Vernooij
76e943d441 r9899: Be more conservative about what is sent to the remote server in ldb_map. 2007-10-10 13:36:21 -05:00
Tim Potter
579d111478 r9883: More nested initialiser fixes. 2007-10-10 13:36:20 -05:00
Jelmer Vernooij
5cbe1e6b70 r9849: Extend testsuite a bit more. 2007-10-10 13:36:17 -05:00
Jelmer Vernooij
b7992de4b7 r9842: More error checks in the ldb_map modules, extend testsuite 2007-10-10 13:36:17 -05:00
Jelmer Vernooij
2283a336e0 r9835: Make ldb_map compile in the stand-alone LDB build 2007-10-10 13:36:17 -05:00
Jelmer Vernooij
b7c09df9e5 r9793: Be more verbose, check for errors in upgrade script. 2007-10-10 13:35:02 -05:00
Jelmer Vernooij
eb9d615bcd r9786: Move ldb_map into ldb/modules/
Move samba3sam to dsdb/
2007-10-10 13:35:01 -05:00
Jelmer Vernooij
8bded3fc92 r9768: Arrrgh.. Right this time. 2007-10-10 13:34:58 -05:00
Jelmer Vernooij
0602e8b3e7 r9767: Fix typo 2007-10-10 13:34:58 -05:00
Simo Sorce
692e35b779 r9391: Convert all the code to use struct ldb_dn to ohandle ldap like distinguished names
Provide more functions to handle DNs in this form
2007-10-10 13:33:32 -05:00
Jelmer Vernooij
fac77f5fa2 r8811: Fix the build.. 2007-10-10 13:30:07 -05:00
Andrew Bartlett
5f51d806d7 r8791: (missing from previous commit)
Add templating support for foreignSecurityPrincipal to the samdb
module.

Andrew Bartltt
2007-10-10 13:30:06 -05:00
Andrew Bartlett
0cc58f5c3c r8740: Extend the rdn_name module to handle adding the rdn as an attribute. ie:
dn: cn=foo,ou=bar
objectClass: person

implies

dn: cn=foo,ou=bar
objectClass: person
cn: foo
(as well as a pile more default attributes)

We also correct the case in the attirbute to match that in the DN
(win2k3 behaviour) and I have a testsuite (in ejs) to prove it.

This module also found a bug in our provision.ldif, so and reduces
code complexity in the samdb module.

Andrew Bartlett
2007-10-10 13:30:00 -05:00
Andrew Bartlett
da48e77e7c r8674: With the rdn_name module, we don't need this duplication in the samdb
module any more.

Andrew Bartlett
2007-10-10 13:29:53 -05:00
Andrew Bartlett
8054abc76e r8669: The objectguid module belongs in Samba's ldb module collection, not in
ldb, as it can't build without the NDR and GUID code.

Also make it properly use the NDR encoding for the GUID (I forgot last
time, and used a string), as well as set the dependencies on the
module correctly.

Andrew Bartlett
2007-10-10 13:29:52 -05:00
Andrew Bartlett
e03e00fe60 r8666: The same fix as the last commit, I was caught out on a move from a
BOOL to int function return.

Andrew Bartlett
2007-10-10 13:29:51 -05:00
Andrew Bartlett
1982fdb6f3 r8664: I got caught out not testing...
I replaced these function calls, and they went from BOOL to int return
values, so naturally failed.

Andrew Bartlett
2007-10-10 13:29:51 -05:00
Andrew Bartlett
2408f32276 r8663: Since simo constructed the samdb module, he and tridge have worked on
a DN parsing system.  Leverage that in the dsdb module.

Andrew Bartlett
2007-10-10 13:29:51 -05:00
Andrew Bartlett
4a8ef7197f r8660: Use templates for the initial provision of user and computer accounts.
This ensures the templating code is used, and also makes it clearer
what I need to duplicate in the vampire area.

Also fix a silly bug in the template application code (the samdb
module) that caused templates to be compleatly unused (my fault, from
my commit last night).

Andrew Bartlett
2007-10-10 13:29:51 -05:00
Andrew Bartlett
940ed9827f r8650: Use the timestamps and a new objectguid module rather than placing
boilerplate attributes in every entry in provision.ldif.

The next step will be to use templates.

Andrew Bartlett
2007-10-10 13:29:50 -05:00
Andrew Tridgell
d8d47bb18f r8568: change missing templates to warnings, so that provisioning with an existing db
doesn't print lots of fatal errors
2007-10-10 13:29:39 -05:00
Volker Lendecke
126cb3db4b r8321: Fix some uninitalized variable warnings 2007-10-10 13:20:06 -05:00
Andrew Tridgell
0bfd91c32a r7925: small tidyup (please keep lines at a reasonable length) 2007-10-10 13:18:51 -05:00
Andrew Tridgell
d40bc2fa8d r7860: switch our ldb storage format to use a NDR encoded objectSid. This is
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.
2007-10-10 13:18:44 -05:00
Andrew Tridgell
96620ab2ee r7527: - added a ldb_search_bytree() interface, which takes a ldb_parse_tree
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()
2007-10-10 13:18:06 -05:00
Simo Sorce
4f0948dab0 r6470: Remove ldb_search_free() it is not needed anymore.
Just use talloc_free() to release the memory after an ldb_search().
2007-10-10 13:11:40 -05:00
Simo Sorce
fb9afcaf53 r6084: - Introduce the samldb module dependency on samba4
- This module will take care of properly filling an user or group object
  with required fields. You just need to provide the dn and the objectclass
  and a user/group get created

  Simo.
2007-10-10 13:11:18 -05:00
Simo Sorce
b67512c513 r5588: We currently use a string representing an hex number so conform to that.
But we should move to a signed integer in future to be AD compatible.
2007-10-10 13:10:55 -05:00
Simo Sorce
acb99e63d4 r5587: more work around the samldb module
fix the provision.ldif the layout of the @MODULES dn has changed since last commit
2007-10-10 13:10:55 -05:00
Simo Sorce
e77a070c84 r5584: add new experimental ldb module 2007-10-10 13:10:55 -05:00