summaryrefslogtreecommitdiff
path: root/source3/tdb/tdb.c
AgeCommit message (Collapse)AuthorFilesLines
2003-09-09sync 3.0 into HEAD for the last timeGerald Carter1-18/+31
(This used to be commit c17a7dc9a190156a069da3e861c18fd3f81224ad)
2003-07-16trying to get HEAD building again. If you want the codeGerald Carter1-1/+2
prior to this merge, checkout HEAD_PRE_3_0_0_BETA_3_MERGE (This used to be commit adb98e7b7cd0f025b52c570e4034eebf4047b1ad)
2003-03-13Fixed crash bug when calling tdb_unlockkeys() with no locked keys.Tim Potter1-0/+2
woot! (This used to be commit eb432700c0010e536be3a0703f152c533357b851)
2003-03-11Note about using Valgrind with tdbs.Martin Pool1-0/+21
(This used to be commit 36c6f67d4af50d8fc4c8bd54486df315861d55c2)
2003-03-11When opening an existing DB, don't require the hash_size specified toMartin Pool1-2/+1
the open call to be the same as that of the existing tdb. The specified hash_size is only used if the tdb needs to be (re)created. With this patch in place, tdbtool can open the printing tdbs, which are created with a hash_size of 5000. Before it would fail with EIO. (This used to be commit e412dd6d7e5a41de94c07c64b186390ccce104cc)
2003-02-20Ensure tdb error code is set for corrupt and i/o errors before callingJeremy Allison1-0/+19
the log function. This allows the log function to take action. Jeremy. (This used to be commit 0fa310cbc3f7ced0b15be0ffaeb70dc82e1d5d12)
2003-02-14DocMartin Pool1-1/+5
(This used to be commit 11c1e712d48438bd80c4f347a2f31e308bd54d7a)
2003-02-04Ensure we overwrite a tdb if the hash size changes.Jeremy Allison1-1/+2
Jeremy. (This used to be commit 3497330ff53a264e433090066b7318c31d833411)
2003-01-11Added tdb_append() call. Efficiently adds to an entry. Used by new messagingJeremy Allison1-12/+137
code. Also added torture tests for it. Jeremy. (This used to be commit b515525a060a388c6ae0a03006a882c9be2e42b6)
2002-11-09Add chainlock_read functions to get a read lock. Used in *massively*Jeremy Allison1-1/+11
contended tdb's (and I've got one :-). Jeremy. (This used to be commit 064fa201ab73f476a168c40c2b227507e7342ec4)
2002-11-07Merge of scalable printing code fix... Needs testing.Jeremy Allison1-1/+2
Also tidied up some of Richard's code (I don't think he uses the compiler flags -g -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual like I do :-) :-). Jeremy. (This used to be commit 10024ed06e9d91f24fdc78d59eef2f76bf395438)
2002-10-04Add a timeout to tdb_lock_bystring(). Ensure we never have more thanJeremy Allison1-0/+4
MAX_PRINT_JOBS in a queue. Jeremy. (This used to be commit bb58a08af459b4abae9d53ab98c15f40638ce52b)
2002-09-26Make explicit the difference between a tdb key with no data attached, andJeremy Allison1-2/+11
a non existent entry. Stop a malloc(0) being called in the first case. Jeremy. (This used to be commit ece9507ec3d363fccf56b000ad9758780a9b3fb4)
2002-09-17Never, *ever* hold a mutex lock in the message database where there mayJeremy Allison1-0/+15
be traversals being attempted. Yes, this was from bitter experience (and an out of control server :-). Also allow callers to break out of a tdb_chainlock with sigalarm if desired. Jeremy. (This used to be commit a7781f91d8c1177210bffc199cd2f3b7ff993eaf)
2002-08-30ensure that we unlock in case we hit a tdb errorAndrew Tridgell1-0/+3
(This used to be commit 4aa7dfb7e7f4ad33b8768d20ec2eb9cb3fde6385)
2002-07-15don't report the faiilure of non-blocking locks. They are supposed toAndrew Tridgell1-1/+1
fail sometimes, thats why they are non-blocking :) (This used to be commit 775b918b8c63b1fcd9a8db1743505ab718978c19)
2002-07-11*Experimental* new large-scaling printer code. Splits printing.tdb intoJeremy Allison1-1/+2
a separate tdb per printer, but only keeps (currently one) tdb open at a time (although this is easily changed by changing a #define). Needs scalability testing with large numbers of printers now.... Jeremy. (This used to be commit b0909cfa14fc7ef29d2b98b56d52723570da782a)
2002-05-22auto-recover from the fairly common case of a non-clean tdb shutdownAndrew Tridgell1-0/+10
while deleting a record. This leaves us with a non-free record on the free list. (This used to be commit e99b6a2b91e4022ce0a9a14415df71314b5e013f)
2002-04-27Merge Herb's idmap endian fix.Jeremy Allison1-0/+6
Jeremy. (This used to be commit 7ddad4061a1b7ed25e4d6471c7a1f8f97a98ed37)
2002-04-19We cannot set errno=0 in any of the wrapper calls as this breaks UNIX errorJeremy Allison1-1/+0
returns to the client. Jeremy. (This used to be commit 1d66e53a64ec2878293e6d74a852b736ddab8f21)
2002-04-19First cut at fix for the EINTR problem... More needs to be done I think.Jeremy Allison1-1/+7
Jeremy. (This used to be commit 48475a7a697242b9fd7b1aec24389afb112569c4)
2002-04-10Added Shirish's client side caching policy change.Jeremy Allison1-1/+2
Jeremy. (This used to be commit 16015c07eab2e57fa3771051e3e08fde21757cfa)
2002-04-07better check of called function's returnSimo Sorce1-57/+125
tdbtorture say it's ok (This used to be commit af0fa4cf7c229fb908063bfcc3cbb214dae5ed0e)
2002-03-01Various comment fixes from Rafal Szczesniak <mimir@diament.ists.pwr.wroc.pl>Andrew Bartlett1-1/+1
(This used to be commit 3bf4b42771d115500941be374bfdd9b8c2fdba4a)
2002-02-27Memory leak on error condition fixed by Kian Win <codegrunt@rubbercookie.com>.Jeremy Allison1-0/+1
Jeremy. (This used to be commit 9dae1398b45515e5b93de038ec18df297d73026d)
2002-01-30Removed version number from file header.Tim Potter1-2/+1
Changed "SMB/Netbios" to "SMB/CIFS" in file header. (This used to be commit 6a58c9bd06d0d7502a24bf5ce5a2faf0a146edfa)
2002-01-22Raise log level of warning produced when the open() of the tdb fails.Tim Potter1-1/+1
Sometimes an open error is OK. (This used to be commit 5fb3be62910faf91e0e8381ba91f314f2092cb8e)
2002-01-09Move SAFE_FREE into tdb.c to stop exporting it into tdb.h namespace.Jeremy Allison1-0/+5
Jeremy. (This used to be commit 4f703b84cd7f258ae0169d52ca761b9404ccb348)
2002-01-02debug statement fixups.Jeremy Allison1-31/+21
Merge SAFE_FREE fix in tdb from 2.2, and IRIX fix. Jeremy. (This used to be commit eb6607466565bcd5b3800492d0bc1ae8a44da4f6)
2001-12-31more irix -64 portability fixesAndrew Tridgell1-1/+2
(This used to be commit 65e857b36e170e3ecd78bf6695ae73342e9c04cd)
2001-12-13Must check against -1 for fcntl error check.Jeremy Allison1-4/+4
Jeremy (This used to be commit 1d2504b5c76bf23ac49a401adce8a49f193bc22c)
2001-12-11Fix up warnings. Make tdb_openXX() names const.Jeremy Allison1-2/+2
Jeremy. (This used to be commit 9e3581827d91f5fd33fabd5ad4c9a79d63355731)
2001-12-10Doc.Martin Pool1-1/+3
(This used to be commit 6c684c89a4e6e212476335ee57c3b616015598f8)
2001-12-10Allow for internal databases which may have no name.Martin Pool1-5/+5
(This used to be commit caa08bb56e2dc533c3754f90f6139fe04a317545)
2001-12-10Log more error messages.Martin Pool1-0/+1
(This used to be commit 8118676f780a80662f28c3cc1a74cc12d0e1ef51)
2001-12-10Log more error messages.Martin Pool1-2/+12
(This used to be commit b50e566ab93e9a8068e26c9c902db81311cb394c)
2001-12-10Allocate tdb name up front in case log functions want to use it.Martin Pool1-6/+5
(This used to be commit a228c7efcc06b901ca51a6da77f8a52b77912f55)
2001-12-10tdb_open_ex: More cleanups: just dynamically allocate the TDB_CONTEXTMartin Pool1-14/+27
up front, rather than working on the stack and then copying across. (This used to be commit b1d7d800680f77e02185bb237982b284414aac1e)
2001-12-10Refactor code to check whether already open into its own function.Martin Pool1-8/+21
(This used to be commit 52ef112e10dbe273b6e66c4a5081f468e4630b7d)
2001-12-10tdb_open_ex should always "goto fail" in case of error, rather thanMartin Pool1-1/+2
just returning. I don't think this would leak at the moment, but it's an accident waiting to happen. (This used to be commit fe901ec194d1b8ef94386b097e72508075eb8a54)
2001-12-10Doc.Martin Pool1-0/+4
(This used to be commit bb6c0df4bc4eb8ce789886ec17e434dc27bb34b0)
2001-12-10tdb_open_ex: Continue previous refactoring so that we consistentlyMartin Pool1-12/+12
just say "tdb" not "&tdb". (This used to be commit fac685d30f58c25d73d1690ed008c797291558e4)
2001-12-10tdb_open_ex: Refactor to use a pointer to tdb, rather than an autoMartin Pool1-57/+58
tdb, to be consistent with the rest of the code. (This used to be commit d159415049c25caeaf01b6bc947da3472c54d1f8)
2001-12-04Put back changes to set errno, which seem to do no harm.Martin Pool1-12/+42
(This used to be commit 3dbb5dfcfb29671f136d1ed6c865362eaf027446)
2001-12-04undoMartin Pool1-156/+69
(This used to be commit fc176f15f27686049453552219b56b9de33ceffa)
2001-12-04Implement suggestion from tridge to leave the old tdb_open interfaceMartin Pool1-2/+9
as it was, and add tdb_open_ex() which takes a log callback. I guess this makes more sense since it's a public interface. (This used to be commit 391a65395e6cdc0300f81eb1072a3366cacd1203)
2001-12-04Better error handling:Martin Pool1-66/+124
- tdb_open api changed so that you now pass an error handling callback when opening the file, so that errors detected during opening have somewhere to go. (All calls from the body of Samba to this function go through a wrapper in tdbutil, which has been updated.) - Clean up logic for deciding how to open tdb. Emit log messages if something goes wrong (e.g. bad magic.) - tdbtool now logs errors to stderr. (This used to be commit 0aa800618eab1043d802c04fb1d125cd07936769)
2001-12-04Set errno in tdb_open in cases where we detect an error in opening theMartin Pool1-11/+33
database, but no underlying system call sets errno. The particular case I had was a mangled .tdb, but there are others. For this one, set EIO. It's a shame Unix messages aren't more detailed -- "bad data format" would be better. (This used to be commit 5630a988be05c21b60aba6304d4aaadce6024817)
2001-11-09Removed #ifdef TDB_DEBUG around tdb_dump_all() and tdb_printfreelist()Tim Potter1-5/+3
so that tdbtool can be compiled without having to make clean. (This used to be commit dad688d8c6b3c98173a846ad833599a4016d2e1a)
2001-10-16Don't core dump when using spinlocks on a read-only tdb. Unfortunately thisJeremy Allison1-4/+16
means that a read-write opener and a read-only opener are using different locking mechanisms - this needs to be addressed, but it's hard as the read-write opener using the spinlocks is usually first, so there's no way to force them to change down to the fcntl method. Read only access is less important anyway and can never corrupt the tdb anyway, so errors in read-only record reads are more tolerable. Jeremy (This used to be commit 21f776df5932e024a0d1fef9097377d35b5cf511)