1
0
mirror of https://github.com/samba-team/samba.git synced 2025-07-02 20:59:09 +03:00
Commit Graph

74 Commits

Author SHA1 Message Date
5c6364ba06 Remove references to the unused @SUBCLASS feature.
This was removed from ldb_tdb a while ago

Andrew Bartlett
(This used to be commit fcb87e7786)
2008-08-18 12:01:27 +10:00
e36b159e8c ldb_sqlite: fix the build
metze
(This used to be commit 14c8e3101c)
2008-02-21 15:52:32 +01:00
39a817d310 Fix use of some modules (needed _PUBLIC_).
(This used to be commit ce332130ea)
2008-02-20 04:33:43 +01:00
995788536e Remove more function-based inits.
(This used to be commit b1a7810f3e)
2008-02-20 02:57:07 +01:00
6c973f4e8c r23798: updated old Temple Place FSF addresses to new URL
(This used to be commit 40c0919aaa)
2007-10-10 14:59:15 -05:00
b8d69a7ea2 r23795: more v2->v3 conversion
(This used to be commit 84b468b2f8)
2007-10-10 14:59:14 -05:00
56ab0cd77c r22746: fix the build of the sqlite module
metze
(This used to be commit cd958034df)
2007-10-10 14:52:08 -05:00
538e3bf654 r20185: - SMB_ENABLE() needs upper case YES/NO
- fix compilation of the ldb_sqlite3 module

metze
(This used to be commit 39c41be0ac)
2007-10-10 14:29:19 -05:00
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 3929c086d5)
2007-10-10 14:28:22 -05:00
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 a580c871d3)
2007-10-10 14:28:22 -05:00
a326893159 r19461: Make sqlite3 work again (semi-async)
Still not all tests pass
(This used to be commit cbfc7305ad)
2007-10-10 14:21:36 -05:00
e36ea2e8eb r19362: - don't need to store the baseinfo message after cache load
- set better names on talloc structures in ldb modules, making leaks
  easier to track down
(This used to be commit 3bf76db42d)
2007-10-10 14:21:17 -05:00
05cdd9ccaf r18439: 2nd try at a talloc_move() api. This type with the ** ptr interface
exposed.

Unfortunately this generates a large number of type punning
warnings. We'll have to find some magic to hide those.
(This used to be commit 254cbf09de)
2007-10-10 14:18:29 -05:00
7f63cebd33 r18436: converted ldb to use talloc_move() instead of talloc_steal() when
appropriate.

Note that I also removed the error checks that were being done on the
result of talloc_steal(). They are pointless as talloc_steal() doesn't
have any failure modes that wouldn't cause a segv anyway, and they
tend to clutter the code
(This used to be commit c0d9e7d473)
2007-10-10 14:18:29 -05:00
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
49f68caed2 r17186: "async" word abuse clean-up part 2
(This used to be commit c6aa60c7e6)
2007-10-10 14:10:17 -05:00
c93817b36d r17185: Oh, I wanted to do this for sooo long time.
Finally acknowledge that ldb is inherently async and does not have a dual personality anymore
Rename all ldb_async_XXX functions to ldb_XXX except for ldb_async_result, it is now ldb_reply
to reflect the real function of this structure.

Simo.
(This used to be commit 25fc735404)
2007-10-10 14:10:16 -05:00
7d7e43d94f r16090: Fix standalone build after the rename of enum ldb_request_type in
r15944.

Hey idra I think a better rename would be to keep the LDB_REQ suffix
here to remain consistent with the other enums (e.g ldb_reply_type,
ldb_async_wait_type and ldb_async_state).
(This used to be commit d44ee8c43b)
2007-10-10 14:08:58 -05:00
d912d6fcef r16087: Fix silly cut-and-paste typo that cost me much of my afternoon...
This only affects my new partitions module, which I will post soon,
but should be fixed anyway.

Andrew Bartlett
(This used to be commit 8912c4e057)
2007-10-10 14:08:58 -05:00
247af0d569 r16083: Make it possible to initialise a backend module, without it setting up
the whole ldb structure.

Because the sequence number was a fn pointer on the main ldb context,
turn it into a full request (currently sync).

