1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-04 17:47:26 +03:00

65 Commits

Author SHA1 Message Date
Andrew Bartlett
131c40a421 r26529: Indeed, this belongs in the schema module. Ranged results need to use
an attribute with ';' in the name.

Andrew Bartlett
(This used to be commit f4023b176eabfb3282fe9b999eac8db55a095ab0)
2007-12-21 05:51:52 +01:00
Andrew Bartlett
0d5c5cb372 r25857: Indent
(This used to be commit f42690a90c2f76e7fc130ebbdbd0f93fefacfad6)
2007-12-21 05:44:30 +01:00
Andrew Bartlett
b7f9e85db1 r23993: Attempt to fix bug #4808, reported by mwallnoefer@yahoo.de. The issue
is that when we all ldb_msg_add_empty(), we might realloc() the
msg->elements array.  We need to ensure the source pointer (when
copying an element from the same msg) is still valid, or the data
copied.

Andrew Bartlett
(This used to be commit 0fbea30577233d00e7c6cdd4faaece0f99fc57b1)
2007-10-10 15:01:16 -05:00
Andrew Tridgell
6c973f4e8c r23798: updated old Temple Place FSF addresses to new URL
(This used to be commit 40c0919aaa9c1b14bbaebb95ecce53eb0380fdbb)
2007-10-10 14:59:15 -05:00
Andrew Tridgell
b8d69a7ea2 r23795: more v2->v3 conversion
(This used to be commit 84b468b2f8f2dffda89593f816e8bc6a8b6d42ac)
2007-10-10 14:59:14 -05:00
Andrew Bartlett
e9d19477e4 r23560: - Activate metze's schema modules (from metze's schema-loading-13 patch).
- samba3sam.js: rework the samba3sam test to not use objectCategory,
  as it's has special rules (dnsName a simple match)
- ldap.js: Test the ordering of the objectClass attributes for the baseDN
- schema_init.c: Load the mayContain and mustContain (and system...) attributes when
  reading the schema from ldb
- To make the schema load not suck in terms of performance, write the
  schema into a static global variable
- ldif_handlers.c: Match objectCategory for equality and canonicolisation
  based on the loaded schema, not simple tring manipuation
- ldb_msg.c: don't duplicate attributes when adding attributes to a list
- kludge_acl.c: return allowedAttributesEffective based on schema results
  and privilages

Andrew Bartlett
(This used to be commit dcff83ebe463bc7391841f55856d7915c204d000)
2007-10-10 14:53:27 -05:00
Jelmer Vernooij
52fb06edc2 r22681: Fix standalone ldb build when parent directory name != ldb.
(This used to be commit 1093875d59f1ea9b8bd82277d4f9d8366e584952)
2007-10-10 14:52:00 -05:00
Stefan Metzmacher
7dd80e872d r20731: we need the complex memmove() handling for removing an attribute only in one place
metze
(This used to be commit dfdfdd6cefeac2974a4b3425a49e3dd93ad7e952)
2007-10-10 14:40:33 -05:00
Stefan Metzmacher
71bc79caab r20462: add functions to handle UTCTime strings
metze
(This used to be commit 49c7da812c290e23bb65b98a2710fb90c4a0ece2)
2007-10-10 14:35:52 -05:00
Stefan Metzmacher
a3c0f3035d r20189: remove unused struct element
metze
(This used to be commit d20d1872d5ed1176928b85ef9811c6a5177d0148)
2007-10-10 14:29:20 -05:00
Simo Sorce
8ec78bcbbf r19909: Make this one double as fast
(This used to be commit 67b88e49b896f1d783619b8f96554adaeabe80df)
2007-10-10 14:28:35 -05:00
Simo Sorce
a9e31b33b5 r19832: better prototypes for the linearization functions:
- ldb_dn_get_linearized
  returns a const string

- ldb_dn_alloc_linearized
  allocs astring with the linearized dn
