1
0
mirror of https://github.com/samba-team/samba.git synced 2025-10-22 07:33:16 +03:00
Commit Graph

72 Commits

Author SHA1 Message Date
Simo Sorce
faed817506 r17514: Simplify the way to set ldb errors and add another
helper function to set them.
(This used to be commit 260868bae5)
2007-10-10 14:15:31 -05:00
Simo Sorce
49f68caed2 r17186: "async" word abuse clean-up part 2
(This used to be commit c6aa60c7e6)
2007-10-10 14:10:17 -05:00
Andrew Bartlett
0f215e9947 r16860: Fix (and reactivate) the RPC-SAMR test. We need to allow these sids
to be created as foreign, even if they are in a local domain.

Also we do need the user to exist for the life of the test, as we add
it to a group.

Andrew Bartlett
(This used to be commit ae470ff701)
2007-10-10 14:09:54 -05:00
Andrew Bartlett
bc3d68af6d r16854: Fix the RPC-SAMR-PASSWORDS test. It failed because we allocated users
in the Builtin domain a SID from the global domain.

Andrew Bartlett
(This used to be commit 9d31b9f047)
2007-10-10 14:09:54 -05:00
Andrew Bartlett
ebea352760 r16831: Use a valid memory context (found by the IBM checker).
Andrew Bartlett
(This used to be commit 9fdbedafad)
2007-10-10 14:09:48 -05:00
Andrew Bartlett
f2e8b3202c r16827: Factor out some code into common samdb functions:
- creation of ForeignSecurityPrincipals
 - template duplication code

Rework much of the LSA server to pass the RPC-LSA test.  Much of the
server code was untested.  In implementing the LSA Accounts feature, I
have opted to have it only create entires when privilages are applied,
and not to delete entries, but to delete the privilages.

We skip some parts of the test, but it is much better than not testing
it at all.

Andrew Bartlett
(This used to be commit 10eeea6da4)
2007-10-10 14:09:48 -05:00
Andrew Bartlett
f77c410084 r16264: Add, but do not yet enable, the partitions module.
This required changes to the rootDSE module, to allow registration of
partitions.  In doing so I renamed the 'register' operation to
'register_control' and 'register_partition', which changed a few more
modules.

Due to the behaviour of certain LDAP servers, we create the baseDN
entry in two parts: Firstly, we allow the admin to export a simple
LDIF file to add to their server.  Then we perform a modify to add the
remaining attributes.

To delete all users in partitions, we must now search and delete all
objects in the partition, rather than a simple search from the root.
Against LDAP, this might not delete all objects, so we allow this to
fail.

In testing, we found that the 'Domain Controllers' container was
misnamed, and should be 'CN=', rather than 'OU='.

To avoid the Templates being found in default searches, they have been
moved to CN=Templates from CN=Templates,${BASEDN}.

Andrew Bartlett
(This used to be commit b49a4fbb57)
2007-10-10 14:09:09 -05:00
Andrew Bartlett
422f1b5495 r16227: Don't segfault if the ldb_search() fails.
Andrew Bartlett
(This used to be commit af11f464a7)
2007-10-10 14:09:06 -05:00
Andrew Bartlett
9f4b56dd13 r16159: Even more work on samldb error reporting. Make sure to get the
original error strings back to the callers.

Andrew Bartlett
(This used to be commit defa632988)
2007-10-10 14:09:02 -05:00
Andrew Bartlett
c8d0489c10 r16129: Further clean up the samldb module.
This adds more/better setting of the ldb error string, and avoids
using gendb_search(), as this doens't return the error code.

Andrew Bartlett
(This used to be commit 2d2e71a2d5)
2007-10-10 14:09:00 -05:00
Andrew Bartlett
e5a00c8ca6 r16108: Fixes from working with the partition module.
We were not using the correct baseDN for the templates search.  Using NULL is no longer valid (like against AD).

While chasing that down, return proper error codes, and use the
ldb_set_errstr() to get a good error string back up to the UI layer.

Andrew Bartlett
(This used to be commit b31003403d)
2007-10-10 14:08:59 -05:00
Andrew Bartlett
e2e5c037f0 r16069: Remove unused destructor and an unused variable.
Andrew Bartlett
(This used to be commit 25e8597545)
2007-10-10 14:08:56 -05:00
Andrew Bartlett
629d6ad3cf r16061: Prove that removing the objectClass list in the samldb module breaks things.
With this fix, we now correctly detect computers again, and get the
correct objectCategory, which is important for the OSX AD plugin.

