1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-19 21:57:57 +03:00

174 Commits

Author SHA1 Message Date
Jeremy Allison
b06749d73c Memory leak on error condition fixed by Kian Win <codegrunt@rubbercookie.com>.
Jeremy.
(This used to be commit 9dae1398b45515e5b93de038ec18df297d73026d)
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 6a58c9bd06d0d7502a24bf5ce5a2faf0a146edfa)
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 5fb3be62910faf91e0e8381ba91f314f2092cb8e)
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 96c36e51ee4df4c46e5e9e611844dfa83260f606)
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 ff354c99c585068af6dc1ff35a1f109a806b326b)
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 eb99e7f29c2d6041054331425cb245da86bedaa4)
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 4f703b84cd7f258ae0169d52ca761b9404ccb348)
2002-01-09 18:26:39 +00:00
Jeremy Allison
af85c2f062 Added int32 version of "atomic" update.
Jeremy.
(This used to be commit 1233b553e78b8d7580b9ea4f1bba62c78b4cd186)
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 d57fb9a8c25a95e434cb5fb3d63a87d98abeefef)
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 a0cdec3acc82d1ce0292fadd4b8dac23638450f3)
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 eb6607466565bcd5b3800492d0bc1ae8a44da4f6)
2002-01-02 23:28:55 +00:00
Andrew Tridgell
84ecd95dba more irix -64 portability fixes
(This used to be commit 65e857b36e170e3ecd78bf6695ae73342e9c04cd)
2001-12-31 14:05:22 +00:00
Martin Pool
93b5fb3175 Ignore torture.tdb
(This used to be commit 79feca4d25aaa7e15553a10707efdb3003fed9cf)
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 412e79c448bf02e3097b5c14a36fe0172d8d2895)
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 1d2504b5c76bf23ac49a401adce8a49f193bc22c)
2001-12-13 02:34:43 +00:00
Herb Lewis
e4553718bb add *.po32 to ignore list
(This used to be commit fe0db4c55f8bfc70004edd60a29359337fa40723)
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 9e3581827d91f5fd33fabd5ad4c9a79d63355731)
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 b03aaddcf35dee93556013eaac9d99bc0f22256a)
2001-12-11 08:24:36 +00:00
Martin Pool
6f151481da Doc.
(This used to be commit 6c684c89a4e6e212476335ee57c3b616015598f8)
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 caa08bb56e2dc533c3754f90f6139fe04a317545)
2001-12-10 07:27:20 +00:00
Martin Pool
dd9bdec3aa Log more error messages.
(This used to be commit 8118676f780a80662f28c3cc1a74cc12d0e1ef51)
2001-12-10 07:02:58 +00:00
Martin Pool
98d6d8cf9c Log more error messages.
(This used to be commit b50e566ab93e9a8068e26c9c902db81311cb394c)
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 a228c7efcc06b901ca51a6da77f8a52b77912f55)
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 b1d7d800680f77e02185bb237982b284414aac1e)
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 52ef112e10dbe273b6e66c4a5081f468e4630b7d)
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 fe901ec194d1b8ef94386b097e72508075eb8a54)
2001-12-10 05:12:52 +00:00
Martin Pool
70f27f1b52 Doc.
(This used to be commit bb6c0df4bc4eb8ce789886ec17e434dc27bb34b0)
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 fac685d30f58c25d73d1690ed008c797291558e4)
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 d159415049c25caeaf01b6bc947da3472c54d1f8)
2001-12-10 05:00:36 +00:00
Tim Potter
aeb734a8fa Formatting fixup.
(This used to be commit d902baf70970f0358e825cd520b1794fd46465f0)
2001-12-10 04:59:17 +00:00
Andrew Tridgell
bd062b1856 added a simple tdbdump utility
(This used to be commit c4f5a6c65d7dd933e9d6faf14ebf6afcf5232a1e)
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 7e20fad5ed00be4594bfc45603db89d600f46c55)
2001-12-05 15:45:36 +00:00
Jeremy Allison
20fdf28178 Tidup.
Jeremy.
(This used to be commit 837f2b961b1e7dcd6998f36d58d2059290e89e18)
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 3dbb5dfcfb29671f136d1ed6c865362eaf027446)
2001-12-04 13:21:15 +00:00
Martin Pool
65e1d4a7a5 Fix headers. This I know is correct.
(This used to be commit 58cfea3c2aba5a8309e4084ec8df0cfcb48a4075)
2001-12-04 13:17:22 +00:00
Martin Pool
858f1865df Fix headers. This I know is correct.
(This used to be commit 0c22a10d738041b3dc0c92d8ea060a86de769563)
2001-12-04 12:44:10 +00:00
Martin Pool
84503c81f0 undo
(This used to be commit fc176f15f27686049453552219b56b9de33ceffa)
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 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