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

139 Commits

Author SHA1 Message Date
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
Andrew Tridgell
0d4a900ce5 r10665: fixed some crash errors and an error encoding AND and OR operations in the expression parsing code 2007-10-10 13:39:15 -05:00
Andrew Tridgell
8e7c4c98a7 r10603: neaten up the ldb module initialisation code 2007-10-10 13:39:11 -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
3fc676ac1d r10305: start implementing better error handling
changed the prioivate modules API
error string are now not spread over all
modules but are kept in  a single place.

This allows a better control of memory
and error reporting.
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
Simo Sorce
f0ad9495e4 r10303: check no attribute is given empty 2007-10-10 13:38:15 -05:00
Simo Sorce
1da4ac2cdc r10299: remove the public (un)lock functions and introduce a transaction based
private ldb API

ldb_sqlite3 is already working with this model and ldb_tdb will do
as soon as tridge finishes the tdb transaction code.

currently the transactions are always implicit and wrap any single
ldb API call except searching, the transaction functions are
currently not made public on purpose.

Simo.
2007-10-10 13:38:14 -05:00
Simo Sorce
f6ea6e9382 r10250: the comparison is caseless so we must caseless subtract
otherwise we get the wrong result when comparing upper
case chars with lower case chars
2007-10-10 13:38:11 -05:00
Simo Sorce
8ddf4de162 r10231: seem I flipped these, fix. 2007-10-10 13:38:09 -05:00
Andrew Bartlett
d6f57ec921 r9929: Fix indentation
Andrew Bartlett
2007-10-10 13:36:23 -05:00
Andrew Bartlett
b89e7a7fcd r9928: ncName is a DN, and needs to use DN matching rules.
Andrew Bartlett
2007-10-10 13:36:22 -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
Jelmer Vernooij
7ecb6988e7 r9766: Prevent erroneous OOM message
ldb_dup_val() sets out->data to NULL if in->length == 0
2007-10-10 13:34:57 -05:00
Jelmer Vernooij
7f864d446d r9685: Add tests for samba3sam mapping module
Fix a couple of bugs
Move samba3sam backend to lib/ldb/
Remove some more unused parameters
2007-10-10 13:34:41 -05:00
Andrew Tridgell
efa143cb3b r9671: patch from Kai Blin fixing a bug in our base64 encoder 2007-10-10 13:34:38 -05:00
Simo Sorce
d2055849fb r9394: avoid to use BOOL in ldb 2007-10-10 13:33:33 -05:00
Simo Sorce
796d0ea2fc r9393: Fix ldb standalone build 2007-10-10 13:33:33 -05:00
Simo Sorce
31c69d0655 r9392: Fix ldb_dn_compose to make build farm happy
Add ldb_dn_string_compose so that you can build a dn starting from a
struct ldb_dn base and a set of parameters to be composed in a format
string with the same syntax of printf
2007-10-10 13:33:33 -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
Andrew Tridgell
136ecf5cb2 r9387: regedit uses "New Key #nn" for newly created keys, which conflicts with the stricter
DN rules in ldb. Escape the DN components to cope.

Simo, sorry for making a change in ldb_dn.c while you have changes
pending. Please feel free to revert these and switch reg_backend_ldb.c
to use the new dn construction code.
2007-10-10 13:33:31 -05:00
Stefan Metzmacher
2a107472c3 r9318: fix searches with scope ONE and SUB,
the problem was that ldb_dn_compare_base() just looked at if
both dn's mtach some how, and the following happens:

basedn: CN=bar,DC=foo,DC=com
dn: DC=foo,DC=com

and dn: DC=foo,DC=com was return as result of a sub and base search

and also the ONE search with
basedn: DC=foo,DC=com

returned this

dn: CN=bla,CN=bar,DC=foo,DC=com

metze
2007-10-10 13:33:23 -05:00
Simo Sorce
d844d45d87 r8917: Better support for extended ldap search operations
Try to follow the RFC where possible and adapt to
  openLdap and AD way of handling this structure
2007-10-10 13:30:57 -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
ed1f2e029c r8667: Further simply the provision script, by removing the 'name' attribute.
This is now calculated on the fly for every add and modify.

