[SCM] Samba Shared Repository - branch master updated

Andrew Bartlett abartlet at samba.org
Thu Jul 19 01:57:02 MDT 2012


The branch, master has been updated
       via  03a6137 s3-param: Remove special case for lp_ctdbd_socket(), set CTDB_PATH as default
       via  0f57da5 lib/param: bring lp_smb_ports() into common by making it a list everywhere
       via  cf9bd1d s3-param: Make lp_name_resolve_order() return a list
       via  8822b3b s4-param: Remove unused "idmap trusted only"
       via  d2ae817 lib/param: Add my copyright
       via  1cbbd2d lib/param: bring lp_time_server() into common
      from  376dc5c s3-auth Use correct RID for domain guests primary group

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


- Log -----------------------------------------------------------------
commit 03a6137001c418c254505ddab694e1aefc73985d
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Jul 19 13:36:37 2012 +1000

    s3-param: Remove special case for lp_ctdbd_socket(), set CTDB_PATH as default
    
    This changes the default based on the #ifdef rather than an override
    on a parameter value of ""
    
    The less special override functions we have the easier it is to merge
    the loadparm tables.
    
    Andrew Bartlett
    
    Pair-Programmed-With: Andrew Tridgell <tridge at samba.org>
    
    Autobuild-User(master): Andrew Bartlett <abartlet at samba.org>
    Autobuild-Date(master): Thu Jul 19 09:56:01 CEST 2012 on sn-devel-104

commit 0f57da57e3c250c0b00d1a369eeff0eb49bee4f8
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Jul 18 11:51:00 2012 +1000

    lib/param: bring lp_smb_ports() into common by making it a list everywhere

commit cf9bd1d9ed6db5d35d92816382edbadc217de792
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Jul 18 15:19:15 2012 +1000

    s3-param: Make lp_name_resolve_order() return a list
    
    This allows this parameter, one of the few with differing declarations
    between the loadparm systems, to be brought into common.
    
    Andrew Bartlett
    
    Pair-Programmed-With: Andrew Tridgell <tridge at samba.org>

commit 8822b3b6628e82ce85cb20d2bbbe2d0664b9aa8f
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Thu Jul 19 11:56:59 2012 +1000

    s4-param: Remove unused "idmap trusted only"
    
    When we revamp the idmap layer, we will end up just following the s3
    options, and this option is not used there either.
    
    Andrew Bartlett
    
    Pair-Programmed-With: Andrew Tridgell <tridge at samba.org>

commit d2ae8179eac88df49dfa0339dc41f0cb70e06fc0
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Jul 18 13:39:58 2012 +1000

    lib/param: Add my copyright

commit 1cbbd2d9803bfaf7545b7de478b50083c5a82c3d
Author: Andrew Bartlett <abartlet at samba.org>
Date:   Wed Jul 18 11:50:31 2012 +1000

    lib/param: bring lp_time_server() into common

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

Summary of changes:
 lib/param/loadparm.c         |   16 +--------------
 lib/param/param_functions.c  |    4 +++
 source3/client/client.c      |    2 +-
 source3/include/proto.h      |    7 ++---
 source3/libsmb/dsgetdcname.c |    3 +-
 source3/libsmb/namequery.c   |   44 +++++++++++++++++++++--------------------
 source3/param/loadparm.c     |   39 ++++++++----------------------------
 source3/smbd/server.c        |   31 +++++++++--------------------
 source3/utils/smbpasswd.c    |    2 +-
 source4/winbind/idmap.c      |    6 -----
 10 files changed, 54 insertions(+), 100 deletions(-)


Changeset truncated at 500 lines:

diff --git a/lib/param/loadparm.c b/lib/param/loadparm.c
index 1341581..33aef24 100644
--- a/lib/param/loadparm.c
+++ b/lib/param/loadparm.c
@@ -11,6 +11,7 @@
    Copyright (C) Jim McDonough (jmcd at us.ibm.com)  2003.
    Copyright (C) James Myers 2003 <myersjj at samba.org>
    Copyright (C) Jelmer Vernooij <jelmer at samba.org> 2007
