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

182 Commits

Author SHA1 Message Date
Simo Sorce
3b4eb2413b 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
2007-10-10 13:51:45 -05:00
Simo Sorce
afda68d7bf 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.
2007-10-10 13:51:44 -05:00
Simo Sorce
ac9b8a41ff 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.
2007-10-10 13:51:44 -05:00
Andrew Tridgell
6ec71ffbc1 r13278: remove a silly strcasecmp() replacement 2007-10-10 13:51:42 -05:00
Simo Sorce
900f4fd343 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.
2007-10-10 13:51:11 -05:00
Stefan Metzmacher
a6f279bc43 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
2007-10-10 13:51:02 -05:00
Stefan Metzmacher
1876e245c4 r12830: this can be const
metze
2007-10-10 13:50:03 -05:00
Stefan Metzmacher
380938e97f r12829: fix ldb headers, to not include '<...>' files in .c files
this helps in getting symbol -fvisibility=hidden (GCC 4 feature) working later.

metze
2007-10-10 13:50:03 -05:00
Simo Sorce
72a86d74a9 r12827: This was a very well concealed bug.
Thank to Andrew Bartlet for finding out a test case that showed it up.

Simo.
2007-10-10 13:50:03 -05:00
Simo Sorce
d4454287cf r12770: Remove the alloca.h header as it is not used in the code afaics 2007-10-10 13:49:52 -05:00
Simo Sorce
7ba341d6c3 r12748: Fix wrong handling of separation characters for RDNs
allow escaped separation chars as part of the attr value
of an RDN
2007-10-10 13:49:49 -05:00
Andrew Bartlett
be9d0cae89 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
2007-10-10 13:49:48 -05:00
Simo Sorce
5e8b365fa2 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.
2007-10-10 13:49:48 -05:00
Simo Sorce
df1ccca349 r12734: forgot to add qsort 2007-10-10 13:49:47 -05:00
Simo Sorce
77125feaff 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.
2007-10-10 13:49:47 -05:00
Andrew Bartlett
41948c4bdb 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
2007-10-10 13:49:01 -05:00
Andrew Bartlett
e902274321 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.
2007-10-10 13:49:01 -05:00
Andrew Bartlett
b1c8adcfe1 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
2007-10-10 13:47:57 -05:00
Andrew Bartlett
2f54d7f774 r12534: Make the transaction code fill the error string on failure.
Andrew Bartlett
2007-10-10 13:47:53 -05:00
Andrew Bartlett
8308cf6e04 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
2007-10-10 13:47:30 -05:00
Andrew Tridgell
2be62eb2dd r12157: ldb_dump_results() is useful to call from within gdb, so you can see a
set of results
2007-10-10 13:47:15 -05:00
Andrew Tridgell
b8d4afb14a r11958: - fixed memory leaks in the ldb_result handling in ldb operations
- removed an unnecessary level of pointer in ldb_search structure
2007-10-10 13:46:51 -05:00
Andrew Tridgell
7d8b11174c r11953: enabled the rootdse module in the ldb modules code 2007-10-10 13:46:50 -05:00
Andrew Tridgell
cd567bcb24 r11594: ensure ldb_search() sets *res to NULL on failure (some of the updated
ldb_result code coud rely on that)
2007-10-10 13:45:55 -05:00
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
Volker Lendecke
55b5b100e9 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
2007-10-10 13:45:29 -05:00
Andrew Tridgell
b41b374b55 r11364: added a ldb_attr_dn() function for testing if an attribute name is
"dn" or "distinguishedName". This makes us a bit more consistent
2007-10-10 13:45:26 -05:00
Andrew Tridgell
896704f5c1 r11353: a bit of an improvement to the ldb_tdb error handling 2007-10-10 13:45:23 -05:00
Andrew Tridgell
dc41994ea7 r11109: fixed the error code return from most ldb functions (the change to use
ldb_transaction_cancel() broke it)
2007-10-10 13:44:51 -05:00
Andrew Bartlett
2b1c88f628 r10980: Use ldb_attr_cmp and ldb_dn_escape_value
Andrew Bartlett
2007-10-10 13:39:49 -05:00
Stefan Metzmacher
9a9311fa6b r10959: fix compiler warnings
metze
2007-10-10 13:39:48 -05:00
Andrew Tridgell
d379fb5f10 r10957: make a comment clearer 2007-10-10 13:39:48 -05:00
Andrew Bartlett
c0d6126eff r10956: Tridge thought some comments might be a good idea :-)
Andrew Bartlett
2007-10-10 13:39:48 -05:00
Andrew Tridgell
197e8a27f0 r10954: added support for canonicalName in the operational module, using the
dn->canonicalName function abartlet just committed
2007-10-10 13:39:46 -05:00
Andrew Bartlett
380037ee09 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
2007-10-10 13:39:45 -05:00
Andrew Tridgell
e9e4d81b69 r10918: - fixed standalone ldb build
- added note about allowedAttributesEffective (will be needed for mmc)

- fixed some more ldb warnings
2007-10-10 13:39:43 -05:00
Andrew Tridgell
9c914542cc 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
2007-10-10 13:39:42 -05:00
Andrew Tridgell
61e8b01022 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
2007-10-10 13:39:42 -05:00
Andrew Tridgell
efd7dd1a77 r10915: added a standard attribute handler for a ldap UTC time string 2007-10-10 13:39:42 -05:00
Andrew Tridgell
93c296d527 r10914: moved the ldap time string functions into ldb so they can be used by
the time attribute handling functions
2007-10-10 13:39:42 -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 Tridgell
e2e3193a98 r10895: allow 'dn=string' searches to work again. Windows doesn't allow these,
but they are so very useful for things like dn=@MODULES that I think
its worth supporting them
2007-10-10 13:39:41 -05:00
Andrew Tridgell
1af2cc067f r10894: make the handling of dn/distinguishedName much closer to real
ldap. Also ensure we put a objectclass on our private ldb's, so they
have some chance of being stored in ldap if you want to
2007-10-10 13:39:40 -05:00
Andrew Tridgell
ef13569ca9 r10790: allow updating of existing ldb opaque values (thanks to abartlet for
spotting this)
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
3c5f3032fc r10757: remove the proxy module (it is not complete yet) 2007-10-10 13:39:27 -05:00
Andrew Tridgell
bf5cef6f00 r10756: another fix for the construction of expressions from subtrees for
SUBSTRING searches. This time fix multi-part substring searches.
2007-10-10 13:39:27 -05:00
Andrew Tridgell
71c06778d4 r10755: fixed the construction of expressions from subtrees for SUBSTRING searches 2007-10-10 13:39:26 -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