1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

59 Commits

Author SHA1 Message Date
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
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
Jeremy Allison
a8410f20c1 Fix for True64 treating readonly as a reserved word !
Jeremy.
(This used to be commit d6889b1954bd863fd04cf43fb25f178b1d1ab67f)
2001-04-14 00:41:15 +00:00
Jeremy Allison
2ef68c7e92 Merge of Andrew's changes in 2.2.
Jeremy.
(This used to be commit fc76681812b1469208ad6c8847afdfc68bc6db49)
2001-04-13 19:12:06 +00:00
David O'Neill
2506c61ab3 Changes from APPLIANCE_HEAD:
source/include/proto.h
        - make proto

    source/printing/nt_printing.c
    source/rpc_server/srv_spoolss_nt.c
        - Fix for the overwriting of printerdata entries when WinNT and
          Win2k are modifying printer parameters on PCL printers. Turns out
          that Win2k creates a printer with a NULL devmode entry and then
          expects to set it on *OPEN* (yes this is insane). So we cannot
          return a "default" devmode for a printer - and we must allow an
          open to set it.

    source/tdb/tdb.c
        - Show freelist in an easier format. Show total free.
        - When storing a new record, allocate memory for the key + data
          before the tdb_allocate() as if the malloc fails a (sparse) hole
          is left in the tdb.

    source/tdb/tdbtool.c
        - Show freelist in an easier format. Show total free.

    source/tdb/Makefile
        - cleaned up Makefile dependancies

    source/smbd/lanman.c
        -  Fix for Win9x corrupting it's own parameter string.

    source/printing/printfsp.c
    source/printing/printing.c
    source/rpc_server/srv_spoolss_nt.c
    source/smbd/close.c
        - Added normal close parameter into print_fsp_end() which treats an
          abnormal close as error condition and deletes the spool file.
(This used to be commit 025f7a092ad258ff774e3f5e53737f8210cc8af6)
2001-01-29 21:34:08 +00:00
Tim Potter
73ba07b362 Set the tdb->map_ptr to NULL if mmap() returns -1.
(This used to be commit cef7f58ac5cc0c96e1027c7e5ecbb3fb72cb94b6)
2001-01-16 18:33:05 +00:00
Christopher R. Hertel
8f5d55eb36 The line was:
struct tdb_traverse_lock tl = { tdb->travlocks.next, 0, 0 };

The IRIX compiler complained that the first initialization value was not a
constant and errored out.  Here's what it looks like now:

        struct tdb_traverse_lock tl = { NULL, 0, 0 };
        int ret, count = 0;

        /* This was in the initializaton, above, but the IRIX compiler
         * did not like it.  crh
         */
        tl.next = tdb->travlocks.next;

That worked.

