Volker Lendecke [Fri, 11 May 2007 08:46:54 +0000 (08:46 +0000)]
r22786: Some cleanup by Karolin Seeger: Remove unused pdb_find_alias, and change
return values of some alias-releated pdb functions from BOOL to NTSTATUS
Michael Adam [Thu, 10 May 2007 13:31:15 +0000 (13:31 +0000)]
r22777: Fix for [Bug 4543] - POSIX ACL support on FreeBSD.
This adds vfs_posixacl to the list of static modules and
makes use of HAVE_ACL_GET_PERM_NP.
This is just a quick fix. FreeBSD acl support is still
hardcoded in configure.in, but actually this could be
detected in a unified test for freebsd, linux, *,
as suggested in the bugreport. This has still to be
checked and elaborated.
Volker Lendecke [Thu, 10 May 2007 10:42:13 +0000 (10:42 +0000)]
r22775: For the cluster code I've developed a wrapper around tdb to put different
database backends in place dynamically.
The main abstractions are db_context and db_record, it should be mainly
self-describing, see include/dbwrap.h. You open the db just as you would open
a tdb, this time with db_open(). If you want to fetch a record, just do the
db->fetch() call, if you want to do operations on it, you need to get it with
fetch_locked().
I added dbwrap_file.c (not heavily tested lately) as an example for what can
be done with that abstraction, uses a file per key. So if anybody is willing
to shape that up, we might have a chance on reiserfs again.... :-)
This abstraction works fine for brlock.tdb, locking.tdb, connections.tdb and
sessionid.tdb. It should work fine for the others as well, I just did not yet
get around to convert them.
If nobody loudly screams NO, then I will import the code that uses this soon.
Derrell Lipman [Thu, 10 May 2007 01:27:18 +0000 (01:27 +0000)]
r22772: - Still working on the fact that readahead() is not declared (on at least one
OS) but is available for linking. Instead of running configure tests with
-Werror-implicit-function-declaration in developer mode (which may lead to
different library functions being used in developer mode than when not in
developer mode), add tests for whether readahead is declared. If not,
provide a replacement declaration in lib/replace.
Volker Lendecke [Tue, 8 May 2007 13:44:36 +0000 (13:44 +0000)]
r22761: This introduces lib/conn_tdb.c with two main functions: connections_traverse
and connections_forall. This centralizes all the routines that did individual
tdb_open("connections.tdb") and direct tdb_traverse.
Jeremy Allison [Mon, 7 May 2007 19:27:46 +0000 (19:27 +0000)]
r22754: When processing a string, ensure we don't write one past
the terminating NULL if we've already processed the null
in iconv. Jerry, once I get confirmation from Thomas Bork
this needs to be in 3.0.25 final. Tests fine with valgrind
here.
Jeremy.
Volker Lendecke [Mon, 7 May 2007 13:56:57 +0000 (13:56 +0000)]
r22745: Add local groups to the --required-membership-sid test. This needs
merging to 3_0_26 once Michael's net conf changes have been merged. It
depends on token_utils.c.
Michael Adam [Mon, 7 May 2007 11:25:00 +0000 (11:25 +0000)]
r22739: Make prototypes in include/util_tdb.h of some functions from
lib/util_tdb.c exactly match the definitions. (There were
some [u]int_32_t instead of [u]int32, which made a gcc 2.95
on an old AIX without system [u]int32[_t] types complain...)
Derrell Lipman [Mon, 7 May 2007 03:07:39 +0000 (03:07 +0000)]
r22732: - Testing of libsmbclient against Vista revealed what is likely a bug in
Vista. Vista provides a plethora of kludges to simulate older versions of
Windows. The kludges are in the form of shortcuts (or more likely symbolic
links, but I don't know enough about Vista to determine that definitively)
and in most cases, attempts to access them get back an "access denied"
error. On one particular folder, however, "<share>/Users/All Users", it
returns an unknown (to ethereal and the Samba3 code) NT status code:
0x8000002d. Although this code does not have a high byte of 0xc0 indicating
that it is an error, it appears to be an alternate form of "access denied".
Without this patch, libsmbclient times out on an attempt to enumerate that
folder rather than returning an error to the caller. This patch corrects
that problem.
Derrell Lipman [Mon, 7 May 2007 03:02:24 +0000 (03:02 +0000)]
r22731: - Fix bug #4594.
configure.in determines if -Werror-implicit-function-declaration is
available, and if so it enables that flag if --enable-developer is
specified. Since the configure tests themselves did not use that flag, it
was possible for a configure test to succeed, followed by a failed
compilation due to a facility being available but not having a proper
declaration in a header file. (This bit me with readahead().) This patch
ensures that if implicit function declarations will kill the build, the
feature being tested is deselected so the build will succeed.
The autoconf manual suggests using return instead of exit in configure
tests because the declaration for exit is often missing. We require this
now, since we error if prototypes are missing. See section 5.5.1 of
http://www.gnu.org/software/autoconf/manual/autoconf.html. This patch makes
these changes, because in fact, an external declaration for exit is missing
here (and likely elsewhere).
I've verified that the features selected (here) with the original
configure.in and the new one are the same except for, in my case,
readahead. I've also confirmed that the generated Makefile is identical.
These changes are not being applied to the 3.0.26 branch because it does not
exhibit the initial problem this patch is supposed to solve since it doesn't
attempt to use -Werror-implicit-function-declaration.
Gerald Carter [Sun, 6 May 2007 22:22:47 +0000 (22:22 +0000)]
r22730: Fix password changes via pam_winbindd when using "winbind normalize names"
and the username has been munged. Make sure to munge it back before
performing the change_password() request.
Gerald Carter [Sun, 6 May 2007 21:45:53 +0000 (21:45 +0000)]
r22728: Patch from Danilo Almeida <dalmeida@centeris.com>:
When asked to create a machine account in an OU as part
of "net ads join" and the account already exists in another
OU, simply move the machine object to the requested OU.
Gerald Carter [Sun, 6 May 2007 21:36:20 +0000 (21:36 +0000)]
r22726: When performing an offline logon for a user in a trusted domain,
take care not to expire the name2sid cache entry just because
that child does not know that the primary domain is offline.
Gerald Carter [Sun, 6 May 2007 21:34:24 +0000 (21:34 +0000)]
r22725: * Don't try to update the sequence_number when offline
* Log the NTSTATUS when saving name/sid cache entry
* Allow the backend loolkup_usergroups() call in winbindd_{rpc,ads}.c
to inform the wcache manager that the group list should not be cached
(needed for one-way trusts).
Gerald Carter [Sun, 6 May 2007 21:04:30 +0000 (21:04 +0000)]
r22713: Offline logon fixes for idmap manager:
(a) Ignore the negative cache when the domain is offline
(b) don't delete expired entries from the cache as these
can be used when offline (same model as thw wcache entries)
(c) Delay idmap backend initialization when offline
as the backend routines will not be called until we go
online anyways. This prevents idmap_init() from failing
when a backend's init() function fails becuase of lack of
network connectivity
Gerald Carter [Sun, 6 May 2007 20:16:12 +0000 (20:16 +0000)]
r22710: Support one-way trusts.
* Rely on the fact that name2sid will work for any name
in a trusted domain will work against our primary domain
(even in the absense of an incoming trust path)
* Only logons will reliably work and the idmap backend
is responsible for being able to manage id's without contacting
the trusted domain
* "getent passwd" and "getent group" for trusted users and groups
will work but we cannot get the group membership of a user in any
fashion without the user first logging on (via NTLM or krb5)
and the netsamlogon_cache being updated.
Gerald Carter [Sun, 6 May 2007 19:37:13 +0000 (19:37 +0000)]
r22705: Implement new set_dc_type_and_flags() called based on the
information return from our DC in the DsEnumerateDomainTrusts()
call. If the fails, we callback ot the older
connect-to-the-remote-domain method.
Note that this means we can only reliably expect the native_mode
flag to be set for our own domain as this information in not
available outside our primary domain from the trusted information.
This is ok as we only really need the flag when trying to
determine to enumerate domain local groups via RPC.
Use the AD flag rather than the native_mode flag when using
ldap to obtain the seq_num for a domain.
Gerald Carter [Sun, 6 May 2007 19:17:30 +0000 (19:17 +0000)]
r22704: Implement three step method for enumerating domain trusts.
(a) Query our primary domain for trusts
(b) Query all tree roots in our forest
(c) Query all forest roots in trusted forests.
This will give us a complete trust topology including
domains via transitive Krb5 trusts. We also store the
trust type, flags, and attributes so we can determine
one-way trusted domains (outgoing only trust path).
Patch for one-way trusts coming in a later check-in.
"wbinfo -m" now lists all domains in the domain_list() as held
by the main winbindd process.
Gerald Carter [Sun, 6 May 2007 19:04:31 +0000 (19:04 +0000)]
r22703: Convert winbindd_getgrgid() and winbindd_getgetpwnam()
to use the same code path after we resolve the name/gid to
a SID. Use the async lookupname/lookupsid interface.
Gerald Carter [Sun, 6 May 2007 19:01:54 +0000 (19:01 +0000)]
r22702: Convert both lookup name and lookup sid to follow the
same heuristic. First try our DC and then try a DC in the
root of our forest. Use a temporary state since
winbindd_lookupXXX_async() is called from various winbindd
API entry points.
Note this will break the compile. That will be fixed in the
next commit.
Gerald Carter [Sun, 6 May 2007 18:39:31 +0000 (18:39 +0000)]
r22700: Add a simple wcache TRUSTDOM api for maintaing a complete
list of trusted domains without requiring each winbindd process
to aquire this on its own. This is needed for various idmap
plugins and for dealing with different trust topoligies.
Jeremy Allison [Mon, 30 Apr 2007 16:32:17 +0000 (16:32 +0000)]
r22611: Fix from Jens Nissen <jens.nissen@gmx.net>. Fix bad
memory leak I introduced into acl code, also remove
redundent extra check for global_sid_System :
global_sid_System == S-1-5-18 which is already
included in the check for a domain of
global_sid_NT_Authority == S-1-5