fenlason ea54ad0
diff -urBbN --exclude-from=diff.excludes samba-3.0.20-orig/source/nsswitch/winbindd_dual.c samba-3.0.20-new/source/nsswitch/winbindd_dual.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/nsswitch/winbindd_dual.c	2005-08-19 12:16:27.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/nsswitch/winbindd_dual.c	2005-08-29 13:34:16.000000000 -0500
fenlason ea54ad0
@@ -158,7 +158,6 @@
fenlason ea54ad0
 		return;
fenlason ea54ad0
 	}
fenlason ea54ad0
 
fenlason ea54ad0
-	if (state->response->result == WINBINDD_OK)
fenlason ea54ad0
 		SMB_ASSERT(cache_retrieve_response(child->pid,
fenlason ea54ad0
 						   state->response));
fenlason ea54ad0
 
fenlason ea54ad0
@@ -486,12 +485,11 @@
fenlason ea54ad0
 			DEBUG(4,("child daemon request %d\n",
fenlason ea54ad0
 				 (int)state.request.cmd));
fenlason ea54ad0
 
fenlason ea54ad0
+			ZERO_STRUCT(state.response);
fenlason ea54ad0
 			state.request.null_term = '\0';
fenlason ea54ad0
 			child_process_request(child->domain, &state);
fenlason ea54ad0
 
fenlason ea54ad0
-			if (state.response.result == WINBINDD_OK)
fenlason ea54ad0
-				cache_store_response(sys_getpid(),
fenlason ea54ad0
-						     &state.response);
fenlason ea54ad0
+			cache_store_response(sys_getpid(), &state.response);
fenlason ea54ad0
 
fenlason ea54ad0
 			SAFE_FREE(state.response.extra_data);
fenlason ea54ad0
 
fenlason ea54ad0
diff -urBbN --exclude-from=diff.excludes samba-3.0.20-orig/source/nsswitch/winbindd_user.c samba-3.0.20-new/source/nsswitch/winbindd_user.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/nsswitch/winbindd_user.c	2005-07-28 08:19:44.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/nsswitch/winbindd_user.c	2005-08-29 16:04:22.000000000 -0500
fenlason ea54ad0
@@ -230,6 +230,7 @@
fenlason ea54ad0
 				    const char *shell,
fenlason ea54ad0
 				    uint32 group_rid)
fenlason ea54ad0
 {
fenlason ea54ad0
+	fstring username;
fenlason ea54ad0
 	struct getpwsid_state *s =
fenlason ea54ad0
 		talloc_get_type_abort(private_data, struct getpwsid_state);
fenlason ea54ad0
 
fenlason ea54ad0
@@ -240,7 +241,9 @@
fenlason ea54ad0
 		return;
fenlason ea54ad0
 	}
fenlason ea54ad0
 
fenlason ea54ad0
-	s->username = talloc_strdup(s->state->mem_ctx, acct_name);
fenlason ea54ad0
+	fstrcpy( username, acct_name );
fenlason ea54ad0
+	strlower_m( username );
fenlason ea54ad0
+	s->username = talloc_strdup(s->state->mem_ctx, username);
fenlason ea54ad0
 	s->fullname = talloc_strdup(s->state->mem_ctx, full_name);
fenlason ea54ad0
 	s->homedir = talloc_strdup(s->state->mem_ctx, homedir);
fenlason ea54ad0
 	s->shell = talloc_strdup(s->state->mem_ctx, shell);
fenlason ea54ad0
diff -urBbN --exclude-from=diff.excludes samba-3.0.20-orig/source/nsswitch/winbindd_util.c samba-3.0.20-new/source/nsswitch/winbindd_util.c
fenlason ea54ad0
--- samba-3.0.20-orig/source/nsswitch/winbindd_util.c	2005-07-28 08:19:44.000000000 -0500
fenlason ea54ad0
+++ samba-3.0.20-new/source/nsswitch/winbindd_util.c	2005-08-29 13:34:16.000000000 -0500
fenlason ea54ad0
@@ -444,7 +444,9 @@
fenlason ea54ad0
 	state->request.data.init_conn.dcname
fenlason ea54ad0
 		[sizeof(state->request.data.init_conn.dcname)-1]='\0';
fenlason ea54ad0
 
fenlason ea54ad0
+	if (strlen(state->request.data.init_conn.dcname) > 0) {
fenlason ea54ad0
 	fstrcpy(domain->dcname, state->request.data.init_conn.dcname);
fenlason ea54ad0
+	}
fenlason ea54ad0
 
fenlason ea54ad0
 	if (strlen(domain->dcname) > 0) {
fenlason ea54ad0
 		if (!resolve_name(domain->dcname, &ipaddr, 0x20)) {