Jeremy Allison [Wed, 9 Jul 2008 23:54:38 +0000 (16:54 -0700)]
Add in the IDL to store a NT Security descriptor in
a blob. Use the same format as S4, but a new version
as we'll need to store the timestamp to check for
validity against the POSIX st_ctime.
Jeremy.
1. convert_string() is not only used for key strings but also for data.
2. Some databases use string_tdb_data() i.e. non-null-terminated strings
as keynames and others (like the one I was using), use
string_term_tdb_data(), i.e. zero-terminated key strings.
After discussion with Metze, the easiest (and proper way) to
handle this is to specify key names as "keyname\0" for databases
which use string_term_tdb_data().
Michael Adam [Wed, 9 Jul 2008 08:40:39 +0000 (10:40 +0200)]
registry: fix logic in deleting subkeys record in regdb_fetch_keys().
Don't cancel on NT_STATUS_NOT_FOUND error from dbwrap_delete_bystring().
So deletion of an "incomlete" registry key, i.e. one with an entry in
the list of subkeys of its parent key but not a subkey list of its own,
works again.
[BUG 5580] Allow access to DFS shares via libsmbclient
Brian Sheehan provided a nice patch intended for the 3.0 code base. This
commit applies a similar patch for the 3.3 code base. It adds a new public
function to libsmbclient -- smbc_set_credentials() -- that may be called from
the authentication callback when DFS referrals are in use.
Michael Adam [Tue, 8 Jul 2008 15:10:01 +0000 (17:10 +0200)]
registry: fetch regdb_fetch_keys() when a key exists but not its subkey-record.
According to the new policy a key (that is not a base key) exists,
iff it exists in the subkey list of its parent key.
Usually this subkeylist is present, but in a transaction-less
dbwrap backend (ctdb), a failing write can leave an "incomplete"
key without its own subkeylist-record. (Otherwise such an
incomplete key can be generated with e.g. tdbtool.)
For such a key net registry enumerate (e.g.) would fail.
This commit fixes this behaviour of regdb_fetch_keys().
Michael Adam [Tue, 8 Jul 2008 14:55:52 +0000 (16:55 +0200)]
build: fix build of smbget by moving LIBSMBCLIENT_OBJ* defs up again
to their original place. The problem was that LIBSMCLIENT_OBJ1 is used
in SMBGET_OBJ and that the difinition of LIBSMBCLIENT_OBJ1 was moved
below the bin/smbget target. Somehow it had worked for me.
Michael Adam [Tue, 8 Jul 2008 13:33:36 +0000 (15:33 +0200)]
tdbtool: fix off-by-one error in argument length. (bug #2344)
This prevented all commands operating on keys (all non-traverse commands)
in tdbtool to fail with a "fetch failed" or "delete failed" message.
It seems that it fixes bug #2344 ...
Apparently this bug was introduced with 94e53472666ed in 2005.
Either nobody is using tdbtool or else tdb_find() has become
more strict about the key legth in the meantime. :-)
Michael Adam [Mon, 7 Jul 2008 15:35:08 +0000 (17:35 +0200)]
build: set SONAME version of libraries from configure, not using library-versions
This sets the library versions (previously gotten from library-versions
file during make) already at configure time.
For library "foo", the version is stored in the LIBFOO_SOVER configure
variable. For all libraries except libwbclient, this is done through the
call of SMB_LIBRARY().
NOTE: Currently the versions are hard-coded in the SMB_LIBRARY() calls in
configure.in, but this change makes it easier to retrieve the version from
the libraries source dir at configure time, e.g. for talloc and tdb.
Michael Adam [Mon, 7 Jul 2008 11:55:31 +0000 (13:55 +0200)]
build: extend SMB_LIBRARY() to optionally take default value.
The default value defaults to "yes".
If no is specified, an optional third argument contains the
reason why building of the shared library is turned off by default.
Michael Adam [Sun, 6 Jul 2008 21:37:06 +0000 (23:37 +0200)]
build: slightly change and extend the logic of SMB_LIBRARY().
Only call the install/uninstall targets (from make (un)install)
for libraries configured with SMB_LIBRARY(), when the user did
not set --with-libname=no.
Make sure to always (at least) build the static version of the library.
Michael Adam [Sun, 6 Jul 2008 00:32:09 +0000 (02:32 +0200)]
build: fix creation of link libtalloc.so on some systems.
ln -s -f seem to be unknown on some solaris versions (e.g.).
so if there is an old libtalloc.so around, this will fail.
use rm -f prior to creating the link to circumvent this.
sid_check_is_in_unix_* will only give true if it is of the corresponding type,
so the check if the struct idmap actually represents a user or group is
unnecessary.
Jeremy Allison [Thu, 3 Jul 2008 17:24:12 +0000 (10:24 -0700)]
Patch from SATOH Fumiyasu <fumiyas@osstech.co.jp> for bug #5202. Re-activate "acl group control"
parameter and make it only apply to owning group. Also added man page fix.
Jeremy.