1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-28 07:21:54 +03:00
Commit Graph

241 Commits

Author SHA1 Message Date
Andrew Tridgell
f70836df9e ignore a few more files
(This used to be commit 1c92fab405)
2002-04-16 12:27:54 +00:00
Andrew Bartlett
cd58107e6e Extra file for the tdb search code (linked list definition).
Andrew Bartlett
(This used to be commit c331200600)
2002-04-14 09:45:09 +00:00
Andrew Bartlett
07e6ff5fcf Partly based on the work by mimir (Rafal Szczesniak
<mimir@diament.ists.pwr.wroc.pl>) this patch allows samba to correctly
enumerate its trusted domains - by exaimining the keys in the secrets.tdb file.

This patch has been tested with both NT4 and rpcclient/wbinfo, and adds
some extra functionality to talloc and rpc_parse to allow it to deal with
already unicode strings.

Finally, this cleans up some const warnings that were in net_rpc.c by pushing
another dash of const into the rpc client code.

Andrew Bartlett
(This used to be commit 0bdd94cb99)
2002-04-14 09:44:16 +00:00
Andrew Bartlett
2248a88909 Make our atomic increment code actually do this during its first/second run.
The previous code would return the same value for both the initial and second
call, only incrementing on later calls.

Andrew Bartlett
(This used to be commit a4594d9efe)
2002-04-13 03:23:08 +00:00
Jeremy Allison
4ad0ff29bf Added Shirish's client side caching policy change.
Jeremy.
(This used to be commit 16015c07ea)
2002-04-10 01:04:13 +00:00
Tim Potter
45d3315e32 When printing a tdb log message display "unnamed" instead of "unknown" if
the tdb has not been named.
(This used to be commit 3e7985c60e)
2002-04-09 23:03:17 +00:00
Simo Sorce
68518222a7 uint32 store and fectch functions, a signed int is not enough sometimes
(This used to be commit f07b2b3d52)
2002-04-07 22:04:39 +00:00
Simo Sorce
4f80466480 better check of called function's return
tdbtorture say it's ok
(This used to be commit af0fa4cf7c)
2002-04-07 22:02:09 +00:00
Jeremy Allison
67d21b5a4b Make winbindd_idmap tdb endian independent. This is very important for
sharing between machines with rsync.
Finally removed tdb_store_int/tdb_fetch_int.
Now only tdb_store_int32/tdb_fetch_int32 which are endian independent
are allowed.
Jeremy.
(This used to be commit 1c4a00dcc1)
2002-03-21 23:39:17 +00:00
Andrew Tridgell
ec4f138436 a bit more portability for tdbbackup
(This used to be commit 6edb5bea5f)
2002-03-11 00:01:54 +00:00
Andrew Tridgell
96300f6008 make tdbbackup more portable
(This used to be commit 9cc1dadfb0)
2002-03-10 08:30:15 +00:00
Andrew Tridgell
34623e023a prevent bogus compiler complaints about comments in comments
(This used to be commit 73b3487daf)
2002-03-10 01:46:56 +00:00
Andrew Tridgell
a47e103b85 added a bunch of explanation about tdbbackup
(This used to be commit 4ac4220e2f)
2002-03-09 00:12:19 +00:00
Andrew Tridgell
d65228687f don't use -pg by default when building standalone
(This used to be commit 18e81a4a5b)
2002-03-09 00:11:48 +00:00
Andrew Tridgell
6bf9b6e702 added -v and -s options
-v is used for verify/restore from backup
(This used to be commit 1438cd8e50)
2002-03-08 18:14:35 +00:00
Andrew Tridgell
cb6c9ef475 added a tdb backup utility
when complete, this will be used to backup critical tdbs at samba
startup and possibly periodically while Samba is running so that if
tdb corruption is caused by a power failure Samba can restore from the
backup.
(This used to be commit f619330082)
2002-03-07 18:58:33 +00:00
Andrew Bartlett
d79e11ad6d Various comment fixes from Rafal Szczesniak <mimir@diament.ists.pwr.wroc.pl>
(This used to be commit 3bf4b42771)
2002-03-01 01:24:30 +00:00
Jeremy Allison
b06749d73c Memory leak on error condition fixed by Kian Win <codegrunt@rubbercookie.com>.
Jeremy.
(This used to be commit 9dae1398b4)
2002-02-27 17:48:45 +00:00
Tim Potter
cd68afe312 Removed version number from file header.
Changed "SMB/Netbios" to "SMB/CIFS" in file header.
(This used to be commit 6a58c9bd06)
2002-01-30 06:08:46 +00:00
Tim Potter
a4bd608b48 Raise log level of warning produced when the open() of the tdb fails.
Sometimes an open error is OK.
(This used to be commit 5fb3be6291)
2002-01-22 00:38:36 +00:00
Tim Potter
5916634a3a Display tdb name of "unknown" in logging debug when tdb has not been named.
(This used to be commit 96c36e51ee)
2002-01-22 00:36:53 +00:00
Andrew Bartlett
1a74d8d1f0 This is another *BIG* change...
Samba now features a pluggable passdb interface, along the same lines as the
one in use in the auth subsystem.  In this case, only one backend may be active
at a time by the 'normal' interface, and only one backend per passdb_context is
permitted outside that.

