svn commit: samba r6750 - in branches/SAMBA_4_0/source: cldap_server nbt_server/wins

tridge at samba.org tridge at samba.org
Thu May 12 09:03:14 GMT 2005


Author: tridge
Date: 2005-05-12 09:03:14 +0000 (Thu, 12 May 2005)
New Revision: 6750

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6750

Log:
some minor tweaks to the cldapd server

I can now join winxp -> samba4 DC using long name, and login. The nice
thing is there are no delays now, as the client likes the replies it gets



Modified:
   branches/SAMBA_4_0/source/cldap_server/netlogon.c
   branches/SAMBA_4_0/source/nbt_server/wins/winsserver.c


Changeset:
Modified: branches/SAMBA_4_0/source/cldap_server/netlogon.c
===================================================================
--- branches/SAMBA_4_0/source/cldap_server/netlogon.c	2005-05-12 08:35:07 UTC (rev 6749)
+++ branches/SAMBA_4_0/source/cldap_server/netlogon.c	2005-05-12 09:03:14 UTC (rev 6750)
@@ -33,6 +33,7 @@
 static NTSTATUS cldapd_netlogon_fill(struct cldap_socket *cldap,
 				     TALLOC_CTX *mem_ctx,
 				     const char *domain,
+				     const char *user,
 				     const char *src_address,
 				     uint32_t version,
 				     union nbt_cldap_netlogon *netlogon)
@@ -59,6 +60,11 @@
 		return NT_STATUS_INTERNAL_DB_CORRUPTION;
 	}
 
+	/* the domain has an optional trailing . */
+	if (domain[strlen(domain)-1] == '.') {
+		domain = talloc_strndup(mem_ctx, domain, strlen(domain)-1);
+	}
+
 	/* try and find the domain */
 	ret = gendb_search(samctx, samctx, NULL, &res, attrs, 
 			   "(&(dnsDomain=%s)(objectClass=domainDNS))", domain);
@@ -87,7 +93,7 @@
 	pdc_dns_name     = talloc_asprintf(mem_ctx, "%s.%s", 
 					   lp_netbios_name(), dns_domain);
 	flatname         = samdb_result_string(res[0], "name", lp_workgroup());
-	site_name        = "Default-First-Site-Name";
+	site_name        = "Default-First-Site-Name.bludom.tridgell.net";
 	site_name2       = "";
 	pdc_ip           = iface_best_ip(src_address);
 
@@ -129,7 +135,7 @@
 		netlogon->logon3.pdc_dns_name = pdc_dns_name;
 		netlogon->logon3.domain       = flatname;
 		netlogon->logon3.pdc_name     = pdc_name;
-		netlogon->logon3.user_name    = "";
+		netlogon->logon3.user_name    = user;
 		netlogon->logon3.site_name    = site_name;
 		netlogon->logon3.site_name2   = site_name2;
 		netlogon->logon3.nt_version   = 3;
@@ -144,7 +150,7 @@
 		netlogon->logon4.pdc_dns_name = pdc_dns_name;
 		netlogon->logon4.domain       = flatname;
 		netlogon->logon4.pdc_name     = lp_netbios_name();
-		netlogon->logon4.user_name    = "";
+		netlogon->logon4.user_name    = user;
 		netlogon->logon4.site_name    = site_name;
 		netlogon->logon4.site_name2   = site_name2;
 		netlogon->logon4.unknown      = 10;
@@ -172,12 +178,15 @@
 	int i;
 	const char *domain = NULL;
 	const char *host = NULL;
+	const char *user = "";
 	int version = -1;
 	union nbt_cldap_netlogon netlogon;
 	NTSTATUS status = NT_STATUS_INVALID_PARAMETER;
 
 	TALLOC_CTX *tmp_ctx = talloc_new(cldap);
 
+	DEBUG(0,("cldap filter='%s'\n", filter));
+
 	tree = ldap_parse_filter_string(tmp_ctx, filter);
 	if (tree == NULL) goto failed;
 
@@ -197,6 +206,11 @@
 					      t->u.simple.value.data,
 					      t->u.simple.value.length);
 		}
+		if (strcasecmp(t->u.simple.attr, "User") == 0) {
+			user = talloc_strndup(tmp_ctx, 
+					      t->u.simple.value.data,
+					      t->u.simple.value.length);
+		}
 		if (strcasecmp(t->u.simple.attr, "NtVer") == 0 &&
 		    t->u.simple.value.length == 4) {
 			version = IVAL(t->u.simple.value.data, 0);
@@ -207,10 +221,10 @@
 		goto failed;
 	}
 
-	DEBUG(2,("cldap netlogon query domain=%s host=%s version=%d\n",
-		 domain, host, version));
+	DEBUG(0,("cldap netlogon query domain=%s host=%s user=%s version=%d\n",
+		 domain, host, user, version));
 
-	status = cldapd_netlogon_fill(cldap, tmp_ctx, domain, src_address, 
+	status = cldapd_netlogon_fill(cldap, tmp_ctx, domain, user, src_address, 
 				      version, &netlogon);
 	if (!NT_STATUS_IS_OK(status)) {
 		goto failed;

Modified: branches/SAMBA_4_0/source/nbt_server/wins/winsserver.c
===================================================================
--- branches/SAMBA_4_0/source/nbt_server/wins/winsserver.c	2005-05-12 08:35:07 UTC (rev 6749)
+++ branches/SAMBA_4_0/source/nbt_server/wins/winsserver.c	2005-05-12 09:03:14 UTC (rev 6750)
@@ -276,8 +276,10 @@
 	nbtsrv->winssrv = talloc(nbtsrv, struct wins_server);
 	NT_STATUS_HAVE_NO_MEMORY(nbtsrv->winssrv);
 
-	nbtsrv->winssrv->max_ttl = lp_max_wins_ttl();
-	nbtsrv->winssrv->min_ttl = lp_min_wins_ttl();
+	nbtsrv->winssrv->max_ttl     = lp_max_wins_ttl();
+	nbtsrv->winssrv->min_ttl     = lp_min_wins_ttl();
+	nbtsrv->winssrv->min_version = 0;
+	nbtsrv->winssrv->max_version = 0;
 
 	return winsdb_init(nbtsrv->winssrv);
 }



More information about the samba-cvs mailing list