Andrew Bartlett
(This used to be commit 4e39d7bb24)
2007-10-10 14:08:55 -05:00
Simo Sorce
56c46ee241 r16042: Fix crashbug caused by incorret error reporting.
(This used to be commit d346531d0a)
2007-10-10 14:08:52 -05:00
Simo Sorce
ca5accf224 r16036: Add a couple of new functions to corretly deal with timeouts.
Check timeouts are correctly verified.
Some minor fixed and removal of unused code.
(This used to be commit b52e5d6a0c)
2007-10-10 14:08:52 -05:00
Simo Sorce
e47c00414f r16022: ooops, a bit too aggressive commit :-)
(This used to be commit 959c8c35ef)
2007-10-10 14:08:51 -05:00
Simo Sorce
68e72e389b r16021: While studying how to make samldb really async I found a critical situation handled in the incorrect way.
A while(1) loop may end up looping forever consuming all valid RIDs because of a secondary bug.
And anyway nextRid is supposed to always give back a new unique RID, if someone messed up the database let him
fix the problem first, trying to be smart here would probably end up in worst results.

Simo.
(This used to be commit 6b214f232e)
2007-10-10 14:08:51 -05:00
Simo Sorce
0c7b82e5f6 r15942: Remove the sync internal ldb calls altogether.
This means that some modules have been disabled as well as they
have not been ported to the async interface

One of them is the ugly objectclass module.
I hope that the change in samldb module will make the MMC happy
without the need of this crappy module, we need proper handling
in a decent schema module.

proxy and ldb_map have also been disabled
ldb_sqlite3 need to be ported as well (currenlty just broken).
(This used to be commit 51083de795)
2007-10-10 14:08:43 -05:00
Simo Sorce
3a4d7eb2c0 r15927: Optimize ldb module traverse while keeping the API intact.
I was sick of jumping inot each module for each request,
even the ones not handle by that module.
(This used to be commit 7d65105e88)
2007-10-10 14:08:41 -05:00
Simo Sorce
8081e4f402 r15795: Try to use the async code by default
It passess all my tests, but I still need to work on a lot of stuff.
Shouldn't impact anybody else work, so I want to commit now and see what happens

Will work to remove the old code from modules and backends soon, and make some
more restyling in ldb internals.

So, if there is something you don't like in this desgin please speak now.

Simo.
(This used to be commit 8b2a563e71)
2007-10-10 14:08:21 -05:00
Simo Sorce
d51f4fb2c7 r15789: hmm, damn, testing uncovcer all your bugs :-)
(This used to be commit 977982c884)
2007-10-10 14:08:20 -05:00
Simo Sorce
1a22d88c93 r15783: Fix previous commit, was the wrong way to deal with the problem
(This used to be commit 36537100db)
2007-10-10 14:08:19 -05:00
Simo Sorce
e2112ba3b7 r15782: More fixes for async cases
(This used to be commit 3c9434e264)
2007-10-10 14:08:19 -05:00
Stefan Metzmacher
12f377c638 r15639: fix warnings
metze
(This used to be commit 73ca71b42b)
2007-10-10 14:07:25 -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 7c050b541e)
2007-10-10 14:06:00 -05:00
Stefan Metzmacher
1af925f394 r14860: create libcli/security/security.h
metze
(This used to be commit 9ec706238c)
2007-10-10 13:59:44 -05:00
Jelmer Vernooij
8528016978 r14464: Don't include ndr_BASENAME.h files unless strictly required, instead
try to include just the BASENAME.h files (containing only structs)
(This used to be commit 3dd477ca51)
2007-10-10 13:57:27 -05:00
Simo Sorce
45933a9828 r14401: Let samldb intercept the async requests.
Samld is NOT yet async itself, but as that module only intercepts
user,groups or foreign principal creation and nothing else we can
accept it not to be asynchronous for now.

Simo.
(This used to be commit 250dac3072)
2007-10-10 13:57:18 -05:00
Jelmer Vernooij
4ac2be9958 r13924: Split more prototypes out of include/proto.h + initial work on header
file dependencies
(This used to be commit 1228358767)
2007-10-10 13:52:24 -05:00
Jelmer Vernooij
26af14c39b r13786: [merge] Add registration functions for LDB modules
Applications that use LDB modules will now have to run ldb_global_init()
before they can use LDB.

The next step will be adding support for loading LDB modules from .so
files. This will also allow us to use one LDB without difference between the
standalone and the Samba-specific build
(This used to be commit 52a2356505)
2007-10-10 13:52:11 -05:00
Simo Sorce
d590dea10b r13615: Make ldb_set_errstring get ldb instead of module as parameter.
The module was just used to get to the ldb so it was meningless.