(This used to be commit 3929c086d5d0b3f08b1c4f2f3f9602c3f4a9a4bd)
2007-10-10 14:28:22 -05:00
Simo Sorce
4889eb9f7a r19831: Big ldb_dn optimization and interfaces enhancement patch
This patch changes a lot of the code in ldb_dn.c, and also
removes and add a number of manipulation functions around.

The aim is to avoid validating a dn if not necessary as the
validation code is necessarily slow. This is mainly to speed up
internal operations where input is not user generated and so we
can assume the DNs need no validation. The code is designed to
keep the data as a string if possible.

The code is not yet 100% perfect, but pass all the tests so far.
A memleak is certainly present, I'll work on that next.

Simo.
(This used to be commit a580c871d3784602a9cce32d33419e63c8236e63)
2007-10-10 14:28:22 -05:00
Andrew Bartlett
adae413042 r19731: Modify the ldb_map infrustructure to always map from requested
attributes to backend (remote) attributes.

We can't do a reverse mapping safely where the remote attribute may be
a source for multiple local attributes.  (We end up with the wrong
attributes returned).

In doing this, I've modified the samba3sam.js test to be more
realistic, and fixed some failures in the handling of primaryGroupID.

I've added a new (private) helper function ldb_msg_remove_element() to
avoid a double lookup of the element name.

I've also re-formatted many of the function headers, to fit into
standard editor widths.

Andrew Bartlett
(This used to be commit 186766e3095e71ba716c69e681592e217a3bc420)
2007-10-10 14:28:15 -05:00
Simo Sorce
cc22f65d7b r19490: better to check the return result
(This used to be commit abdc4edbb8f8b8234bad1be05fa92b3f3bc8876c)
2007-10-10 14:24:38 -05:00
Simo Sorce
7f833458ca r19489: Change ldb_msg_add_value and ldb_msg_add_empty to take a foruth argument.
This is a pointer to an element pointer. If it is not null it will be
filled with the pointer of the manipulated element.
Will avoid double searches on the elements list in some cases.
(This used to be commit 0fa5d4bc225b83e9f63ac6d75bffc4c08eb6b620)
2007-10-10 14:24:38 -05:00
Stefan Metzmacher
c403dd11fb r19188: merge from samba3:
fix compiler warnings

metze
(This used to be commit dc139d8715f58b27363266f1426da451907845eb)
2007-10-10 14:20:51 -05:00
Andrew Tridgell
26ece8f697 r18910: Change ldb_msg_add_string() to not actually add an attribute if the
string is zero length. This allows callers to not have to worry about
creating an invalid ldap attribute.

See extensive discussion on samba-technical list :-)
(This used to be commit 7a1db8c2a432b9ab59b29ee1bfce6c8fe8e981a2)
2007-10-10 14:20:20 -05:00
Simo Sorce
df83913eb1 r18881: remove wrong check and statement.
to manipulate rootDSE we use ldb_dn_new() as base and that has 0 elements.
(This used to be commit 3e131177dae3536c07632fe09e7ebe877bcd9332)
2007-10-10 14:20:18 -05:00
Simo Sorce
d0ef5aad17 r17859: Fix some return values
(This used to be commit 5b4fc48c49bada2711e356c557ba5f45e34396f6)
2007-10-10 14:16:49 -05:00
Stefan Metzmacher
02515a7613 r17714: fix compiler warnings
metze
(This used to be commit cea06e105a28e12989cd6fdf6d91d86347b8ffc4)
2007-10-10 14:16:30 -05:00
Andrew Bartlett
7de75a991b r17580: Add a new tools to convert back from AD-like schema to OpenLDAP.
Add attribute syntax mapping to the existing OpenLDAP -> AD tool.

