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

539 Commits

Author SHA1 Message Date
Andrew Tridgell
60863b6faf r8043: increase shell compatibility of ldb tests 2007-10-10 13:19:02 -05:00
Andrew Tridgell
912fa269d2 r8041: remove a mis-spelled debug message :-) 2007-10-10 13:19:01 -05:00
Andrew Tridgell
f3e3b2ccd9 r8039: allow ldb test suite to be run outside of the ldb directory 2007-10-10 13:19:01 -05:00
Andrew Tridgell
7d2bee2c56 r8038: - fixed indexing on binary values that need base64 encoding and canonicalisation
- added support for recognising the S- form of objectsid in search
  expressions. I thought this could be done with just a comparison
  modified comparison function, but it turns out it also needs a
  canonicalisation function so that indexing can work
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
a9c3244503 r8035: added indexing tests. current ldb fails the integer indexing, will be fixed shortly 2007-10-10 13:19:00 -05:00
Andrew Tridgell
ad6e62fdcf r8033: - add easier valgrind testing
- add tests for the @SUBCLASSES ltdb special
2007-10-10 13:19:00 -05:00
Andrew Tridgell
5efea40ea6 r8011: arrgh, commit the right version this time 2007-10-10 13:18:58 -05:00
Andrew Tridgell
25d3872a6e r8010: added testing of wildcard attributes 2007-10-10 13:18:58 -05:00
Andrew Tridgell
5801167c8d r8009: expanded the ldb test suite. It worried me that some changes I have
pending, which I know break lots of features, still passed our test
suite! Now they don't.
2007-10-10 13:18:58 -05:00
Andrew Tridgell
2de986455c r8005: escape '"' characters in ldap expressions. Makes scripting easier. 2007-10-10 13:18:58 -05:00
Jelmer Vernooij
e8e3524b23 r7958: More debian packaging updates; packages build now with
a few minor issues.

Move ldb manpages one level higher - there is no longer a need to have
subdirectories.
2007-10-10 13:18:54 -05:00
Jelmer Vernooij
fd3f463643 r7943: Add 'make manpages', fix 'make installman' and 'make uninstallman'.
Not part of the "all" make target yet, as it requires xsltproc
2007-10-10 13:18:53 -05:00
Simo Sorce
3898cdb0dc r7937: main file was missing 2007-10-10 13:18:53 -05:00
Simo Sorce
7ccf21ab4e r7936: new ldb_dn_explode and ldb_dn_casefold functions and co 2007-10-10 13:18:52 -05:00
Andrew Tridgell
dd0ac3f68d r7926: poptGetNextOpt() returns int, not char
this was breaking ldbadd on some platforms
2007-10-10 13:18:51 -05:00
Derrell Lipman
8e1431efcf r7897: work in progress 2007-10-10 13:18:47 -05:00
Andrew Tridgell
cc2e08d68e r7873: hopefully fixed build of ldb_explode_dn() on AIX
I'd really rather see this code completely replaced, but I'll leave
that to simo (he has volunteered) :-)
2007-10-10 13:18:46 -05:00
Andrew Tridgell
56f4af5f21 r7868: canonicalise the message before using ldb_add() in the ldbadd utility. 2007-10-10 13:18:45 -05:00
Andrew Tridgell
d40bc2fa8d r7860: switch our ldb storage format to use a NDR encoded objectSid. This is
quite a large change as we had lots of code that assumed that
objectSid was a string in S- format.

metze and simo tried to convince me to use NDR format months ago, but
I didn't listen, so its fair that I have the pain of fixing all the
code now :-)

This builds on the ldb_register_samba_handlers() and ldif handlers
code I did earlier this week. There are still three parts of this
conversion I have not finished:

 - the ltdb index records need to use the string form of the objectSid
   (to keep the DNs sane). Until that it done I have disabled indexing on
   objectSid, which is a big performance hit, but allows us to pass
   all our tests while I rejig the indexing system to use a externally
   supplied conversion function

 - I haven't yet put in place the code that allows client to use the
   "S-xxx-yyy" form for objectSid in ldap search expressions. w2k3
   supports this, presumably by looking for the "S-" prefix to
   determine what type of objectSid form is being used by the client. I
   have been working on ways to handle this, but am not happy with
   them yet so they aren't part of this patch

 - I need to change pidl to generate push functions that take a
   "const void *" instead of a "void*" for the data pointer. That will
   fix the couple of new warnings this code generates.

