1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-27 14:04:05 +03:00

187 Commits

Author SHA1 Message Date
Martin Pool
28e676d9c3 Implement suggestion from tridge to leave the old tdb_open interface
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-04 11:25:44 +00:00
Martin Pool
7d9e09f527 Better error handling:
- 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-04 07:40:25 +00:00
Martin Pool
8164fa34d9 Magic file for TDB databases.
(This used to be commit e9085129ddf15d499d77c77694c05b028593718c)
2001-12-04 04:03:29 +00:00
Martin Pool
6c3163cc97 Set errno in tdb_open in cases where we detect an error in opening the
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-12-04 02:58:42 +00:00
Jeremy Allison
15dba42364 Added prototypes for new fns. Thanks Elrond.
Jeremy.
(This used to be commit 2a7bd621b400173d61bb0adab3eded0baeb48d0b)
2001-12-03 20:39:15 +00:00
Tim Potter
25ea74978f Don't display any data if tdb_fetch() failed in the tdbtool "fetch"
command.
(This used to be commit a1cf70ab65058258e56ffcff5b28087b29425b1c)
2001-12-03 04:15:26 +00:00
Tim Potter
3171064521 Updated definition of fstring.
print_asc(): Don't try to print a trailing NULL character
print_key(), print_rec(): Display key in ASCII
(This used to be commit 303b3a35951211775a4e87bcca47cc21236aa422)
2001-12-03 00:23:14 +00:00
Tim Potter
d0ea72d0b7 Added a 'keys' command to tdbtool which prints out all keys in the tdb.
(This used to be commit 1d2305c233ef40ccb016688f918e34392d1a691e)
2001-11-28 03:58:33 +00:00
Tim Potter
e91226daea Removed #ifdef TDB_DEBUG around tdb_dump_all() and tdb_printfreelist()
so that tdbtool can be compiled without having to make clean.
(This used to be commit dad688d8c6b3c98173a846ad833599a4016d2e1a)
2001-11-09 01:26:13 +00:00
Jeremy Allison
d96f052603 Don't core dump when using spinlocks on a read-only tdb. Unfortunately this
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)
2001-10-16 22:10:23 +00:00
Jeremy Allison
754c2feee7 Fix for tdb_oob() on TDB_INTERNAL databases.
Jeremy.
(This used to be commit 2b135fba625191a13e4110c68531a0e6d5fb373d)
2001-10-12 00:01:35 +00:00
Anton Blanchard
032f65d5ff PPC spinlocks work again. Sorry, my bad.
(This used to be commit 6612abf8270c9c697fdb528aba3af07ea5be7f33)
2001-10-06 10:36:15 +00:00
Jeremy Allison
3a17bab00f Ensure accessing NT member servers works with a Samba PDC. Don't
change these timestamp settings without good reason.
Remove CLEAR_IF_FIRST flag is tdb is read-only.
Jeremy.
(This used to be commit a71d9d98b013a6c30fd85524b7cdc929bdbd9bcb)
2001-10-03 22:58:37 +00:00
Andrew Tridgell
c61d1a1679 fixed compilation of tdbtorture
(This used to be commit 2f44756233e2655856f003bb15c3898118756b98)
2001-09-27 01:57:02 +00:00
Andrew Tridgell
7ef445e226 tdbtorture updates from when I was trying to track down the hp tdb bug
(This used to be commit b8d9d1fca3eec5150fb9784f1d0157a82e60cebd)
2001-09-24 04:56:56 +00:00
Jeremy Allison
0ef1acbabb Put pwrite code back in expand_file.
Jeremy.
(This used to be commit a3267551d88dffb226e4a1c3852fe9c817517d02)
2001-09-19 06:55:25 +00:00
Andrew Tridgell
2bc9ef3846 added a hook to reopen all tdb's after the server fork
this prevents the fd seek pointer problem
(This used to be commit f49518e497deeb46292456c3650769d50ec2a955)
2001-09-19 05:43:15 +00:00
Jeremy Allison
af0d86a9fc Fix based on Andrew's insight as re-using a tdb after fork means
parent and child share seek pointer. Damn....
Jeremy.
(This used to be commit 0e75c0fc1aa742fb0c29716c99a81cf5b33ef6e6)
2001-09-19 03:33:47 +00:00
Jeremy Allison
e9479e8d8a Return correct error code on lock fail in tdb_expand.
Jeremy.
(This used to be commit b45793ec3f6ff04587bee8f463ef6410b06097d6)
2001-09-19 00:02:28 +00:00
Jeremy Allison
a27509937c Roll back earlier fix after talking with Andrew. The write_lock_record and
unlock are explicitly non-blocking. I will add a comment to this effect later.
Jeremy.
(This used to be commit e4b41a8f31729dfec92c4cb1f8b4759446cac0ff)
2001-09-18 22:59:12 +00:00
Jeremy Allison
c64cd552c4 Fixed a couple of nasty bugs only easily seen with no mmap. Firstly,
map_ptr not neccessarily set to NULL if no mmap, secondly, iterating
through a tdb was using SETLK, instead of SETLKW - would almost never
fail with mmap as the time holding the lock was so short, but was
easily seen with read/write. One finaly bug needs tracking down w.r.t.
traversal......
Jeremy.
(This used to be commit 313c2e8652092a307165b6039dd7dfbbd0754ec3)
2001-09-18 21:17:58 +00:00
Andrew Tridgell
75a8b24ed9 flush stdout in test logging fns
(This used to be commit d32ac363a5b4c6978077b1d695c503e22c5782ca)
2001-09-06 05:59:32 +00:00
Andrew Tridgell
fef37db972 use a different test tdb name for tdbtest and tdbtorture
(This used to be commit 931bded1c92c812d6aae101a40f453c925054627)
2001-09-06 05:58:05 +00:00
Andrew Tridgell
1772584c35 actually obey the "use mmap" smb.conf option
(This used to be commit b36c98036bcbaa5545c9637cb632361122033cfd)
2001-09-06 05:45:07 +00:00
Tim Potter
74bee75f10 Renamed rwlock_t type to tdb_rwlock_t to avoid conflict with Solaris 8
header files.
(This used to be commit 888c852f01cec89b380fdf2564444b86d396c442)
2001-08-29 23:49:26 +00:00
Anton Blanchard
66673eeeb4 Add missing gcc memory barriers, this bug showed up when doing a
heavy netbench run. :)

