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

590 Commits

Author SHA1 Message Date
Jelmer Vernooij
26af14c39b r13786: [merge] Add registration functions for LDB modules
Applications that use LDB modules will now have to run ldb_global_init()
before they can use LDB.

The next step will be adding support for loading LDB modules from .so
files. This will also allow us to use one LDB without difference between the
standalone and the Samba-specific build
(This used to be commit 52a235650514039bf8ffee99a784bbc1b6ae6b92)
2007-10-10 13:52:11 -05:00
Andrew Bartlett
98c0767677 r13616: Add new ldb functions: ldb_msg_add_steal_string() and
ldb_msg_add_steal_value().

These try to maintain the talloc heirachy, which must be correct
otherwise talloc_steal operations of entire attribute lists fails.

This fixes the currentTime value, found by using Microsoft's dcdiag
tool (before this commit, it pointed to invalid memory, due to the
changes in -r 13606)

Andrew Bartlett
(This used to be commit 424df1bb369fddcfd358cf26dd0da9d3851d181e)
2007-10-10 13:51:59 -05:00
Simo Sorce
d590dea10b r13615: Make ldb_set_errstring get ldb instead of module as parameter.
The module was just used to get to the ldb so it was meningless.

Also add LDB_WAIT_ONCE e relative code in ldb_ildap.c
(This used to be commit d5b467b7c132b0bd4d23918ba7bf3370b1afcce8)
2007-10-10 13:51:59 -05:00
Simo Sorce
00fe70e5b9 r13609: Get in the initial work on making ldb async
Currently only ldb_ildap is async, the plan
is to first make all backend support the async calls,
and then remove the sync functions from backends and
keep the only in the API.

Modules will need to be transformed along the way.

Simo
(This used to be commit 1e2c13b2d52de7c534493dd79a2c0596a3e8c1f5)
2007-10-10 13:51:59 -05:00
Stefan Metzmacher
5b26ea841c r13359: make sure we don't look at s[-1]
metze
(This used to be commit 24c6e2f73175befa33f9758634e3ee183916e387)
2007-10-10 13:51:49 -05:00
Simo Sorce
76036d37b4 r13349: In the end I could not use ldb_caseless_cmp
in attrib_handler.c functions

remove it again

Simo
(This used to be commit 513ff499071e6cb5e608a82430718021f72997bd)
2007-10-10 13:51:47 -05:00
Simo Sorce
e1e693792c r13347: - Now we compare values with an optimized utf8
safe function if the user provides an utf8
compliant casefold function to ldb.

- Fix toupper_m and tolower_m to not crash if
the case tables are not found

- Let load_case_table() search into the correct
directory in the search tree for the case
tables so that we can test utf8

Simo
(This used to be commit e12f070958eb3c144beb81c5cb878db122249021)
2007-10-10 13:51:47 -05:00
Simo Sorce
3ba24e4a35 r13335: Fix the build and add an utf8 safe ldb_hadler_fold function
based on ldb_casefold
(This used to be commit 6104f900863c688707809d42c5429a42d654d5fb)
2007-10-10 13:51:45 -05:00
Simo Sorce
04396c36d3 r13333: revert previous commit I will use ldb_caseless_cmp in attrib_handlers
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-10 13:51:45 -05:00
Simo Sorce
88279373ab r13328: After the attribute name check cleanup it turned up ldb_caseless_cmp()
was used just in one places and by mistake, as there we should have
been using ldb_attr_cmp()

Remove ldb_caseless_cmp() ... going on with the cleanup and utf8 compliance
effort.

Simo.
(This used to be commit afda68d7bf655a9145648856d29e6e64b9f21aa3)
2007-10-10 13:51:44 -05:00
Simo Sorce
f5ebc8e404 r13324: From now on check attribute names obey rfc2251
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-10 13:51:44 -05:00
Andrew Tridgell
ce4f56dbdc r13278: remove a silly strcasecmp() replacement
(This used to be commit 6ec71ffbc141df398aff3e11c45e35e15192c66f)
2007-10-10 13:51:42 -05:00
Simo Sorce
3725b1817f r12941: Add Attribute Scoped Search control
want to see what it does ?

