[SCM] Samba Shared Repository - branch master updated

Michael Adam obnox at samba.org
Mon Jun 10 17:13:02 MDT 2013


The branch, master has been updated
       via  424a990 s4-dfs_server: check for netbios aliases in ad_get_referrals
      from  2a65e8b Optimization on POSIX platforms that have fstatat.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 424a990e34278fae4888b00affb530ed1fbcb354
Author: Björn Baumbach <bb at sernet.de>
Date:   Wed Jun 5 15:01:14 2013 +0200

    s4-dfs_server: check for netbios aliases in ad_get_referrals
    
    Without this patch ad_get_referrals checks for netbios, dns names
    and ip, but not for netbios aliases set by netbios aliases option,
    whether the requested name is our dns name.
    
    Pair-programmed-with: Stefan Metzmacher <metze at samba.org>
    
    Signed-off-by: Björn Baumbach <bb at sernet.de>
    Signed-off-by: Stefan Metzmacher <metze at samba.org>
    Reviewed-by: Michael Adam <obnox at samba.org>
    
    Autobuild-User(master): Michael Adam <obnox at samba.org>
    Autobuild-Date(master): Tue Jun 11 01:12:08 CEST 2013 on sn-devel-104

-----------------------------------------------------------------------

Summary of changes:
 dfs_server/dfs_server_ad.c |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/dfs_server/dfs_server_ad.c b/dfs_server/dfs_server_ad.c
index 4d3891a..249a1d1 100644
--- a/dfs_server/dfs_server_ad.c
+++ b/dfs_server/dfs_server_ad.c
@@ -751,6 +751,7 @@ NTSTATUS dfs_server_ad_get_referrals(struct loadparm_context *lp_ctx,
 	const char *dns_domain;
 	const char *netbios_name;
 	const char *dns_name;
+	const char **netbios_aliases;
 
 	if (!lpcfg_host_msdfs(lp_ctx)) {
 		return NT_STATUS_FS_DRIVER_REQUIRED;
@@ -827,6 +828,40 @@ NTSTATUS dfs_server_ad_get_referrals(struct loadparm_context *lp_ctx,
 		return NT_STATUS_NOT_FOUND;
 	}
 
+	netbios_aliases = lpcfg_netbios_aliases(lp_ctx);
+	while (netbios_aliases && *netbios_aliases) {
+		const char *netbios_alias = *netbios_aliases;
+		char *dns_alias;
+		int cmp;
+
+		cmp = strcasecmp_m(server_name, netbios_alias);
+		if (cmp == 0) {
+			/*
+			 * If it is not domain related do not
+			 * handle it here.
+			 */
+			return NT_STATUS_NOT_FOUND;
+		}
+
+		dns_alias = talloc_asprintf(r, "%s.%s",
+					    netbios_alias,
+					    dns_domain);
+		if (dns_alias == NULL) {
+			return NT_STATUS_NO_MEMORY;
+		}
+
+		cmp = strcasecmp_m(server_name, dns_alias);
+		talloc_free(dns_alias);
+		if (cmp == 0) {
+			/*
+			 * If it is not domain related do not
+			 * handle it here.
+			 */
+			return NT_STATUS_NOT_FOUND;
+		}
+		netbios_aliases++;
+	}
+
 	if ((strcasecmp_m(server_name, netbios_domain) != 0) &&
 	    (strcasecmp_m(server_name, dns_domain) != 0)) {
 		/*


-- 
Samba Shared Repository


More information about the samba-cvs mailing list