summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2007-05-21 19:12:14 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:22:17 -0500
commit53719c6d7d155e6e61ee67341cbc058a3fa52295 (patch)
treea8c438429961204147134ef5c4001ce2d444c152
parent0afd56aa837527941560118d8d156032fb8a2e8d (diff)
downloadsamba-53719c6d7d155e6e61ee67341cbc058a3fa52295.tar.gz
samba-53719c6d7d155e6e61ee67341cbc058a3fa52295.tar.bz2
samba-53719c6d7d155e6e61ee67341cbc058a3fa52295.zip
r23046: Few missing merges from cleaning out the Centeris winbindd tree.
Nothing of major interest. Will fix a few problems with one way trusts. (This used to be commit 3d48a7e72d9268fd495e0ca4b6e73bed5bb57214)
-rw-r--r--source3/nsswitch/winbindd.c4
-rw-r--r--source3/nsswitch/winbindd_rpc.c6
-rw-r--r--source3/nsswitch/winbindd_util.c10
-rw-r--r--source3/passdb/pdb_interface.c2
4 files changed, 21 insertions, 1 deletions
diff --git a/source3/nsswitch/winbindd.c b/source3/nsswitch/winbindd.c
index 790d59c086..ed0bdeb13a 100644
--- a/source3/nsswitch/winbindd.c
+++ b/source3/nsswitch/winbindd.c
@@ -1164,6 +1164,10 @@ int main(int argc, char **argv, char **envp)
wcache_tdc_clear();
+ /* clear the cached list of trusted domains */
+
+ wcache_tdc_clear();
+
if (!init_domain_list()) {
DEBUG(0,("unable to initalize domain list\n"));
exit(1);
diff --git a/source3/nsswitch/winbindd_rpc.c b/source3/nsswitch/winbindd_rpc.c
index ee8044a667..4a6448348e 100644
--- a/source3/nsswitch/winbindd_rpc.c
+++ b/source3/nsswitch/winbindd_rpc.c
@@ -458,6 +458,12 @@ static NTSTATUS query_user(struct winbindd_domain *domain,
return NT_STATUS_OK;
}
+ if ( !winbindd_can_contact_domain( domain ) ) {
+ DEBUG(10,("query_user: No incoming trust for domain %s\n",
+ domain->name));
+ return NT_STATUS_OK;
+ }
+
/* no cache; hit the wire */
result = cm_connect_sam(domain, mem_ctx, &cli, &dom_pol);
diff --git a/source3/nsswitch/winbindd_util.c b/source3/nsswitch/winbindd_util.c
index 231e11ae45..2bec404a13 100644
--- a/source3/nsswitch/winbindd_util.c
+++ b/source3/nsswitch/winbindd_util.c
@@ -148,6 +148,16 @@ static struct winbindd_domain *add_trusted_domain(const char *domain_name, const
return domain;
}
+ /* See if we found a match. Check if we need to update the
+ SID. */
+
+ if ( domain ) {
+ if ( sid_equal( &domain->sid, &global_sid_NULL ) )
+ sid_copy( &domain->sid, sid );
+
+ return domain;
+ }
+
/* Create new domain entry */
if ((domain = SMB_MALLOC_P(struct winbindd_domain)) == NULL)
diff --git a/source3/passdb/pdb_interface.c b/source3/passdb/pdb_interface.c
index 819e98b38b..7f0555c991 100644
--- a/source3/passdb/pdb_interface.c
+++ b/source3/passdb/pdb_interface.c
@@ -1307,7 +1307,7 @@ static BOOL pdb_default_sid_to_id(struct pdb_methods *methods,
goto done;
}
- /* check for "Unix User" */
+ /* check for "Unix Group" */
if ( sid_peek_check_rid(&global_sid_Unix_Groups, sid, &rid) ) {
id->gid = rid;