do aq make test and try:
./bin/ldbsearch -H st/private/sam.ldb --controls=asq:1:member -s base -b 'CN=Administrators,CN=Builtin,DC=samba,DC=example,DC=com' 'objectclass=*'

have fun.
simo.
(This used to be commit 900f4fd3435aacc3351f30afb77d3488d2cb4804)
2007-10-10 13:51:11 -05:00
Stefan Metzmacher
cd9752d61f r12909: add an ldb module for the wins.ldb,
it currently doesn't do much, but it's later
prevent adding corrupted records via ldbedit,
and will take care of the versionID counter

metze
(This used to be commit a6f279bc43c74cf4dc116cb6ba99f1aed13a4de9)
2007-10-10 13:51:02 -05:00
Stefan Metzmacher
b424fdd253 r12830: this can be const
metze
(This used to be commit 1876e245c49d521e89674dc1662a61e8f4cdc9b5)
2007-10-10 13:50:03 -05:00
Stefan Metzmacher
4d1c5a023c r12829: fix ldb headers, to not include '<...>' files in .c files
this helps in getting symbol -fvisibility=hidden (GCC 4 feature) working later.

metze
(This used to be commit 380938e97f31c7860aed1e73cc0110c6e17b472e)
2007-10-10 13:50:03 -05:00
Simo Sorce
428ef08930 r12827: This was a very well concealed bug.
Thank to Andrew Bartlet for finding out a test case that showed it up.

Simo.
(This used to be commit 72a86d74a95c2b38d25159027f612075c50a1f3c)
2007-10-10 13:50:03 -05:00
Simo Sorce
b589ac5d86 r12770: Remove the alloca.h header as it is not used in the code afaics
(This used to be commit d4454287cf14cfdf1ceeb090da40492314703fb9)
2007-10-10 13:49:52 -05:00
Simo Sorce
528470d4a7 r12748: Fix wrong handling of separation characters for RDNs
allow escaped separation chars as part of the attr value
of an RDN
(This used to be commit 7ba341d6c3745cd99c4c79933f9bd54f41e12a9c)
2007-10-10 13:49:49 -05:00
Andrew Bartlett
a8eec31354 r12746: An initial version of the kludge_acls module.
This should be replaced with real ACLs, which tridge is working on.
In the meantime, the rules are very simple:

- SYSTEM and Administrators can read all.

- Users and anonymous cannot read passwords, can read everything else

- list of 'password' attributes is hard-coded

Most of the difficult work in this was fighting with the C/js
interface to add a system_session() all, as it still doesn't get on
with me :-)

Andrew Bartlett
(This used to be commit be9d0cae8989429ef47a713d8f0a82f12966fc78)
2007-10-10 13:49:48 -05:00
Simo Sorce
dbef4d76de r12743: Remove the ugly way we had to make a second stage init and introduce
a second_stage_init private function for modules that need a second stage init.

Simo.
(This used to be commit 5e8b365fa2d93801a5de1d9ea76ce9d5546bd248)
2007-10-10 13:49:48 -05:00
Simo Sorce
de296b6513 r12734: forgot to add qsort
(This used to be commit df1ccca3499015d68a6f9f86286d9f66b6c0476c)
2007-10-10 13:49:47 -05:00
Simo Sorce
c908d0b2aa r12733: Merge ldap/ldb controls into main tree
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-10 13:49:47 -05:00
Andrew Bartlett
4ff20fcd31 r12600: Add a new module to sort the objectclass attribute on store. The
module is perhaps not the most efficient, but I think it is
reasonable.

This should restore operation of MMC against Samba4 (broken by the
templating fixes).