Also add LDB_WAIT_ONCE e relative code in ldb_ildap.c
(This used to be commit d5b467b7c1)
2007-10-10 13:51:59 -05:00
Andrew Bartlett
3b0b7cb723 r13150: Correct comment.
Andrew Bartlett
(This used to be commit c34666abc1)
2007-10-10 13:51:29 -05:00
Andrew Bartlett
7dad66d8e3 r12998: A big update to samldb.c
This updates the module to handle both SID allocation and nextRid
updating while importing users.  (As imported users already have a
SID, so don't go via the allocation step).  We also ensure that SIDs
in the database are unquie at create time.

Furthermore, at allocation time, we double-check the SID isn't already
in use, and that we don't create a foriegnSecurityPrincipal for a
'local' sid.

Also create random samAccountName entries for users without one (we
were setting $000000-000000000000).

We may want to seperate the uniqueness code from the rest of samldb,
and into a module with the objectguid code, which needs similar
checks.  These checks also need to apply to modification, or those
modifications denied outright.

Also update part of the testsuite to validate this.

Andrew Bartlett
(This used to be commit 7a9c8eee4b)
2007-10-10 13:51:15 -05:00
Andrew Bartlett
c96b572386 r12943: Generate a SID for the domain join account using the modules, rather
than a hardcoded SID.

Fix the samldb module to return the what *was* the nextrid, rather
than the new nextrid (that is for next time).

Andrew Bartlett
(This used to be commit ffe9042e15)
2007-10-10 13:51:11 -05:00
Simo Sorce
dbef4d76de 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.
(This used to be commit 5e8b365fa2)
2007-10-10 13:49:48 -05:00
Simo Sorce
c908d0b2aa 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.
(This used to be commit 77125feaff)
2007-10-10 13:49:47 -05:00
Jelmer Vernooij
3b99d9c5bd r12658: Couple of fixes related to shared module builds.
(This used to be commit c297c93faf)
2007-10-10 13:49:35 -05:00
Jelmer Vernooij
d4de4c2d21 r12608: Remove some unused #include lines.
(This used to be commit 70e7449318)
2007-10-10 13:49:03 -05:00
Andrew Bartlett
1c027f35d7 r12598: Make the 'objectClass' part of the templating process actually work.
We need to add to the multivalued objectClass, not ignore it because
the user has already specified a value.

Also rename the template again.

This was caught by more stringent tests in the unicodePwd module, but
breaks MMC.  A later commit will sort the objectClass.

Andrew Bartlett
(This used to be commit 0aaff059ba)
2007-10-10 13:49:01 -05:00
Jelmer Vernooij
2cd5ca7d25 r12542: Move some more prototypes out to seperate headers
(This used to be commit 0aca5fd513)
2007-10-10 13:47:55 -05:00
Andrew Bartlett
77f4910b57 r12427: Move SAMR CreateUser2 to transactions, and re-add support for
different computer account types.  (Earlier code changes removed the
BDC case).

We don't use the TemplateDomainController, so just have a
TemplateServer in provision_templates.ldif

Andrew Bartlett
(This used to be commit c4520ba2e6)
2007-10-10 13:47:37 -05:00
Andrew Tridgell
9a52d1a467 r11592: fixed a crash bug from the ldb_result changes (res was being used after being freed)
(This used to be commit 5c7f3fef3e)
2007-10-10 13:45:55 -05:00
Simo Sorce
5c95905871 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.
(This used to be commit 22c8c97e6f)
2007-10-10 13:45:53 -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 f6818daecc)
2007-10-10 13:39:41 -05:00
Andrew Tridgell
78d0e79c9f 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
(This used to be commit 45f0c967b5)
2007-10-10 13:39:27 -05:00
Andrew Tridgell
5fd031c97d 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
(This used to be commit 7e44f9153c)
2007-10-10 13:39:26 -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 c2bb2a36bd)
2007-10-10 13:38:52 -05:00
Andrew Tridgell
37cefc8b41 r10411: we don't need the 10 times retry on rid allocation now, as
transactions ensure two account creations can't interfere with each
other
(This used to be commit 91c27bc976)
2007-10-10 13:38:42 -05:00
Simo Sorce
3d7935e656 r10306: change these modules to use new error API
(This used to be commit e86c9b4a7f)
2007-10-10 13:38:16 -05:00
Simo Sorce
4f85004da5 r10300: forgot to change the dsdb modules function names
(This used to be commit e9018e3d9f)
2007-10-10 13:38:15 -05:00