This pluggable interface is designed to allow any number of passdb backends to
be compiled in, with the selection at runtime.  The 'passdb backend' paramater
has been created (and documented!) to support this.

As such, configure has been modfied to allow (for example) --with-ldap and the
old smbpasswd to be selected at the same time.

This patch also introduces two new backends:  smbpasswd_nua and tdbsam_nua.
These two backends accept 'non unix accounts', where the user does *not* exist
in /etc/passwd.  These accounts' don't have UIDs in the unix sense, but to
avoid conflicts in the algroitmic mapping of RIDs, they use the values
specified in the 'non unix account range' paramter - in the same way as the
winbind ranges are specifed.

While I was at it, I cleaned up some of the code in pdb_tdb (code copied
directly from smbpasswd and not really considered properly).  Most of this was
to do with % macro expansion on stored data.  It isn't easy to get the macros
into the tdb, and the first password change will 'expand' them.  tdbsam needs
to use a similar system to pdb_ldap in this regard.

This patch only makes minor adjustments to pdb_nisplus and pdb_ldap, becouse I
don't have the test facilities for these.  I plan to incoroprate at least
pdb_ldap into this scheme after consultation with Jerry.

Each (converted) passdb module now no longer has any 'static' variables, and
only exports 1 init function outside its .c file.

The non-unix-account support in this patch has been proven!  It is now possible
to join a win2k machine to a Samba PDC without an account in /etc/passwd!

Other changes:

Minor interface adjustments:
pdb_delete_sam_account() now takes a SAM_ACCOUNT, not a char*.

pdb_update_sam_account() no longer takes the 'override' argument that was being
ignored so often (every other passdb backend).  Extra checks have been added in
some places.

Minor code changes:
smbpasswd no longer attempts to initialise the passdb at startup, this is
now done on first use.

pdbedit has lost some of its 'machine account' logic, as this behaviour is now
controlled by the passdb subsystem directly.

The samr subsystem no longer calls 'local password change', but does the pdb
interactions directly.  This allow the ACB_ flags specifed to be transferred
direct to the backend, without interference.

Doco:

I've updated the doco to reflect some of the changes, and removed some paramters
no longer applicable to HEAD.
(This used to be commit ff354c99c5)
2002-01-20 14:30:58 +00:00
Jeremy Allison
3a851587f8 Ensure we log tdb open fails. Patch from Alexander Bokovoy <a.bokovoy@sam-solutions.net>
Jeremy.
(This used to be commit eb99e7f29c)
2002-01-18 02:15:04 +00:00
Jeremy Allison
d3e9213af7 Move SAFE_FREE into tdb.c to stop exporting it into tdb.h namespace.
Jeremy.
(This used to be commit 4f703b84cd)
2002-01-09 18:26:39 +00:00
Jeremy Allison
af85c2f062 Added int32 version of "atomic" update.
Jeremy.
(This used to be commit 1233b553e7)
2002-01-09 01:53:19 +00:00
Jeremy Allison
b6f4f3465f Added int32 versions of the endian-dependent code.
Jeremy.
(This used to be commit d57fb9a8c2)
2002-01-09 01:32:17 +00:00
Jeremy Allison
eca99f5c22 Fixed nasty cast of tdb_delete in traversals.
Jeremy.
(This used to be commit a0cdec3acc)
2002-01-03 22:48:48 +00:00
Jeremy Allison
4178f211d1 debug statement fixups.
Merge SAFE_FREE fix in tdb from 2.2, and IRIX fix.
Jeremy.
(This used to be commit eb66074665)
2002-01-02 23:28:55 +00:00
Andrew Tridgell
84ecd95dba more irix -64 portability fixes
(This used to be commit 65e857b36e)
2001-12-31 14:05:22 +00:00
Martin Pool
93b5fb3175 Ignore torture.tdb
(This used to be commit 79feca4d25)
2001-12-20 07:22:54 +00:00
Andrew Tridgell
6c7e9dfb29 net ads password and net ads chostpass commands from Remus Koos
(This used to be commit 412e79c448)
2001-12-20 03:54:52 +00:00
Jeremy Allison
e0d3a9e443 Must check against -1 for fcntl error check.
Jeremy
(This used to be commit 1d2504b5c7)
2001-12-13 02:34:43 +00:00
Herb Lewis
e4553718bb add *.po32 to ignore list
(This used to be commit fe0db4c55f)
2001-12-12 16:04:37 +00:00
Jeremy Allison
9bb0a964bf Fix up warnings. Make tdb_openXX() names const.
Jeremy.
(This used to be commit 9e3581827d)
2001-12-11 08:31:58 +00:00
Jeremy Allison
dd324a5357 Tidyups to remove warnings on tdb standalone code.
Jeremy.
(This used to be commit b03aaddcf3)
2001-12-11 08:24:36 +00:00
Martin Pool
6f151481da Doc.
(This used to be commit 6c684c89a4)
2001-12-10 07:29:34 +00:00
Martin Pool
ebc1f6fda3 Allow for internal databases which may have no name.
(This used to be commit caa08bb56e)
2001-12-10 07:27:20 +00:00
Martin Pool
dd9bdec3aa Log more error messages.
(This used to be commit 8118676f78)
2001-12-10 07:02:58 +00:00
Martin Pool
98d6d8cf9c Log more error messages.
(This used to be commit b50e566ab9)
2001-12-10 07:02:24 +00:00
Martin Pool
8c31fd48c8 Allocate tdb name up front in case log functions want to use it.
(This used to be commit a228c7efcc)
2001-12-10 06:09:42 +00:00
Martin Pool
ddeecec1f8 tdb_open_ex: More cleanups: just dynamically allocate the TDB_CONTEXT
up front, rather than working on the stack and then copying across.
(This used to be commit b1d7d80068)
2001-12-10 05:29:47 +00:00
Martin Pool
dddef5d5b2 Refactor code to check whether already open into its own function.
(This used to be commit 52ef112e10)
2001-12-10 05:22:04 +00:00
Martin Pool
77d800fb3e tdb_open_ex should always "goto fail" in case of error, rather than
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 fe901ec194)
2001-12-10 05:12:52 +00:00
Martin Pool
70f27f1b52 Doc.
(This used to be commit bb6c0df4bc)
2001-12-10 05:08:22 +00:00
Martin Pool
5fea33ab58 tdb_open_ex: Continue previous refactoring so that we consistently
just say "tdb" not "&tdb".
(This used to be commit fac685d30f)
2001-12-10 05:05:21 +00:00
Martin Pool
ce654f5e55 tdb_open_ex: Refactor to use a pointer to tdb, rather than an auto
tdb, to be consistent with the rest of the code.
(This used to be commit d159415049)
2001-12-10 05:00:36 +00:00
Tim Potter
aeb734a8fa Formatting fixup.
(This used to be commit d902baf709)
2001-12-10 04:59:17 +00:00
Andrew Tridgell
bd062b1856 added a simple tdbdump utility
(This used to be commit c4f5a6c65d)
2001-12-09 07:49:20 +00:00
Jean-François Micouleau
791788ea9d changed the DEBUG level of tdb_pack and tdb_unpack. Instead of 8, it's now
18.

when you're looking at a level 10, and it's all clutered with
tdb_pack/unpack, it's getting .... And anyway most of our code using
tdb_pack/unpack have DEBUG around the call if there is a problem.

	J.F.