Andrew Bartlett
(This used to be commit 41948c4bdbfca1160a01a92994324f9e22422afe)
2007-10-10 13:49:01 -05:00
Andrew Bartlett
c82c9fe7bb r12599: This new LDB module (and associated changes) allows Samba4 to operate
using pre-calculated passwords for all kerberos key types.
(Previously we could only use these for the NT# type).

The module handles all of the hash/string2key tasks for all parts of
Samba, which was previously in the rpc_server/samr/samr_password.c
code.  We also update the msDS-KeyVersionNumber, and the password
history.  This new module can be called at provision time, which
ensures we start with a database that is consistent in this respect.

By ensuring that the krb5key attribute is the only one we need to
retrieve, this also simplifies the run-time KDC logic.  (Each value of
the multi-valued attribute is encoded as a 'Key' in ASN.1, using the
definition from Heimdal's HDB.  This simplfies the KDC code.).

It is hoped that this will speed up the KDC enough that it can again
operate under valgrind.
(This used to be commit e9022743210b59f19f370d772e532e0f08bfebd9)
2007-10-10 13:49:01 -05:00
Andrew Bartlett
a50b42dcb5 r12553: Steal the error string onto this context, so that the caller doesn't
have to think about exactly what the right context to hang it of is.

Andrew Bartlett
(This used to be commit b1c8adcfe16c72252b0312e65676edcdbe472f09)
2007-10-10 13:47:57 -05:00
Andrew Bartlett
b1c80c3cfa r12534: Make the transaction code fill the error string on failure.
Andrew Bartlett
(This used to be commit 2f54d7f774434f2a8b89ae01e993c4a1d16ce861)
2007-10-10 13:47:53 -05:00
Andrew Bartlett
bceca72304 r12361: Add a new function: ldb_binary_encode_string()
This is for use on user-supplied arguments to printf style format
strings which will become ldb filters.  I have used it on LSA, SAMR
and the auth/ code so far.

Also add comments to cracknames code.

Andrew Bartlett
(This used to be commit 8308cf6e0472790c1c9d521d19322557907f4418)
2007-10-10 13:47:30 -05:00
Andrew Tridgell
7b090b06bf r12157: ldb_dump_results() is useful to call from within gdb, so you can see a
set of results
(This used to be commit 2be62eb2dde9250f8bfe3a3272851e152a1d6b68)
2007-10-10 13:47:15 -05:00
Andrew Tridgell
6eabad9c9d r11958: - fixed memory leaks in the ldb_result handling in ldb operations
- removed an unnecessary level of pointer in ldb_search structure
(This used to be commit b8d4afb14a18dfd8bac79882a035e74d3ed312bd)
2007-10-10 13:46:51 -05:00
Andrew Tridgell
400f03b9ea r11953: enabled the rootdse module in the ldb modules code
(This used to be commit 7d8b11174c97a3797673254c351c94436aa716b7)
2007-10-10 13:46:50 -05:00
Andrew Tridgell
f613e18d1e r11594: ensure ldb_search() sets *res to NULL on failure (some of the updated
ldb_result code coud rely on that)
(This used to be commit cd567bcb24125827c746c1c0902631b0e7c2cea5)
2007-10-10 13:45:55 -05:00
Simo Sorce
5c95905871 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.
(This used to be commit 22c8c97e6fb466b41859e090e959d7f1134be780)
2007-10-10 13:45:53 -05:00
Volker Lendecke
5a67b508d8 r11378: Fix an uninitialized variable warning. Tridge, I'm 99.999% sure this was a
simple cut&paste error, but you might recheck this.

Volker
(This used to be commit 55b5b100e9ef7e04832d5ba4c10c45916be3513e)
2007-10-10 13:45:29 -05:00
Andrew Tridgell
804cf59a48 r11364: added a ldb_attr_dn() function for testing if an attribute name is
"dn" or "distinguishedName". This makes us a bit more consistent
(This used to be commit b41b374b55f9a056c47ffa2ff88aa5272dbc42fc)
2007-10-10 13:45:26 -05:00
Andrew Tridgell
d812957a31 r11353: a bit of an improvement to the ldb_tdb error handling
(This used to be commit 896704f5c139c8bce30dfc898bb3a12be10035ed)
2007-10-10 13:45:23 -05:00
Andrew Tridgell
84ad5fc9f3 r11109: fixed the error code return from most ldb functions (the change to use
ldb_transaction_cancel() broke it)
(This used to be commit dc41994ea72c7c7f571efa009930cf36d7a9897a)
2007-10-10 13:44:51 -05:00
Andrew Bartlett
1f9703de40 r10980: Use ldb_attr_cmp and ldb_dn_escape_value
Andrew Bartlett
(This used to be commit 2b1c88f628b27ffda08de3f4ac83c1f3b052a078)
2007-10-10 13:39:49 -05:00
Stefan Metzmacher
7b77baff16 r10959: fix compiler warnings
metze
(This used to be commit 9a9311fa6b4bbb2a385413c056c8be57cdb9eb59)
2007-10-10 13:39:48 -05:00
Andrew Tridgell
e2ec8e5e80 r10957: make a comment clearer
(This used to be commit d379fb5f101155edd5f266ae9aaae4e7ac7bd76b)
2007-10-10 13:39:48 -05:00
Andrew Bartlett
52cc7a5501 r10956: Tridge thought some comments might be a good idea :-)
Andrew Bartlett
(This used to be commit c0d6126effdf31e0a107c06a400973c731e0e263)
2007-10-10 13:39:48 -05:00
Andrew Tridgell
0fa924bb8f r10954: added support for canonicalName in the operational module, using the
dn->canonicalName function abartlet just committed
(This used to be commit 197e8a27f0557869eacd17b74e1b14e0665883b1)
2007-10-10 13:39:46 -05:00
Andrew Bartlett
d96f706bb0 r10953: Add a new function to form a canonicalName out of a DN to ldb_dn.c
Use this new function in the client and server for the CrackNames
case, where we particularly need it.

Andrew Bartlett
(This used to be commit 380037ee09ef8293bdb288d6c015e7c80f180a30)
2007-10-10 13:39:45 -05:00
Andrew Tridgell
c8978cb1f1 r10918: - fixed standalone ldb build
- added note about allowedAttributesEffective (will be needed for mmc)

- fixed some more ldb warnings
(This used to be commit e9e4d81b6976549db8a7668572a5da466fbec4a9)
2007-10-10 13:39:43 -05:00
Andrew Tridgell
dc3e65b252 r10917: copy the element name in a ldb_msg_rename_attr() and ldb_msg_copy_attr() to ensure
that callers (like the ldap server) can talloc_steal the name
(This used to be commit 9c914542cc346758c82f89990c80eb096a9c0959)
2007-10-10 13:39:42 -05:00
Andrew Tridgell
3572073491 r10916: - finished the 'operational' ldb module
- removed the timestamps module, replacing it with the operational module

- added a ldb_msg_copy_shallow() function which should be used when a module
  wants to add new elements to a message on add/modify. This is needed
  because the caller might be using a constant structure, or may want to
  re-use the structure again

- enabled the UTC time attribute syntaxes in the operational module
(This used to be commit 61e8b010223ac6a0573185008f3719ba29574688)
2007-10-10 13:39:42 -05:00
Andrew Tridgell
49cc13a8f0 r10915: added a standard attribute handler for a ldap UTC time string
(This used to be commit efd7dd1a775c06f21924f35760f7768b4e8db449)
2007-10-10 13:39:42 -05:00
Andrew Tridgell
33da2fabe6 r10914: moved the ldap time string functions into ldb so they can be used by
the time attribute handling functions
(This used to be commit 93c296d52718e77f8b702e1721b548eaadc56c76)
2007-10-10 13:39:42 -05:00
Andrew Tridgell
a599edf04c 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.
(This used to be commit f6818daecca95760c12f79fd307770cbe3346f57)
2007-10-10 13:39:41 -05:00
Andrew Tridgell
860ffba4e1 r10897: added in a hackish ldb proxy module that I am using to experiment with
mmc management support
(This used to be commit 99a5b088810e8e2f4e28b99a4a0e5e7dc9301594)
2007-10-10 13:39:41 -05:00