+   Copyright (C) Andrew Bartlett 2011-2012
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -1247,16 +1248,6 @@ static struct parm_struct parm_table[] = {
 		.flags		= FLAG_ADVANCED,
 	},
 	{
-		.label		= "idmap trusted only",
-		.type		= P_BOOL,
-		.p_class	= P_GLOBAL,
-		.offset		= GLOBAL_VAR(bIdmapTrustedOnly),
-		.special	= NULL,
-		.enum_list	= NULL,
-		.flags		= FLAG_ADVANCED,
-	},
-
-	{
 		.label		= "ntp signd socket directory",
 		.type		= P_STRING,
 		.p_class	= P_GLOBAL,
@@ -1532,13 +1523,9 @@ static struct loadparm_context *global_loadparm_context;
 #include "lib/param/param_functions.c"
 
 /* These functions remain only in lib/param for now */
-FN_GLOBAL_BOOL(idmap_trusted_only, bIdmapTrustedOnly)
 FN_GLOBAL_BOOL(readraw, bReadRaw)
-FN_GLOBAL_BOOL(time_server, bTimeServer)
 FN_GLOBAL_BOOL(unicode, bUnicode)
 FN_GLOBAL_BOOL(writeraw, bWriteRaw)
-FN_GLOBAL_LIST(name_resolve_order, szNameResolveOrder)
-FN_GLOBAL_LIST(smb_ports, smb_ports)
 FN_GLOBAL_STRING(cachedir, szCacheDir)
 FN_GLOBAL_STRING(socket_address, szSocketAddress)
 FN_GLOBAL_STRING(statedir, szStateDir)
@@ -3396,7 +3383,6 @@ struct loadparm_context *loadparm_init(TALLOC_CTX *mem_ctx)
 #endif
 	lpcfg_do_global_parameter(lp_ctx, "template shell", "/bin/false");
 	lpcfg_do_global_parameter(lp_ctx, "template homedir", "/home/%WORKGROUP%/%ACCOUNTNAME%");
-	lpcfg_do_global_parameter(lp_ctx, "idmap trusted only", "False");
 
 	lpcfg_do_global_parameter(lp_ctx, "client signing", "default");
 	lpcfg_do_global_parameter(lp_ctx, "server signing", "default");
diff --git a/lib/param/param_functions.c b/lib/param/param_functions.c
index a13ae02..eb75f7d 100644
--- a/lib/param/param_functions.c
+++ b/lib/param/param_functions.c
@@ -214,6 +214,7 @@ FN_GLOBAL_BOOL(rpc_big_endian, bRpcBigEndian)
 FN_GLOBAL_BOOL(stat_cache, bStatCache)
 FN_GLOBAL_BOOL(syslog_only, bSyslogOnly)
 FN_GLOBAL_BOOL(timestamp_logs, bTimestampLogs)
+FN_GLOBAL_BOOL(time_server, bTimeServer)
 FN_GLOBAL_BOOL(tls_enabled, tls_enabled)
 FN_GLOBAL_BOOL(unix_extensions, bUnixExtensions)
 FN_GLOBAL_BOOL(unix_password_sync, bUnixPasswdSync)
@@ -236,6 +237,7 @@ FN_GLOBAL_BOOL(winbind_use_default_domain, bWinbindUseDefaultDomain)
 FN_GLOBAL_BOOL(wins_dns_proxy, bWINSdnsProxy)
 FN_GLOBAL_BOOL(wins_proxy, bWINSproxy)
 FN_GLOBAL_CONST_STRING(afs_username_map, szAfsUsernameMap)
+FN_GLOBAL_CONST_STRING(ctdbd_socket, ctdbdSocket)
 FN_GLOBAL_CONST_STRING(dedicated_keytab_file, szDedicatedKeytabFile)
 FN_GLOBAL_CONST_STRING(dnsdomain, szRealm_lower)
 FN_GLOBAL_CONST_STRING(dns_forwarder, dns_forwarder)
@@ -348,12 +350,14 @@ FN_GLOBAL_LIST(dns_update_command, szDNSUpdateCommand)
 FN_GLOBAL_LIST(eventlog_list, szEventLogs)
 FN_GLOBAL_LIST(init_logon_delayed_hosts, szInitLogonDelayedHosts)
 FN_GLOBAL_LIST(interfaces, szInterfaces)
+FN_GLOBAL_LIST(name_resolve_order, szNameResolveOrder)
 FN_GLOBAL_LIST(netbios_aliases, szNetbiosAliases)
 FN_GLOBAL_LIST(nsupdate_command, szNSUpdateCommand)
 FN_GLOBAL_LIST(preload_modules, szPreloadModules)
 FN_GLOBAL_LIST(rndc_command, szRNDCCommand)
 FN_GLOBAL_LIST(samba_kcc_command, szSambaKCCCommand)
 FN_GLOBAL_LIST(server_services, server_services)
+FN_GLOBAL_LIST(smb_ports, smb_ports)
 FN_GLOBAL_LIST(spn_update_command, szSPNUpdateCommand)
 FN_GLOBAL_LIST(svcctl_list, szServicesList)
 FN_GLOBAL_LIST(usershare_prefix_allow_list, szUsersharePrefixAllowList)
diff --git a/source3/client/client.c b/source3/client/client.c
index 821bd0a..28fc30a 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -5540,7 +5540,7 @@ static int do_message_op(struct user_auth_info *a_info)
 	}
 
 	if(new_name_resolve_order)