Luckily it many places the conversion to NDR formatted records
actually simplified the code, as it means we no longer need as many
calls to dom_sid_parse_talloc(). In some places it got more complex,
but not many.
2007-10-10 13:18:44 -05:00
Simo Sorce
5b41e32024 r7851: We are case preserving let the DN be returned the same the user put it into.
sss
2007-10-10 13:18:42 -05:00
Derrell Lipman
863beef35b r7844: eliminate superfluous attribute tables 2007-10-10 13:18:42 -05:00
Andrew Tridgell
42c42f6611 r7834: added comment about the "((" search test 2007-10-10 13:18:41 -05:00
Andrew Tridgell
91cc009fed r7833: changed ldbsearch and ldbedit to have command line syntax closer to
ldapsearch. They look for an '=' in the first argument to see if it is
a search expression, and if not then it does an 'all records' search
2007-10-10 13:18:41 -05:00
Andrew Tridgell
20c84f5c52 r7832: missed one 2007-10-10 13:18:41 -05:00
Andrew Tridgell
2a426f654d r7831: use cn=TEST as base of test DNs so we don't interfere with potentially real records 2007-10-10 13:18:41 -05:00
Derrell Lipman
1dd8650055 r7828: Although there is still plenty to do, ldb_sqlite3 now passes the set of tests
in tests/test-sqlite3.sh (tests/test-generic.sh).

There are lots of optimizations still TBD, and some things are REALLY slow
right now (e.g. each add() operation takes 1/3 - 1/2 second) but it's ready for
interested parties to poke it and prod it and see how (un)reasonable it is.
Play away.

Still to be implemented or improved:
 - tdb specials (@MODULES, @SUBCLASSES, etc.)
 - all DNs are case-folded in their entirty right now (since doing otherwise
   would require @ATTRIBUTES to be implemented)
 - speed improvements and optimizations.  I am quite confident that the
   excessively slow add() operation can be much improved, and other areas
   can be somewhat improved.
2007-10-10 13:18:41 -05:00
Andrew Tridgell
0a8c722c80 r7808: fixed the build of ldb after the binary file support in ldif was added 2007-10-10 13:18:38 -05:00
Simo Sorce
2b2675055e r7806: add test for binary files as attribute values 2007-10-10 13:18:38 -05:00
Simo Sorce
38a1439626 r7805: add support to read binary files into attributes data like ldap tools does 2007-10-10 13:18:37 -05:00
Andrew Tridgell
07d459406b r7804: added the samba specific ldif handlers into the tree, but don't enable
them just yet. I have tested them, and they work fine, but enabling
them will break code in rpc_server/ and samdb, so we need to fix that
first
2007-10-10 13:18:37 -05:00
Andrew Tridgell
37e283089a r7803: added support in ldb for callers to setup ldif read/write functions,
so that ldbedit, ldbsearch etc can display nice human readable ldif,
while storing the data as binary blobs. This will be used for storing
NDR encoded objectSid and similar attributes, while making the command
line interface sane
2007-10-10 13:18:37 -05:00
Andrew Tridgell
ddb26db763 r7784: give an error in ldb_tdb for invalid modify flags. The "whenChanged"
bug was being silently ignored with the tdb backend because of this
bug. A case where the ldap backend was right, and the tdb backend was
wrong!
2007-10-10 13:18:36 -05:00
Andrew Tridgell
9fa21b2458 r7776: add a method for getting arbitrary opaque data into a ldb context, for use by backends.
Currently only EventContext is used in this way.
2007-10-10 13:18:35 -05:00
Andrew Tridgell
97e4ba84fb r7767: fixed ldb dependencies 2007-10-10 13:18:33 -05:00
Andrew Tridgell
818ae965af r7759: allow ldb_errstring() to be used when not connected 2007-10-10 13:18:32 -05:00
Andrew Tridgell
f22c3b84c8 r7749: some bug fixes from testing with socket:testnonblock
- fixed some infinite loops in asn1.c

- ensure asn1 callers know if an error is end of buffer or bad data