Rework ppc spinlocks to be faster.
(This used to be commit a58b89d33979f53daa2573c31eba024a26c46502)
2001-08-19 13:45:38 +00:00
Tim Potter
ef67997d0f Patch for having spaces in tdb keys, NULL termination fixes and other
stuff.  From Andrew Esh <AEsh@tricord.com>
(This used to be commit 78207d0fc8c4641fbd8f63f469c4135357edfad8)
2001-08-07 23:21:45 +00:00
Volker Lendecke
efe1d83dbb Print an error message if database could not be opened.
Volker
(This used to be commit b4f06c3ecf8af60352bc9e3af9c35c00827faad2)
2001-08-04 18:17:30 +00:00
Jeremy Allison
3538c8bea9 Added mmap fix to pass lock test from HP.
Ok - now we're no longer trying to reach a silly 1k loc target,
change the formatting to be *readable* - eg.
change if (x) y else z to be :
if (x)
    y
else
    z

and other compact sillyness. Oh look - when I did this I found
some areas where we *WEREN'T CHECKING SYSTEM CALL ERROR RETURNS !!!!*
CompSci 101 guys....... :-).
Jeremy.
(This used to be commit 38d2e6983a6be8232ae7ce21a950d69dd95ce3e6)
2001-08-02 20:17:40 +00:00
Jeremy Allison
953973c888 Fix for rare tdb pattern store failure. Found & fixed by Rusty.
Jeremy.
(This used to be commit aaa56bb3a3c5f0e4191c9b3efe9b8d92c22cf6c7)
2001-07-31 00:03:24 +00:00
Jeremy Allison
ac26e23139 Always check fstat for error.
Jeremy.
(This used to be commit 34951876a1bfad5aa3fc3bd05b808e150f639a8a)
2001-07-25 18:59:56 +00:00
Jeremy Allison
3a40f80a94 Fix for enumerating large numbers of users.
Jeremy.
(This used to be commit c8c138c1fbb49799a2dd4c6e781bd89f51c0c0c5)
2001-07-05 22:36:25 +00:00
Andrew Tridgell
a594519d28 removed some debug code
(This used to be commit 1f6240daae4c5503d6fbb846d89cae986e010fc8)
2001-07-04 04:39:52 +00:00
Jeremy Allison
460c906190 Ok - I misspoke.... mmap returns MAP_FAILED, not neccessarily -1 :-).
Jeremy.
(This used to be commit 2d1c6d1f6b55a0a78eb8afbe16d2ad8b3253a220)
2001-06-21 19:56:25 +00:00
Jeremy Allison
99c506325f When mmap fails it returns -1 *NOT NULL*.
This got regressed somehow.....
Jeremy.
(This used to be commit b77c8b536d4b6d2162f4932227f01cffb730c645)
2001-06-21 19:50:21 +00:00
Jeremy Allison
f5197e0230 Fixed potential free of NULL found by SGI speedshop.
Jeremy.
(This used to be commit fc7830eec8f5478fc3d3296bb35cb11c94e7d9fa)
2001-06-11 20:56:18 +00:00
Tim Potter
e07b85ab19 Added *.po to .cvsignore files.
(This used to be commit 870e9e4e89dcf910c595cabb28f69ad070942072)
2001-06-01 11:26:20 +00:00
Andrew Tridgell
ad7c3ea0f0 merged fix for tdb_unpack from 2_2
(This used to be commit 200b682e9bbe79897343422f7c870382ed6de40a)
2001-05-30 06:23:05 +00:00
Andrew Tridgell
6315ea80fc added list function to tdbtool
(This used to be commit c20838c6358f02dea7967e28a5f23db70ff464f9)
2001-05-30 06:22:10 +00:00
Andrew Tridgell
9848c067c0 - fixed an off-by-1 bug in the delayed deletion code that I believe
was the initial cause of the connections database becoming corrupt.
  Note that this bug only happens when doing deletions within a
  traversal, which is why it has only showed up now