(This used to be commit 7e20fad5ed)
2001-12-05 15:45:36 +00:00
Jeremy Allison
20fdf28178 Tidup.
Jeremy.
(This used to be commit 837f2b961b)
2001-12-04 18:37:14 +00:00
Martin Pool
84c19504d0 Put back changes to set errno, which seem to do no harm.
(This used to be commit 3dbb5dfcfb)
2001-12-04 13:21:15 +00:00
Martin Pool
65e1d4a7a5 Fix headers. This I know is correct.
(This used to be commit 58cfea3c2a)
2001-12-04 13:17:22 +00:00
Martin Pool
858f1865df Fix headers. This I know is correct.
(This used to be commit 0c22a10d73)
2001-12-04 12:44:10 +00:00
Martin Pool
84503c81f0 undo
(This used to be commit fc176f15f2)
2001-12-04 11:41:12 +00:00
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 391a65395e)
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 0aa800618e)
2001-12-04 07:40:25 +00:00
Martin Pool
8164fa34d9 Magic file for TDB databases.
(This used to be commit e9085129dd)
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 5630a988be)
2001-12-04 02:58:42 +00:00
Jeremy Allison
15dba42364 Added prototypes for new fns. Thanks Elrond.
Jeremy.
(This used to be commit 2a7bd621b4)
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 a1cf70ab65)
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 303b3a3595)
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 1d2305c233)
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 dad688d8c6)
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 21f776df59)
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 2b135fba62)
2001-10-12 00:01:35 +00:00
Anton Blanchard
032f65d5ff PPC spinlocks work again. Sorry, my bad.
(This used to be commit 6612abf827)
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 a71d9d98b0)
2001-10-03 22:58:37 +00:00
Andrew Tridgell
c61d1a1679 fixed compilation of tdbtorture
(This used to be commit 2f44756233)
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 b8d9d1fca3)
2001-09-24 04:56:56 +00:00
Jeremy Allison
0ef1acbabb Put pwrite code back in expand_file.
Jeremy.
(This used to be commit a3267551d8)
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 f49518e497)
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 0e75c0fc1a)
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 b45793ec3f)
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 e4b41a8f31)
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 313c2e8652)
2001-09-18 21:17:58 +00:00
Andrew Tridgell
75a8b24ed9 flush stdout in test logging fns
(This used to be commit d32ac363a5)
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 931bded1c9)
2001-09-06 05:58:05 +00:00
Andrew Tridgell
1772584c35 actually obey the "use mmap" smb.conf option
(This used to be commit b36c98036b)
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 888c852f01)
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 a58b89d339)
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 78207d0fc8)
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 b4f06c3ecf)
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 38d2e6983a)
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 aaa56bb3a3)
2001-07-31 00:03:24 +00:00
Jeremy Allison
ac26e23139 Always check fstat for error.
Jeremy.
(This used to be commit 34951876a1)
2001-07-25 18:59:56 +00:00
Jeremy Allison
3a40f80a94 Fix for enumerating large numbers of users.
Jeremy.
(This used to be commit c8c138c1fb)
2001-07-05 22:36:25 +00:00
Andrew Tridgell
a594519d28 removed some debug code
(This used to be commit 1f6240daae)
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 2d1c6d1f6b)
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 b77c8b536d)
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 fc7830eec8)
2001-06-11 20:56:18 +00:00
Tim Potter
e07b85ab19 Added *.po to .cvsignore files.
(This used to be commit 870e9e4e89)
2001-06-01 11:26:20 +00:00
Andrew Tridgell
ad7c3ea0f0 merged fix for tdb_unpack from 2_2
(This used to be commit 200b682e9b)
2001-05-30 06:23:05 +00:00
Andrew Tridgell
6315ea80fc added list function to tdbtool
(This used to be commit c20838c635)
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 6e1277df9d)
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 3ab770484c)
2001-05-30 03:42:44 +00:00
Andrew Tridgell
40518cf9b4 more portable TDB_LOG macro
(This used to be commit ba106b9b07)
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 dda086fdf9)
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 cf5015f159)
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 b94cfb6843)
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 0852465053)
2001-05-14 06:15:46 +00:00