- handle npending 0 in ldap server
2007-10-10 13:18:30 -05:00
Andrew Tridgell
3d60b3a8ee r7743: be consistent in how stdin is supported for ldbadd and ldbmodify 2007-10-10 13:18:29 -05:00
Andrew Tridgell
a440133140 r7741: fixed the verbose option in ldbedit 2007-10-10 13:18:29 -05:00
Andrew Tridgell
cf17f90a83 r7740: get rid of our duplicate base64 routines 2007-10-10 13:18:29 -05:00
Andrew Tridgell
fe2b77af23 r7739: fixed an off by one bug in the base64 decoder for ldb ldif 2007-10-10 13:18:28 -05:00
Andrew Tridgell
57132344b4 r7728: handle 64 bit integers in INTEGER match 2007-10-10 13:18:27 -05:00
Andrew Tridgell
8698a20fcc r7726: - removed some unused variables
- handle ldb_errstring() calls on failed connect
2007-10-10 13:18:27 -05:00
Andrew Tridgell
f6c2c51907 r7719: make the ildap ldb backend use the defaultNamingContext if the basedn
is not specified, so:

  ldbsearch ldap://hostname '(objectclass=user)'

works without knowing the domain name
2007-10-10 13:18:26 -05:00
Andrew Tridgell
6277c3923e r7714: enable samba credentials handling in ldb tools. So you can now do a
encrypted ldbedit against w2k3
2007-10-10 13:18:25 -05:00
Andrew Tridgell
aec0544962 r7712: ldb/common/util.c is gone 2007-10-10 13:18:25 -05:00
Andrew Tridgell
5e8db1c9b3 r7710: new command line handling code for ldb 2007-10-10 13:18:24 -05:00
Andrew Tridgell
f648fdf187 r7709: - convert ldb to use popt, so that it can interact with the samba
cmdline credentials code (which will be done soon)

- added a ldb_init() call, and changed ldb_connect() to take a ldb
  context. This allows for much better error handling in
  ldb_connect(), and also made the popt conversion easier

- fixed up all the existing backends with the new syntax

- improved error handling in *_connect()

- fixed a crash bug in the new case_fold_required() code

- ensured that ltdb_rename() and all ltdb_search() paths get the read lock

- added a ldb_oom() macro to make it easier to report out of memory
  situations in ldb code
2007-10-10 13:18:24 -05:00
Andrew Tridgell
844d2a2083 r7669: removed ldap from our configure tests
This takes our link dependencies from this:

tridge@blu:~/samba/samba4/source$ ldd bin/ldbsearch
        libdl.so.2 => /lib/tls/libdl.so.2 (0xb7fc9000)
        libldap_r.so.2 => /usr/lib/libldap_r.so.2 (0xb7f92000)
        liblber.so.2 => /usr/local/lib/liblber.so.2 (0xb7f85000)
        libpam.so.0 => /lib/libpam.so.0 (0xb7f7d000)
        libc.so.6 => /lib/tls/libc.so.6 (0xb7e48000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000)
        libresolv.so.2 => /lib/tls/libresolv.so.2 (0xb7e36000)
        libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0xb7e09000)
        libsasl2.so.2 => /usr/lib/libsasl2.so.2 (0xb7df3000)
        libgnutls.so.11 => /usr/lib/libgnutls.so.11 (0xb7d8c000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7d7d000)
        libtasn1.so.2 => /usr/lib/libtasn1.so.2 (0xb7d6d000)
        libgcrypt.so.11 => /usr/lib/libgcrypt.so.11 (0xb7d20000)
        libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0xb7d1c000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb7d09000)
        libnsl.so.1 => /lib/tls/libnsl.so.1 (0xb7cf5000)

to this:

tridge@blu:~/samba/samba4/source$ ldd bin/ldbsearch
        libdl.so.2 => /lib/tls/libdl.so.2 (0xb7fc9000)
        libpam.so.0 => /lib/libpam.so.0 (0xb7fc0000)
        libc.so.6 => /lib/tls/libc.so.6 (0xb7e8b000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000)

this finally gets rid of the implicit dependency on pthreads! Yay!
2007-10-10 13:18:20 -05:00
Andrew Tridgell
74841dbb2a r7667: added a ldb ildap backend, using our internal ldap client library. Next step is to
remove the check for the ldap libraries in configure
2007-10-10 13:18:19 -05:00