[SCM] Samba Shared Repository - branch v3-2-test updated -
initial-v3-2-test-1661-gc0d9732
Michael Adam
obnox at samba.org
Fri Jan 25 00:43:46 GMT 2008
The branch, v3-2-test has been updated
via c0d9732cf4482b0db02c75f316ff2b41f3336425 (commit)
via 6c7c6c3f85a4bd171c62031b2b8e59d3f7054061 (commit)
via 373a00ae0d667d257fa93ab14c773e841f2c4f1a (commit)
via 723e877c241dd5a0c8addb89507c9eda75b88ea4 (commit)
via ba5373ed7f74d560a9de8620039b596b8938d1dc (commit)
via 8bb21b8b3802e7b093a3c4fb41b8550033388878 (commit)
from ef2913a66c3888d4813d8b778ddd63b2c7e48f3e (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test
- Log -----------------------------------------------------------------
commit c0d9732cf4482b0db02c75f316ff2b41f3336425
Author: Michael Adam <obnox at samba.org>
Date: Fri Jan 25 01:40:42 2008 +0100
Fix lookup_sids to detect unix_groups and unix_users domain sids.
This fixes panics in wbcLookupRids when 1-2-22 was passed as a
domain sid.
Michael
commit 6c7c6c3f85a4bd171c62031b2b8e59d3f7054061
Author: Michael Adam <obnox at samba.org>
Date: Fri Jan 25 01:40:01 2008 +0100
Add a debug message: show the sid lookup_sid() was called for.
Michael
commit 373a00ae0d667d257fa93ab14c773e841f2c4f1a
Author: Michael Adam <obnox at samba.org>
Date: Fri Jan 25 01:21:56 2008 +0100
Add debug message: show which domain_child is being forked.
Michael
commit 723e877c241dd5a0c8addb89507c9eda75b88ea4
Author: Michael Adam <obnox at samba.org>
Date: Thu Jan 24 23:44:05 2008 +0100
Add a debug message to lookup_rids() printing the domain SID.
This is to ease debugging. I sporadically get panics that are
apparently due to NULL domain sid passed to lookup_rids somewhere.
Michael
commit ba5373ed7f74d560a9de8620039b596b8938d1dc
Author: Michael Adam <obnox at samba.org>
Date: Thu Jan 24 22:15:33 2008 +0100
Add a debug message winbindd_can_contact_domain()
explaining the reason for failure.
Michael
commit 8bb21b8b3802e7b093a3c4fb41b8550033388878
Author: Michael Adam <obnox at samba.org>
Date: Thu Jan 24 22:47:49 2008 +0100
Fix assignment to request->data.init_conn.is_primary in init_child_connection().
The present assignment
"request->data.init_conn.is_primary = domain->internal ? False : True"
simply feels wrong. This seems to be the thing right to do:
"request->data.init_conn.is_primary = domain->primary ? true : false".
The question is: Does this have any purpose at all?
data.init_conn.is_primary seems to be used nowhere
in the whole code at all.
Is it (still) needed?
Michael
-----------------------------------------------------------------------
Summary of changes:
source/passdb/lookup_sid.c | 15 +++++++++++++++
source/winbindd/winbindd_dual.c | 7 +++++++
source/winbindd/winbindd_util.c | 4 +++-
3 files changed, 25 insertions(+), 1 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source/passdb/lookup_sid.c b/source/passdb/lookup_sid.c
index 55dd654..9f66eb9 100644
--- a/source/passdb/lookup_sid.c
+++ b/source/passdb/lookup_sid.c
@@ -464,6 +464,9 @@ static bool lookup_rids(TALLOC_CTX *mem_ctx, const DOM_SID *domain_sid,
{
int i;
+ DEBUG(10, ("lookup_rids called for domain sid '%s'\n",
+ sid_string_dbg(domain_sid)));
+
if (num_rids) {
*names = TALLOC_ARRAY(mem_ctx, const char *, num_rids);
*types = TALLOC_ARRAY(mem_ctx, enum lsa_SidType, num_rids);
@@ -596,6 +599,16 @@ static bool lookup_as_domain(const DOM_SID *sid, TALLOC_CTX *mem_ctx,
return true;
}
+ if (sid_check_is_unix_users(sid)) {
+ *name = talloc_strdup(mem_ctx, unix_users_domain_name());
+ return true;
+ }
+
+ if (sid_check_is_unix_groups(sid)) {
+ *name = talloc_strdup(mem_ctx, unix_groups_domain_name());
+ return true;
+ }
+
if (sid->num_auths != 4) {
/* This can't be a domain */
return false;
@@ -922,6 +935,8 @@ bool lookup_sid(TALLOC_CTX *mem_ctx, const DOM_SID *sid,
TALLOC_CTX *tmp_ctx;
bool ret = false;
+ DEBUG(10, ("lookup_sid called for SID '%s'\n", sid_string_dbg(sid)));
+
if (!(tmp_ctx = talloc_new(mem_ctx))) {
DEBUG(0, ("talloc_new failed\n"));
return false;
diff --git a/source/winbindd/winbindd_dual.c b/source/winbindd/winbindd_dual.c
index a9786d1..15ca564 100644
--- a/source/winbindd/winbindd_dual.c
+++ b/source/winbindd/winbindd_dual.c
@@ -959,6 +959,13 @@ static bool fork_domain_child(struct winbindd_child *child)
struct winbindd_cli_state state;
struct winbindd_domain *domain;
+ if (child->domain) {
+ DEBUG(10, ("fork_domain_child called for domain '%s'\n",
+ child->domain->name));
+ } else {
+ DEBUG(10, ("fork_domain_child called without domain.\n"));
+ }
+
if (socketpair(AF_UNIX, SOCK_STREAM, 0, fdpair) != 0) {
DEBUG(0, ("Could not open child pipe: %s\n",
strerror(errno)));
diff --git a/source/winbindd/winbindd_util.c b/source/winbindd/winbindd_util.c
index 0381053..3d9ede3 100644
--- a/source/winbindd/winbindd_util.c
+++ b/source/winbindd/winbindd_util.c
@@ -571,7 +571,7 @@ enum winbindd_result init_child_connection(struct winbindd_domain *domain,
/* The primary domain has to find the DC name itself */
request->cmd = WINBINDD_INIT_CONNECTION;
fstrcpy(request->domain_name, domain->name);
- request->data.init_conn.is_primary = domain->internal ? False : True;
+ request->data.init_conn.is_primary = domain->primary ? true : false;
fstrcpy(request->data.init_conn.dcname, "");
async_request(mem_ctx, &domain->child, request, response,
init_child_recv, state);
@@ -1404,6 +1404,8 @@ bool winbindd_can_contact_domain( struct winbindd_domain *domain )
if ( domain->active_directory &&
((domain->domain_flags&DS_DOMAIN_DIRECT_INBOUND) != DS_DOMAIN_DIRECT_INBOUND) )
{
+ DEBUG(10, ("Domain is an AD domain and we have no inbound "
+ "trust.\n"));
return False;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list