Andrew Bartlett
2007-10-10 13:29:52 -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
326f0ad6fb r8600: fixed null termination on some error messages in ldb 2007-10-10 13:29:43 -05:00
Simo Sorce
a9e8cd0bad r8585: add to ldb and ldap comparison functionality
better pares filters
Approx is currently only a stub need to dig more info to
understand what it really means and how it works exactly
2007-10-10 13:29:41 -05:00
Simo Sorce
24a65b5ba6 r8529: Matching against the wrong union 2007-10-10 13:29:35 -05:00
Andrew Tridgell
19d789e825 r8517: fixed a crash bug in ldb_dn_compare_base() 2007-10-10 13:29:34 -05:00
Simo Sorce
76d496c308 r8515: ldb_dn_cmp now uses ldb_dn_compare so that the DNs are compared
on a content level not ona form level, his means that the 2 DNs:
a) cn= user, dc=this, dc = is,dc=test
b) cn=user,dc=this,dc=is,dc=test
are now identical even if the string form differ (spaces)
2007-10-10 13:29:33 -05:00
Tim Potter
bcfb3a45e4 r8414: Some C++ friendlyness fixes - 'not' is apparently a keyword in C++. 2007-10-10 13:23:00 -05:00
Love Hörnquist Åstrand
56fd21c806 r8394: Make sure the argument to ctype is*(3) macros are unsigned char as
required by ISO C99.
2007-10-10 13:20:14 -05:00
Simo Sorce
4eb5863042 r8373: New wildcard matching code.
This code applies correct ldap standard wildcard matching code
removes WILDCARD matching from tdb @ATTRIBUTES, that's now handled independently
adds some more tests for wildcard matching
fixes dn comparison code in ldb_match
2007-10-10 13:20:13 -05:00
Andrew Tridgell
ef804e8f36 r8364: fixed a valgrind bug spotted by simo 2007-10-10 13:20:12 -05:00
Andrew Tridgell
4b11c00421 r8342: allow ldb_ldif_read_string() to continue in the string, so you can
read multiple records
2007-10-10 13:20:08 -05:00
Stefan Metzmacher
5fcaa21d67 r8146: fix compiler warning
metze
2007-10-10 13:19:12 -05:00
Simo Sorce
2e328e6c2f r8084: do not leak memory on errors 2007-10-10 13:19:07 -05:00
Simo Sorce
b1a61cd5d0 r8083: check attribute type is valid (only ascii alphanum chars and '-' char)
fail if not
2007-10-10 13:19:06 -05:00
Simo Sorce
624a73148d r8082: large rewite of ldb_dn.c
- we do not support multpiple attribute components anymore, makes code a lot easier
  they will be readded later if we found out they are really used, so far my tests
  show w2k3 do not handle them as well

- fix escaping issues, move component value to be in an ldb_val structure
  still need to handle binary values case

- make cononicalize functions leak less memory by giving a specific memory context

- fix tests scripts so that test-ldap can start
- make test not delete databases on completion so that I can inspect them
2007-10-10 13:19:06 -05:00
Andrew Tridgell
912fa269d2 r8041: remove a mis-spelled debug message :-) 2007-10-10 13:19:01 -05:00
Andrew Tridgell
944c5844ab r8037: a fairly major update to the internals of ldb. Changes are:
- moved the knowledge of attribute types out of ldb_tdb and into the
   generic ldb code. This allows the ldb_match() message match logic
   to be generic, so it can be used by other backend

 - added the generic ability to load attribute handlers, for
   canonicalisation, compare, ldif read and ldif write. In the future
   this will be used by the schema module to allow us to correctly
   obey the attributetype schema elements

 - added attribute handlers for some of the core ldap attribute types,
   Integer, DirectoryString, DN, ObjectClass etc

 - added automatic registration of attribute handlers for well-known
   attribute names 'cn', 'dc', 'dn', 'ou' and 'objectClass'

 - converted the objectSid special handlers for Samba to the new system

 - added more correct handling of indexing in tdb backend based on the
   attribute canonicalisation function

 - added generic support for subclasses, moving it out of the tdb
   backend. This will be used in future by the schema module

 - fixed several bugs in the dn_explode code. It still needs more
   work, but doesn't corrupt ldb dbs any more.
2007-10-10 13:19:01 -05:00
Andrew Tridgell
2de986455c r8005: escape '"' characters in ldap expressions. Makes scripting easier. 2007-10-10 13:18:58 -05:00