Chris -)-----
(This used to be commit e651d1d642cd1bfac11bec81a30915b95d4424c8)
2000-12-30 23:17:30 +00:00
Jeremy Allison
99c2693c62 Added lock backouts on fail.
When chaining together long lines of bloody "if" statements, which should
logically be separated, and one of them allocates memory, remember to
*free* it *WHETHER OR NOT THE IF STATEMENTS SUCCEEDED* !!!!
Yes I do consider this a bug in the coding style of Tridge, Rusty, Tim et al. :-).
I'm just pissed 'cos this took 4 hours to track down even with an insure error report
stating me in the face and also Ben Woodward looking over the code with me :-).
Jeremy.
(This used to be commit 506b5e34c3ba16768dbc82ba21044787de160c45)
2000-12-15 21:29:06 +00:00
Jeremy Allison
0835c7091c Two tdb bugfixes. First one - ensure that traverse lock is moved before deleting
dead records, else the record is just marked for deletion, not actually deleted.
Second, ensure allocated record is marked as "in use" before free list lock is
released, else other processes in the freelist merge code may try and merge it.
Jeremy.
(This used to be commit dd959fa325c5df8ce0407d8debea76602c8e71cf)
2000-12-13 06:33:53 +00:00
Jeremy Allison
9e9961d2db Added Tim's fix for read-only crashes.
Jeremy.
(This used to be commit cfc62fecdf4c5579ee643df3e701cf6f1fe553ee)
2000-12-11 06:10:32 +00:00
Jeremy Allison
0d658c35eb Fixed bug with tdb_next_lock failing when reaching then end of a hashchain
and the next hashchain is empty.
Jeremy
(This used to be commit f3b5e2a172a777e1c3bbf6ac72fe5c7cdb8324b3)
2000-12-07 17:46:11 +00:00
Jeremy Allison
7e4c4721b4 Changed to sourceforge tdb code. This includes spinlocks (so we now have
a --with-spinlocks option to configure, this does mean the on-disk tdb
format has changed, so 2.2alphaX sites will need to re-create their
tdb's. The upside is no more tdb fragmentation and a +5% on netbench.
Swings and roundabouts....
Jeremy.
(This used to be commit 9dea7b7c257db487f8ced7dad3fce92fba03ea91)
2000-12-06 00:05:15 +00:00
Jeremy Allison
1cd8538b7a Fixed one tdb_read -> rec_free_read call.
Jeremy.
(This used to be commit c9884e16fc2d13dd62c5a43633c9a38dadc9822c)
2000-12-05 03:44:30 +00:00
Jeremy Allison
1218b41474 Added sorted freelist neighbour merge code to stop tdb fragmentation.
This needs TESTING !!! (It passes tdbtest of course :-).
Jeremy.
(This used to be commit 7ae54a93e756d927419242adf35f46e91e974573)
2000-12-05 03:12:57 +00:00
Jeremy Allison
040de369b2 Added print_freelist command.
Jeremy.
(This used to be commit ee89ca9e68abb23fc26cd1378e02e56d0d725e55)
2000-12-02 01:04:11 +00:00
Andrew Tridgell
e23067ad65 change the split threahold for the free list to prevent freelist
fragmentation
(This used to be commit b64e1ae69314ae110c548f57810c34e620d57075)
2000-12-02 00:53:03 +00:00
Andrew Tridgell
fb3daf3653 fixed a potential locking deadlock in tdb
(This used to be commit 03453e2ae557d7fa119338b71744822093d2f38a)
2000-11-27 06:35:12 +00:00
Andrew Tridgell
2d33e87424 got rid of tdb_writelock() and instead lock a chain. tdb_writelock()
is conceptually flawed
(This used to be commit 6e4a3585521b7e5928298bd0f1418ff9fbcacfb4)
2000-10-10 06:45:09 +00:00
Jeremy Allison
bbd7f7bf0f Herb's fixes for profiling & compiler warnings.
Jeremy.
(This used to be commit 7914e9351abb5271ebb4990c3b1fe495d15a4eda)
2000-10-05 18:50:18 +00:00
Jeremy Allison
e26d09685c Added debug so if zero length messages get sent we successfully remove
them (this can happen if smbd processes are shut down at the wrong time).
Jeremy.
(This used to be commit c1de97f96b8c5ad8e5f01a0d17c6387733769442)
2000-10-02 19:28:26 +00:00
Andrew Tridgell
28be43dc81 - use read locks when possible
- don't use as many locks on a store
(This used to be commit ee12b10d21022287baf4432d1df743c4b28223b2)
2000-06-15 15:29:39 +00:00
Andrew Tridgell
afab0b2ca0 an imcompatible tdb format change (sorry!)
this will give us a much nicer migration path for the proposed
semaphore code
(This used to be commit 491ab241897a7252fb088c718de4bdf7f43f4ddc)
2000-05-12 02:57:24 +00:00
Andrew Tridgell
b3d4c0c9f5 when creating the database zero the reserved space
(This used to be commit a5ca60f62bea988e74e2827fbb848770ac5ae444)
2000-05-10 12:58:20 +00:00
Andrew Tridgell
6cf96ff431 - add some reserved space to every tdb, this will be
used for semaphores and future expansion
- update tdb version number to 2
(This used to be commit 5e04885b86791e6ef8b4a316e64d56c6eb05f35d)
2000-05-10 06:02:37 +00:00
Herb Lewis
21b85b2dba Use a prime for default tdb hash size - this makes a difference !
Jeremy.
(This used to be commit 400906e6421c150b591b4bf978a641d5aaf8fd09)
2000-05-10 01:32:51 +00:00
Andrew Tridgell
3cc5f0dd15 fixed typo
(This used to be commit 5341597de6772027034cad7dacbdbd6d2108332a)
2000-05-01 00:48:41 +00:00
Andrew Tridgell
99fbf5c4bc added TDB_INTERNAL, TDB_NOLOCK and TDB_NOMMAP flags.
TDB_INTERNAL replaces the old method of passing a null filename
(This used to be commit 8ec815920d46f205b9f3fff82397c731753c3a10)
2000-05-01 00:41:47 +00:00
Andrew Tridgell
700f72453e - removed all our old wildcard matching code and replaced it with a
call to ms_fnmatch(). This also removes all the Win9X semantics stuff
and a bunch of other associated cruft.

- moved the stat cache code into statcache.c

- fixed the uint16 alignment requirements of ascii_to_unistr() and
  unistr_to_ascii()

- trans2 SMB_FIND_FILE_BOTH_DIRECTORY_INFO returns the short name as
  unicode always (at least thats what NT4 does)

- fixed some errors in the in-memory tdb code. Still ugly, but doesn't
  crash as much
(This used to be commit 03e9cea004bbba72161a5323cf3b4556c94aed8e)
2000-04-30 11:04:28 +00:00
Andrew Tridgell
c0e1c65053 put tdb utility functions in a separate file
(This used to be commit 77009422a075300e5c07a3e75806a7dac47e2113)
2000-04-29 04:05:38 +00:00
Jeremy Allison
ea9b2ed326 Added tdb_get/set_int_byblob, which takes a size_t len and then implemented
the tdb_get/set_int string functions in terms of them. Will be useful in storing
POSIX pending close records (which are ints but indexed by dev/inode pairs).
Jeremy.
(This used to be commit d69e4c6a48746459f973144393529b1f40680d2f)
2000-04-28 02:06:19 +00:00
Andrew Tridgell
dce954d275 added TDB_MODIFY flag - patch from from luke
(This used to be commit 90b574296e06cd6ed4fedc1e5a8ae412a5e78b45)
2000-04-25 01:17:45 +00:00
Andrew Tridgell
e4f8301edf use an size_t not a ssize_t when checking for out of bounds errors
(This used to be commit 044af3cf977e3172b3b1ce3f71457d5b0a4fc1b2)
2000-04-24 14:36:25 +00:00
Andrew Tridgell
4367a3edfb added tdb_get_int() and tdb_store_int()
they are very useful for database versioning
(This used to be commit cc65914cdcceb1fdeeb5d6ec1cf2ea2f865c5092)
2000-04-16 06:23:11 +00:00
Tim Potter
9fd3d3963e Check for null tdb context in tdb_exists()
(This used to be commit bbacdb834f9c8f8c34368664def42dabe78d90c9)
2000-03-01 01:10:25 +00:00
Tim Potter
676df39cc7 Allow tdb databases to be created "in memory" without having a file
associated with them.  tdb can then be used as a hash table data
structure.
(This used to be commit b345c0a1058bcde7689bb9566535e9f1c46ee173)
2000-02-28 00:25:37 +00:00
Tim Potter
590d92c77a More checks for passing NULL tdb contexts to tdb functions.
(This used to be commit 7faa70d254549e60520de1ed1112d41fe9a4d77c)
2000-02-16 22:57:57 +00:00
Tim Potter
13ac8fd847 Return "Invalid tdb context" instead of crashing when tdb_error called
with NULL tdb context.
(This used to be commit ba9f24c0964054f22cd8f0de32cfeacb88b4800c)
2000-02-15 06:13:38 +00:00
Luke Leighton
bbe275e95b 1) added void* state argument to tdb_traverse. guess what! there were
two places i found where it was appropriate to _use_ that third argument,
in locking.c and brlock.c!  there was a static traverse_function and
i removed the static variable, typecast it to a void*, passed it to
tdb_traverse and re-cast it back to the traverse_function inside the
tdb_traverse function.  this makes the use of tdb_traverse() reentrant,
which is never going to happen, i know, i just don't like to see
statics lying about when there's no need for them.