-		lp_set_name_resolve_order(new_name_resolve_order);
+		lp_set_cmdline("name resolve order", new_name_resolve_order);
 
 	if (!tar_type && !query_host && !service && !message) {
 		poptPrintUsage(pc, stderr, 0);
diff --git a/source3/include/proto.h b/source3/include/proto.h
index f551c25..4d99a60 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -900,7 +900,7 @@ NTSTATUS internal_resolve_name(const char *name,
 				const char *sitename,
 				struct ip_service **return_iplist,
 				int *return_count,
-				const char *resolve_order);
+				const char **resolve_order);
 bool resolve_name(const char *name,
 		struct sockaddr_storage *return_ss,
 		int name_type,
@@ -1002,7 +1002,7 @@ NTSTATUS change_trust_account_password( const char *domain, const char *remote_m
 
 /* The following definitions come from param/loadparm.c  */
 
-const char *lp_smb_ports(void);
+const char **lp_smb_ports(void);
 const char *lp_dos_charset(void);
 const char *lp_unix_charset(void);
 char *lp_logfile(TALLOC_CTX *ctx);
@@ -1034,7 +1034,7 @@ char *lp_auto_services(TALLOC_CTX *ctx);
 char *lp_passwd_program(TALLOC_CTX *ctx);
 char *lp_passwd_chat(TALLOC_CTX *ctx);
 const char *lp_passwordserver(void);
-const char *lp_name_resolve_order(void);
+const char **lp_name_resolve_order(void);
 const char *lp_netbios_scope(void);
 const char *lp_netbios_name(void);
 const char *lp_workgroup(void);
@@ -1472,7 +1472,6 @@ bool lp_preferred_master(void);
 void lp_remove_service(int snum);
 void lp_copy_service(int snum, const char *new_name);
 int lp_default_server_announce(void);
-void lp_set_name_resolve_order(const char *new_order);
 const char *lp_printername(TALLOC_CTX *ctx, int snum);
 void lp_set_logfile(const char *name);
 int lp_maxprintjobs(int snum);
diff --git a/source3/libsmb/dsgetdcname.c b/source3/libsmb/dsgetdcname.c
index 02f4bc9..028a31b 100644
--- a/source3/libsmb/dsgetdcname.c
+++ b/source3/libsmb/dsgetdcname.c
@@ -478,6 +478,7 @@ static NTSTATUS discover_dc_netbios(TALLOC_CTX *mem_ctx,
 	int i;
 	struct ip_service_name *dclist = NULL;
 	int count;
+	static const char *resolve_order[] = { "lmhosts", "wins", "bcast", NULL };
 
 	*returned_dclist = NULL;
 	*returned_count = 0;
@@ -492,7 +493,7 @@ static NTSTATUS discover_dc_netbios(TALLOC_CTX *mem_ctx,
 
 	status = internal_resolve_name(domain_name, name_type, NULL,
 				       &iplist, &count,
-				       "lmhosts wins bcast");
+				       resolve_order);
 	if (!NT_STATUS_IS_OK(status)) {
 		DEBUG(10,("discover_dc_netbios: failed to find DC\n"));
 		return status;
diff --git a/source3/libsmb/namequery.c b/source3/libsmb/namequery.c
index 4c05e4f..e4dda16 100644
--- a/source3/libsmb/namequery.c
+++ b/source3/libsmb/namequery.c
@@ -2584,10 +2584,9 @@ NTSTATUS internal_resolve_name(const char *name,
 				const char *sitename,
 				struct ip_service **return_iplist,
 				int *return_count,
-				const char *resolve_order)
+				const char **resolve_order)
 {
-	char *tok;
-	const char *ptr;
+	const char *tok;
 	NTSTATUS status = NT_STATUS_UNSUCCESSFUL;
 	int i;
 	TALLOC_CTX *frame = NULL;
@@ -2640,21 +2639,22 @@ NTSTATUS internal_resolve_name(const char *name,
 
 	/* set the name resolution order */
 
-	if (strcmp( resolve_order, "NULL") == 0) {
+	if (resolve_order && strcmp(resolve_order[0], "NULL") == 0) {
 		DEBUG(8,("internal_resolve_name: all lookups disabled\n"));
 		return NT_STATUS_INVALID_PARAMETER;
 	}
 
-	if (!resolve_order[0]) {
-		ptr = "host";
-	} else {
-		ptr = resolve_order;
+	if (!resolve_order || !resolve_order[0]) {
+		static const char *host_order[] = { "host", NULL };
+		resolve_order = host_order;
 	}
 
 	/* iterate through the name resolution backends */
 
 	frame = talloc_stackframe();
-	while (next_token_talloc(frame, &ptr, &tok, LIST_SEP)) {
+	for (i=0; resolve_order[i]; i++) {
+		tok = resolve_order[i];
+
 		if((strequal(tok, "host") || strequal(tok, "hosts"))) {
 			status = resolve_hosts(name, name_type, return_iplist,
 					       return_count);
@@ -2963,12 +2963,12 @@ bool get_pdc_ip(const char *domain, struct sockaddr_storage *pss)
 	struct ip_service *ip_list = NULL;
 	int count = 0;
 	NTSTATUS status = NT_STATUS_DOMAIN_CONTROLLER_NOT_FOUND;
-
+	static const char *ads_order[] = { "ads", NULL };
 	/* Look up #1B name */
 
 	if (lp_security() == SEC_ADS) {
 		status = internal_resolve_name(domain, 0x1b, NULL, &ip_list,
-					       &count, "ads");
+					       &count, ads_order);
 	}
 
 	if (!NT_STATUS_IS_OK(status) || count == 0) {
@@ -3009,7 +3009,7 @@ static NTSTATUS get_dc_list(const char *domain,
 			enum dc_lookup_type lookup_type,
 			bool *ordered)
 {
-	char *resolve_order = NULL;
+	const char **resolve_order = NULL;
 	char *saf_servername = NULL;
 	char *pserver = NULL;
 	const char *p;
@@ -3040,27 +3040,30 @@ static NTSTATUS get_dc_list(const char *domain,
 	   are disabled and ads_only is True, then set the string to
 	   NULL. */
 
-	resolve_order = talloc_strdup(ctx, lp_name_resolve_order());
+	resolve_order = lp_name_resolve_order();
 	if (!resolve_order) {
 		status = NT_STATUS_NO_MEMORY;
 		goto out;
 	}
-	strlower_m(resolve_order);
 	if (lookup_type == DC_ADS_ONLY)  {
-		if (strstr( resolve_order, "host")) {
-			resolve_order = talloc_strdup(ctx, "ads");
+		if (str_list_check_ci(resolve_order, "host")) {
+			static const char *ads_order[] = { "ads", NULL };
+			resolve_order = ads_order;
 
 			/* DNS SRV lookups used by the ads resolver
 			   are already sorted by priority and weight */
 			*ordered = true;
 		} else {
-                        resolve_order = talloc_strdup(ctx, "NULL");
+			/* this is quite bizarre! */
+			static const char *null_order[] = { "NULL", NULL };
+                        resolve_order = null_order;
 		}
 	} else if (lookup_type == DC_KDC_ONLY) {
+		static const char *kdc_order[] = { "kdc", NULL };
 		/* DNS SRV lookups used by the ads/kdc resolver
 		   are already sorted by priority and weight */
 		*ordered = true;
-		resolve_order = talloc_strdup(ctx, "kdc");
+		resolve_order = kdc_order;
 	}
 	if (!resolve_order) {
 		status = NT_STATUS_NO_MEMORY;
@@ -3281,10 +3284,9 @@ NTSTATUS get_sorted_dc_list( const char *domain,
 	*count = 0;
 
 	DEBUG(8,("get_sorted_dc_list: attempting lookup "
-		"for name %s (sitename %s) using [%s]\n",
+		"for name %s (sitename %s)\n",
 		domain,
-		sitename ? sitename : "NULL",
-		(ads_only ? "ads" : lp_name_resolve_order())));
+		 sitename ? sitename : "NULL"));
 
 	if (ads_only) {
 		lookup_type = DC_ADS_ONLY;
diff --git a/source3/param/loadparm.c b/source3/param/loadparm.c
index d834fd7..2a9900b 100644
--- a/source3/param/loadparm.c
+++ b/source3/param/loadparm.c
@@ -1533,7 +1533,7 @@ static struct parm_struct parm_table[] = {
 	},
 	{
 		.label		= "smb ports",
-		.type		= P_STRING,
+		.type		= P_LIST,
 		.p_class	= P_GLOBAL,
 		.offset		= GLOBAL_VAR(smb_ports),
 		.special	= NULL,
@@ -1749,7 +1749,7 @@ static struct parm_struct parm_table[] = {
 	},
 	{
 		.label		= "name resolve order",
-		.type		= P_STRING,
+		.type		= P_LIST,
 		.p_class	= P_GLOBAL,
 		.offset		= GLOBAL_VAR(szNameResolveOrder),
 		.special	= NULL,
@@ -4730,7 +4730,7 @@ static void init_globals(bool reinit_globals)
 	string_set(&Globals.szLogonHome, "\\\\%N\\%U");
 	string_set(&Globals.szLogonPath, "\\\\%N\\%U\\profile");
 
-	string_set(&Globals.szNameResolveOrder, "lmhosts wins host bcast");
+	Globals.szNameResolveOrder = (const char **)str_list_make_v3(NULL, "lmhosts wins host bcast", NULL);
 	string_set(&Globals.szPasswordServer, "*");
 
 	Globals.AlgorithmicRidBase = BASE_RID;
@@ -4892,7 +4892,12 @@ static void init_globals(bool reinit_globals)
 	string_set(&Globals.szCupsServer, "");
 	string_set(&Globals.szIPrintServer, "");
 
+#ifdef CLUSTER_SUPPORT
+	string_set(&Globals.ctdbdSocket, CTDB_PATH);
+#else
 	string_set(&Globals.ctdbdSocket, "");
+#endif
+
 	Globals.szClusterAddresses = NULL;
 	Globals.clustering = false;
 	Globals.ctdb_timeout = 0;
@@ -4925,7 +4930,7 @@ static void init_globals(bool reinit_globals)
 	Globals.server_signing = SMB_SIGNING_DEFAULT;
 
 	Globals.bDeferSharingViolations = true;
-	string_set(&Globals.smb_ports, SMB_PORTS);
+	Globals.smb_ports = (const char **)str_list_make_v3(NULL, SMB_PORTS, NULL);
 
 	Globals.bEnablePrivileges = true;
 	Globals.bHostMSDfs        = true;
@@ -5042,9 +5047,7 @@ char *lp_ ## fn_name(TALLOC_CTX *ctx,int i) {return(lp_string((ctx), (LP_SNUM_OK
 
 static FN_GLOBAL_BOOL(domain_logons, bDomainLogons)
 static FN_GLOBAL_BOOL(_readraw, bReadRaw)
-static FN_GLOBAL_BOOL(time_server, bTimeServer)
 static FN_GLOBAL_BOOL(_writeraw, bWriteRaw)
-static FN_GLOBAL_CONST_STRING(_ctdbd_socket, ctdbdSocket)
 static FN_GLOBAL_INTEGER(_server_role, ServerRole)
 
 /* If lp_statedir() and lp_cachedir() are explicitely set during the
@@ -5110,8 +5113,6 @@ int lp_cups_encrypt(void)
 
 /* These functions remain in source3/param for now */
 
-FN_GLOBAL_CONST_STRING(name_resolve_order, szNameResolveOrder)
-FN_GLOBAL_CONST_STRING(smb_ports, smb_ports)
 FN_GLOBAL_INTEGER(security, security)
 FN_GLOBAL_INTEGER(usershare_max_shares, iUsershareMaxShares)
 FN_GLOBAL_STRING(configfile, szConfigFile)
@@ -9150,16 +9151,6 @@ void lp_copy_service(int snum, const char *new_name)
 	}
 }
 
-
-/***********************************************************
- Set the global name resolution order (used in smbclient).
-************************************************************/
-
-void lp_set_name_resolve_order(const char *new_order)
-{
-	string_set(&Globals.szNameResolveOrder, new_order);
-}
-
 const char *lp_printername(TALLOC_CTX *ctx, int snum)
 {
 	const char *ret = lp__printername(talloc_tos(), snum);
@@ -9418,15 +9409,3 @@ int lp_server_role(void)
 				   lp_domain_logons(),
 				   lp_domain_master_true_or_auto());
 }
-
-const char *lp_ctdbd_socket(void)
-{
-	const char *result = lp__ctdbd_socket();
-
-#ifdef CLUSTER_SUPPORT
-	if ((result == NULL) || (*result == '\0')) {
-		return CTDB_PATH;
-	}
-#endif
-	return result;
-}
diff --git a/source3/smbd/server.c b/source3/smbd/server.c
index 28374fa..f7f1d8c 100644
--- a/source3/smbd/server.c
+++ b/source3/smbd/server.c
@@ -733,8 +733,8 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent,
 			      const char *smb_ports)
 {
 	int num_interfaces = iface_count();
-	int i;
-	const char *ports;
+	int i,j;
+	const char **ports;
 	unsigned dns_port = 0;
 
 #ifdef HAVE_ATEXIT
@@ -744,16 +744,11 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent,
 	/* Stop zombies */
 	smbd_setup_sig_chld_handler(parent);
 
+	ports = lp_smb_ports();
+
 	/* use a reasonable default set of ports - listing on 445 and 139 */
-	if (!smb_ports) {
-		ports = lp_smb_ports();
-		if (!ports || !*ports) {
-			ports = talloc_strdup(talloc_tos(), SMB_PORTS);
-		} else {
-			ports = talloc_strdup(talloc_tos(), ports);
-		}
-	} else {
-		ports = talloc_strdup(talloc_tos(), smb_ports);
+	if (smb_ports) {
+		ports = (const char **)str_list_make_v3(talloc_tos(), smb_ports, NULL);
 	}
 
 	if (lp_interfaces() && lp_bind_interfaces_only()) {
@@ -767,9 +762,6 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent,
 		for(i = 0; i < num_interfaces; i++) {
 			const struct sockaddr_storage *ifss =
 					iface_n_sockaddr_storage(i);
-			char *tok;
-			const char *ptr;
-
 			if (ifss == NULL) {
 				DEBUG(0,("open_sockets_smbd: "
 					"interface %d has NULL IP address !\n",
@@ -777,9 +769,8 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent,
 				continue;
 			}
 
-			for (ptr=ports;
-			     next_token_talloc(talloc_tos(),&ptr, &tok, " \t,");) {
-				unsigned port = atoi(tok);
+			for (j = 0; ports && ports[j]; j++) {
+				unsigned port = atoi(ports[j]);
 				if (port == 0 || port > 0xffff) {
 					continue;
 				}
@@ -804,8 +795,6 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent,
 		/* Just bind to 0.0.0.0 - accept connections
 		   from anywhere. */
 
-		char *tok;
-		const char *ptr;
 		const char *sock_addr = lp_socket_address();
 		char *sock_tok;
 		const char *sock_ptr;
@@ -821,10 +810,10 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent,
 
 		for (sock_ptr=sock_addr;
 		     next_token_talloc(talloc_tos(), &sock_ptr, &sock_tok, " \t,"); ) {
-			for (ptr=ports; next_token_talloc(talloc_tos(), &ptr, &tok, " \t,"); ) {
+			for (j = 0; ports && ports[j]; j++) {
 				struct sockaddr_storage ss;
 
-				unsigned port = atoi(tok);
+				unsigned port = atoi(ports[j]);
 				if (port == 0 || port > 0xffff) {
 					continue;
 				}
diff --git a/source3/utils/smbpasswd.c b/source3/utils/smbpasswd.c
index 43edab2..f845147 100644
--- a/source3/utils/smbpasswd.c
+++ b/source3/utils/smbpasswd.c
@@ -153,7 +153,7 @@ static int process_options(int argc, char **argv, int local_flags)
 			fstrcpy(ldap_secret, optarg);
 			break;
 		case 'R':
-			lp_set_name_resolve_order(optarg);
+			lp_set_cmdline("name resolve order", optarg);
 			break;
 		case 'D':
 			lp_set_cmdline("log level", optarg);
diff --git a/source4/winbind/idmap.c b/source4/winbind/idmap.c
index 354507c..b4aa62e 100644
--- a/source4/winbind/idmap.c
+++ b/source4/winbind/idmap.c
@@ -368,9 +368,6 @@ failed:
  *
  * If no mapping exists, a new mapping will be created.
  *
- * \todo Check if SIDs can be resolved if lpcfg_idmap_trusted_only() == true
- * \todo Fix backwards compatibility for Samba3
- *
  * \param idmap_ctx idmap context to use
  * \param mem_ctx talloc context to use
  * \param sid SID to map to an unixid struct
@@ -549,9 +546,6 @@ static NTSTATUS idmap_sid_to_xid(struct idmap_context *idmap_ctx,
 		goto failed;
 	}
 
-	/*FIXME: if lpcfg_idmap_trusted_only() == true, check if SID can be
-	 * resolved here. */
-
 	ret = idmap_get_bounds(idmap_ctx, &low, &high);
 	if (ret != LDB_SUCCESS) {


-- 
Samba Shared Repository


More information about the samba-cvs mailing list