- added delete within traversal testing to tdbtorture
- added a lot more logging to tdb
(This used to be commit 6e1277df9d964c615a3ad876d3b89ff8132081c1)
2001-05-30 05:40:52 +00:00
Andrew Tridgell
964d7a6625 added a tdb_open_log() function that opens a tdb and enables logging
of messages from the tdb code into the Samba DEBUG() system
just call tdb_open_log() instead of tdb_open() to enable this on
any tdb
(This used to be commit 3ab770484c6775df2c1a6f69427ebe656702c96c)
2001-05-30 03:42:44 +00:00
Andrew Tridgell
40518cf9b4 more portable TDB_LOG macro
(This used to be commit ba106b9b07b23c3dc1b40c8feb10cff173faa07a)
2001-05-29 15:01:23 +00:00
Andrew Tridgell
c0561ff58e try to make the tailer code much more robust. When a record
can't be merged don't fail the operation, instead just add
it to the free list anyway

added logging to tdb
(This used to be commit dda086fdf92fded016afc785f7965a375faae5aa)
2001-05-28 13:29:06 +00:00
Jeremy Allison
15e66ba37a Added tdb_change_int_atomic() to allow atomic updates of a tdb int value.
Jeremy.
(This used to be commit cf5015f15935605cf69078bc15251db61ddc48c7)
2001-05-25 00:48:28 +00:00
Andrew Tridgell
e863446e79 make sure that when a tdb expands we fill the expanded area, otherwise ENOSPC could be very bad
(This used to be commit b94cfb6843dc7fc985917395d3e0d953501b9197)
2001-05-15 14:53:06 +00:00
Jeremy Allison
363e378dee Implemented max connections in a similar way to 2.0.x (scan of connection db).
This needs testing !
Tidied up tabs in tdb.c.
Jeremy.
(This used to be commit 0852465053d0c1a23b6cfe6097267291b0595ef8)
2001-05-14 06:15:46 +00:00
Andrew Tridgell
cd2643f8be clearer tdb_mmap code
(This used to be commit ce6598c465e3d1e26592af9b90eb271ee837f290)
2001-05-06 02:05:00 +00:00
Andrew Tridgell
906a512e0b merge from 2.2
(This used to be commit 13bf966cb8ed8df6b02018dceff94c275def8200)
2001-05-06 01:28:17 +00:00
Jeremy Allison
887d796a28 Fix problem with OpenBSD mmap and write not being coherent.
Jeremy.
(This used to be commit 4c6a8273c6dd3e2aeda5a63c4a62aa55bc133099)
2001-05-04 22:23:37 +00:00
Andrew Tridgell
9ce5a03ccb merge from 2.2
(This used to be commit f52a5014ee325f9d91f266f88eac51b6136a75b9)
2001-04-18 16:41:04 +00:00