Andrew Bartlett
(This used to be commit ba1c652bae700a82acde166e70035d61c320e233)
2007-10-10 14:15:39 -05:00
Simo Sorce
a23b63a8e5 r17516: Change helper function names to make more clear what they are meant to do
(This used to be commit ad75cf869550af66119d0293503024d41d834e02)
2007-10-10 14:15:31 -05:00
Simo Sorce
faed817506 r17514: Simplify the way to set ldb errors and add another
helper function to set them.
(This used to be commit 260868bae56194fcb98d55afc22fc66d96a303df)
2007-10-10 14:15:31 -05:00
Simo Sorce
39018ab902 r17503: Add a useful function to search for a DN
(This used to be commit 8c6efd7b55e4ad45e1bd10519a1b91285a4e0347)
2007-10-10 14:15:30 -05:00
Andrew Bartlett
09b861f45b r17301: Add a new function to copy a list of attributes, while adding one to
the end.

Andrew Bartlett
(This used to be commit 2a87ed1111f4ed72798372d6005a88a929c39de6)
2007-10-10 14:15:08 -05:00
Andrew Bartlett
44e6f21393 r16825: Make ldb_sainity_check() set an error string. This makes it much
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-10 14:09:47 -05:00
Simo Sorce
6d0969aa1a r15761: Fix-as-you-go ...
Testing various async paths and uncovering bugs
(This used to be commit 099d873ea596ece18efe63b06bc64e7f97a96f82)
2007-10-10 14:08:15 -05:00
Simo Sorce
aa7a02d45f r15582: Commit some forgotten stuff that have been setting on my private tree fro long
(This used to be commit 7c050b541e98cd442a0c9ed0ddadb3e573cd1304)
2007-10-10 14:06:00 -05:00
Andrew Tridgell
af03a9b8fb r13803: fixed two errors found with 'make valgrindtest'
(This used to be commit 4257fd91ceca34dd868a9168efc28b6cb63f0357)
2007-10-10 13:52:12 -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
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
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
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
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
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 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
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
Simo Sorce
63b43dd12f 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
(This used to be commit c2bb2a36bdbe0ec7519697a9a9ba7526a0defac2)
2007-10-10 13:38:52 -05:00
Stefan Metzmacher
cb9d4c6707 r10312: fix compiler warning
metze
(This used to be commit 3309a0f4d90f01e1f6182b797e2bfe3f8380e59c)
2007-10-10 13:38:16 -05:00
Simo Sorce
46a8d80937 r10304: check for basic ldb_message sanity and return appropriate
LDB_ERR_ value
(This used to be commit 610f5646f0816820ac9342e81d46d139e26cc918)
2007-10-10 13:38:15 -05:00
Jelmer Vernooij
c0293aa715 r9771: - Prevent ldb crash when a invalid DN is added
- Don't silently drop records with empty attributes

tridge/simo: Could you please verify this patch is correct?
(This used to be commit 505c9b1d3d39475da141d3b3c156a7e5ba06790c)
2007-10-10 13:34:59 -05:00
Simo Sorce
3e4c4cff21 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
(This used to be commit 692e35b7797e39533dd2a1c4b63d9da30f1eb5ba)
2007-10-10 13:33:32 -05:00
Derrell Lipman
93e03bd272 r7602: fix some compiler warnings
(This used to be commit ce9966e091d36f66d409ac6f7b5e462c9dc37325)
2007-10-10 13:18:13 -05:00
Andrew Tridgell
4b0e5bd753 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()
(This used to be commit 96620ab2ee5d440bbbc51c1bc0cad9977770f897)
2007-10-10 13:18:06 -05:00
Andrew Tridgell
9a9cf9e075 r6833: split out the routine that calculates the diff between two ldb messages from ldbedit,
so other progs can use it.
(This used to be commit fa4f33558af3c65ff31424c01db16cb9d427503d)
2007-10-10 13:16:49 -05:00
Andrew Tridgell
2f9e1650f9 r5665: the data within el2->values can still be used at this point, so don't free
(This used to be commit 12d03f96637b9298e0cbc7ee544ca97fffcab9f8)
2007-10-10 13:10:57 -05:00