as i had to do in samba-tng, all uses of tdb_traverse modified to take
the new void* state argument.

2) disabled rpcclient: referring people to use SAMBA_TNG rpcclient.
i don't know how the other samba team members would react if i deleted
rpcclient from cvs main.  damn, that code's so old, it's unreal.
20 rpcclient commands, instead of about 70 in SAMBA_TNG.
(This used to be commit 49d7f0afbc1c5425d53019e234d54ddf205c8e9a)
2000-02-04 04:59:31 +00:00
Jeremy Allison
014bdf941f tdb record read error return check fix from Dave Airlie <airlied@samba.org>.
Jeremy.
(This used to be commit 82c99dc8d8bc79e88f0db651f04fc23508195a51)
2000-01-24 23:12:02 +00:00
Andrew Tridgell
1359195c50 casts and defines to make solaris happy
(This used to be commit 77cf152c02b445f4b6e9de393936dd6e54e6f442)
2000-01-14 08:33:20 +00:00
Andrew Tridgell
5b7f0c733c improved the error checking
(This used to be commit 2a152998a1489dead0edadb06f78b0ad6ede1a3a)
2000-01-08 08:16:02 +00:00
Andrew Tridgell
102e44e446 don't use strcpy
(This used to be commit bf9b1328c5843eb217eff4ca05645498de2def82)
2000-01-07 06:14:43 +00:00
Andrew Tridgell
e91ceacb6c - patch from Rusty to neaten up the code a bit
- fixed a race condition in tdb_open()
(This used to be commit 21d4882f64a65ee1786231eb55b7768bb44921fd)
2000-01-07 03:01:55 +00:00
Andrew Tridgell
1f438ffb7e lower the default hash size a bit
(This used to be commit 51ed6e8cec47642641e6b26682fd6f25624b19ae)
2000-01-05 01:50:06 +00:00
Andrew Tridgell
c0ad729de6 drop the alignment to 4 bytes - this makes tdb more space efficient
and doesn't seem to affect performance
(This used to be commit 1fb293732ed65deba6958000a9f6de7900e21f5c)
2000-01-03 00:52:14 +00:00
Andrew Tridgell
8b1229c3fe updated docs
(This used to be commit c199ec9543d0d84bd5ea29078887684f708c9637)
2000-01-02 23:03:32 +00:00