Andrew Bartlett
(This used to be commit fbe7d0ca90)
2007-10-10 14:08:57 -05:00
971d30bb20 r15854: more talloc_set_destructor() typesafe fixes
(This used to be commit 61c6100617)
2007-10-10 14:08:32 -05:00
3baf060604 r14161: return early if we know the job is already finished
(This used to be commit 09f6f552d7)
2007-10-10 13:56:56 -05:00
257598424e r13996: simplify ldb_async_wait() some more
(This used to be commit ef1b3e6368)
2007-10-10 13:52:36 -05:00
7b82c4beb9 r13992: change the way ldb_async_wait() works.
I think I should change the name of this function
to ldb_async_process(), any opinions ?
(This used to be commit 3347322d13)
2007-10-10 13:52:34 -05:00
5d0aa16dfc r13839: Use registration mechanism for backends as well (in the same sense
my previous patch added it for modules). This is the next step towards
LDB backends and modules as run-time loadable .so files.
(This used to be commit fb2f70de4f)
2007-10-10 13:52:14 -05:00
e07f36a48c r13826: Try to keep this backend updated
This need more testing and to be built by default when possible
(This used to be commit 76cbab0e25)
2007-10-10 13:52:14 -05:00
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
00fe70e5b9 r13609: Get in the initial work on making ldb async
Currently only ldb_ildap is async, the plan
is to first make all backend support the async calls,
and then remove the sync functions from backends and
keep the only in the API.

Modules will need to be transformed along the way.

Simo
(This used to be commit 1e2c13b2d5)
2007-10-10 13:51:59 -05:00
04396c36d3 r13333: revert previous commit I will use ldb_caseless_cmp in attrib_handlers
to correctly support utf8 comparisons

add an ldb_attr_Casefold function for attribute names and use it
instead of casefold in the right places
(This used to be commit 3b4eb2413b)
2007-10-10 13:51:45 -05:00
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 ac9b8a41ff)
2007-10-10 13:51:44 -05:00
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 380938e97f)
2007-10-10 13:50:03 -05:00
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
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
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
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
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
d78ea3e34a r10406: added --nosync option to all ldb tools, so that you can control if
transactions are synchronous or not on the command line.

add LDB_FLG_NOSYNC flag to ldb_connect() so we can make our temporary
ldb databases non-synchronous
(This used to be commit dba41164e0)
2007-10-10 13:38:41 -05:00
16aff2a184 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.
(This used to be commit 3fc676ac1d)
2007-10-10 13:38:16 -05:00
8919d6bf9a 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.
(This used to be commit 1da4ac2cdc)
2007-10-10 13:38:14 -05:00
5c708830bc r10277: do not ovverride LIKE, thanks to derrel I found out how to do
the same thing with a harmless user function
(This used to be commit 158693b406)
2007-10-10 13:38:13 -05:00
d8da5e4fb7 r10251: some more work on ldb_sqlite3
I must say that writing a new module is a very good way
to find lot of subtle bugs laying in the code

We need more tests!

commit oLschema2ldif.c to keep it safe from data losses (rm -fr :-)

update test generic to reflect the fix made on comparsion functions
(This used to be commit 4357a2db5e)
2007-10-10 13:38:11 -05:00
f77e859e48 r10236: fix (C) note
(This used to be commit 466e6812c3)
2007-10-10 13:38:10 -05:00
36d6ebf376 r10233: add commented PRAGMA to avoid fsyncs
(This used to be commit e5d8d83460)
2007-10-10 13:38:10 -05:00
38b04883fe r10232: Some work on ldb_sqlite3.
It is still far from being usable in samba4 but I want to commit
so that the work does not get lost by mistake.
This is also a good way to get comments if somebody is interested.

Sorry Derrell I ended up rewriting large parts of the code but I find
this style much more readable. Thanks for the hard work done. Your
work was a good reference for me.

ah the current code also shows some good numbers

sqlite3 generic test:
uid search took 0.05 seconds
real    0m12.492s
user    0m0.492s
sys     0m0.345s

with tdb we still get better numbers:
uid search took 0.46 seconds
real    0m0.892s
user    0m0.360s
sys     0m0.468s

but most of the time is spent in adding operations and I think
there's still a lot of space for improvement.

Simo.
(This used to be commit ace9990060)
2007-10-10 13:38:10 -05:00
1603fd9466 r7897: work in progress
(This used to be commit 8e1431efcf)
2007-10-10 13:18:47 -05:00
ce2e35309e r7851: We are case preserving let the DN be returned the same the user put it into.
sss
(This used to be commit 5b41e32024)
2007-10-10 13:18:42 -05:00
f1a853664c r7844: eliminate superfluous attribute tables
(This used to be commit 863beef35b)
2007-10-10 13:18:42 -05:00
fdc0450db2 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.
(This used to be commit 1dd8650055)
2007-10-10 13:18:41 -05:00
ed3d8091ce 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
(This used to be commit f648fdf187)
2007-10-10 13:18:24 -05:00
f021dffb69 r7601: ldb_sqlite3 work in progress
(This used to be commit 0a64948152)
2007-10-10 13:18:13 -05:00