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

65 Commits

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

Andrew Bartlett
2007-12-21 05:51:52 +01:00
Andrew Bartlett
f42690a90c r25857: Indent 2007-12-21 05:44:30 +01:00
Andrew Bartlett
0fbea30577 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
2007-10-10 15:01:16 -05:00
Andrew Tridgell
40c0919aaa r23798: updated old Temple Place FSF addresses to new URL 2007-10-10 14:59:15 -05:00
Andrew Tridgell
84b468b2f8 r23795: more v2->v3 conversion 2007-10-10 14:59:14 -05:00
Andrew Bartlett
dcff83ebe4 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
2007-10-10 14:53:27 -05:00
Jelmer Vernooij
1093875d59 r22681: Fix standalone ldb build when parent directory name != ldb. 2007-10-10 14:52:00 -05:00
Stefan Metzmacher
dfdfdd6cef r20731: we need the complex memmove() handling for removing an attribute only in one place
metze
2007-10-10 14:40:33 -05:00
Stefan Metzmacher
49c7da812c r20462: add functions to handle UTCTime strings
metze
2007-10-10 14:35:52 -05:00
Stefan Metzmacher
d20d1872d5 r20189: remove unused struct element
metze
2007-10-10 14:29:20 -05:00
Simo Sorce
67b88e49b8 r19909: Make this one double as fast 2007-10-10 14:28:35 -05:00
Simo Sorce
3929c086d5 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
2007-10-10 14:28:22 -05:00
Simo Sorce
a580c871d3 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.
2007-10-10 14:28:22 -05:00
Andrew Bartlett
186766e309 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
2007-10-10 14:28:15 -05:00
Simo Sorce
abdc4edbb8 r19490: better to check the return result 2007-10-10 14:24:38 -05:00
Simo Sorce
0fa5d4bc22 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.
2007-10-10 14:24:38 -05:00
Stefan Metzmacher
dc139d8715 r19188: merge from samba3:
fix compiler warnings

metze
2007-10-10 14:20:51 -05:00
Andrew Tridgell
7a1db8c2a4 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 :-)
2007-10-10 14:20:20 -05:00
Simo Sorce
3e131177da r18881: remove wrong check and statement.
to manipulate rootDSE we use ldb_dn_new() as base and that has 0 elements.
2007-10-10 14:20:18 -05:00
Simo Sorce
5b4fc48c49 r17859: Fix some return values 2007-10-10 14:16:49 -05:00
Stefan Metzmacher
cea06e105a r17714: fix compiler warnings
metze
2007-10-10 14:16:30 -05:00
Andrew Bartlett
ba1c652bae 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
2007-10-10 14:15:39 -05:00
Simo Sorce
ad75cf8695 r17516: Change helper function names to make more clear what they are meant to do 2007-10-10 14:15:31 -05:00
Simo Sorce
260868bae5 r17514: Simplify the way to set ldb errors and add another
helper function to set them.
2007-10-10 14:15:31 -05:00
Simo Sorce
8c6efd7b55 r17503: Add a useful function to search for a DN 2007-10-10 14:15:30 -05:00
Andrew Bartlett
2a87ed1111 r17301: Add a new function to copy a list of attributes, while adding one to
the end.

Andrew Bartlett
2007-10-10 14:15:08 -05:00
Andrew Bartlett
0828739951 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
2007-10-10 14:09:47 -05:00
Simo Sorce
099d873ea5 r15761: Fix-as-you-go ...
Testing various async paths and uncovering bugs
2007-10-10 14:08:15 -05:00
Simo Sorce
7c050b541e r15582: Commit some forgotten stuff that have been setting on my private tree fro long 2007-10-10 14:06:00 -05:00
Andrew Tridgell
4257fd91ce r13803: fixed two errors found with 'make valgrindtest' 2007-10-10 13:52:12 -05:00
Andrew Bartlett
424df1bb36 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
2007-10-10 13:51:59 -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
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
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
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
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 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
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
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
Stefan Metzmacher
3309a0f4d9 r10312: fix compiler warning
metze
2007-10-10 13:38:16 -05:00
Simo Sorce
610f5646f0 r10304: check for basic ldb_message sanity and return appropriate
LDB_ERR_ value
2007-10-10 13:38:15 -05:00
Jelmer Vernooij
505c9b1d3d 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?
2007-10-10 13:34:59 -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
Derrell Lipman
ce9966e091 r7602: fix some compiler warnings 2007-10-10 13:18:13 -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
Andrew Tridgell
fa4f33558a r6833: split out the routine that calculates the diff between two ldb messages from ldbedit,
so other progs can use it.
2007-10-10 13:16:49 -05:00
Andrew Tridgell
12d03f9663 r5665: the data within el2->values can still be used at this point, so don't free 2007-10-10 13:10:57 -05:00