svn commit: samba r1819 - in branches/SAMBA_4_0/source: libcli/raw param smb_server

tridge at samba.org tridge at samba.org
Sat Aug 14 05:56:12 GMT 2004


Author: tridge
Date: 2004-08-14 05:56:12 +0000 (Sat, 14 Aug 2004)
New Revision: 1819
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source&rev=1819&nolog=1
Log:
changed "smb ports" to be a LIST parameter type in loadparm (its a classic case for a list)


Modified:
   branches/SAMBA_4_0/source/libcli/raw/clisocket.c
   branches/SAMBA_4_0/source/param/loadparm.c
   branches/SAMBA_4_0/source/smb_server/smb_server.c

Changeset:
Modified: branches/SAMBA_4_0/source/libcli/raw/clisocket.c
===================================================================
--- branches/SAMBA_4_0/source/libcli/raw/clisocket.c	2004-08-14 05:53:53 UTC (rev 1818)
+++ branches/SAMBA_4_0/source/libcli/raw/clisocket.c	2004-08-14 05:56:12 UTC (rev 1819)
@@ -62,8 +62,15 @@
 	}
 
 	if (port == 0) {
-		return smbcli_sock_connect(sock, ip, 445) ||
-			smbcli_sock_connect(sock, ip, 139);
+		int i;
+		const char **ports = lp_smb_ports();
+		for (i=0;ports[i];i++) {
+			int port = atoi(ports[i]);
+			if (port != 0 && smbcli_sock_connect(sock, ip, port)) {
+				return True;
+			}
+		}
+		return False;
 	}
 
 	sock->dest_ip = *ip;

Modified: branches/SAMBA_4_0/source/param/loadparm.c
===================================================================
--- branches/SAMBA_4_0/source/param/loadparm.c	2004-08-14 05:53:53 UTC (rev 1818)
+++ branches/SAMBA_4_0/source/param/loadparm.c	2004-08-14 05:56:12 UTC (rev 1819)
@@ -89,7 +89,7 @@
  */
 typedef struct
 {
-	char *smb_ports;
+	char **smb_ports;
 	char *dos_charset;
 	char *unix_charset;
 	char *display_charset;
@@ -633,7 +633,7 @@
 	
 	{"Protocol Options", P_SEP, P_SEPARATOR},
 	
-	{"smb ports", P_STRING, P_GLOBAL, &Globals.smb_ports, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
+	{"smb ports", P_LIST, P_GLOBAL, &Globals.smb_ports, NULL, NULL, FLAG_ADVANCED | FLAG_DEVELOPER},
 	{"large readwrite", P_BOOL, P_GLOBAL, &Globals.bLargeReadwrite, NULL, NULL, FLAG_DEVELOPER},
 	{"max protocol", P_ENUM, P_GLOBAL, &Globals.maxprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
 	{"min protocol", P_ENUM, P_GLOBAL, &Globals.minprotocol, NULL, enum_protocol, FLAG_DEVELOPER},
@@ -1112,7 +1112,7 @@
 	Globals.client_signing = SMB_SIGNING_SUPPORTED;
 	Globals.server_signing = SMB_SIGNING_SUPPORTED;
 
-	string_set(&Globals.smb_ports, SMB_PORTS);
+	Globals.smb_ports = str_list_make(SMB_PORTS, NULL);
 }
 
 static TALLOC_CTX *lp_talloc;
@@ -1207,7 +1207,7 @@
 #define FN_LOCAL_INTEGER(fn_name,val) \
  int fn_name(int i) {return(LP_SNUM_OK(i)? ServicePtrs[(i)]->val : sDefault.val);}
 
-FN_GLOBAL_STRING(lp_smb_ports, &Globals.smb_ports)
+FN_GLOBAL_LIST(lp_smb_ports, &Globals.smb_ports)
 FN_GLOBAL_STRING(lp_dos_charset, &Globals.dos_charset)
 FN_GLOBAL_STRING(lp_unix_charset, &Globals.unix_charset)
 FN_GLOBAL_STRING(lp_display_charset, &Globals.display_charset)

Modified: branches/SAMBA_4_0/source/smb_server/smb_server.c
===================================================================
--- branches/SAMBA_4_0/source/smb_server/smb_server.c	2004-08-14 05:53:53 UTC (rev 1818)
+++ branches/SAMBA_4_0/source/smb_server/smb_server.c	2004-08-14 05:56:12 UTC (rev 1819)
@@ -681,12 +681,11 @@
 		       struct in_addr *ifip)
 {
 	char *ptr, *tok;
-	const char *delim = ", ";
+	char **ports = lp_smb_ports();
+	int i;
 
-	for (tok=strtok_r(lp_smb_ports(), delim, &ptr); 
-	     tok; 
-	     tok=strtok_r(NULL, delim, &ptr)) {
-		uint16_t port = atoi(tok);
+	for (i=0;ports[i];i++) {
+		uint16_t port = atoi(ports[i]);
 		if (port == 0) continue;
 		service_setup_socket(service, model_ops, socket_ctx, ifip, &port);
 	}



More information about the samba-cvs mailing list