Latest ipv6 changes broke (the deprecated) smbmount, smbmnt and smbctool

Guenter Kukkukk linux at kukkukk.com
Sun Oct 14 15:29:04 GMT 2007


Some changes have to do done to
  - smbmount.c
  - smbmnt.c
  - smbctool.c

zero_ip    --> zero_ip_v4
is_zero_ip --> is_zero_ip_v4

In addition some cleanup has been done to avoid compiler warnings.
Cheers, Guenter

  
--------------
diff --git a/source/client/smbctool.c b/source/client/smbctool.c
index 28122d8..4390ee3 100644
--- a/source/client/smbctool.c
+++ b/source/client/smbctool.c
@@ -3485,7 +3485,7 @@ static int do_message_op(void)
 	snprintf(name_type_hex, sizeof(name_type_hex), "#%X", name_type);
 	fstrcat(server_name, name_type_hex);
 
-		zero_ip(&ip);
+		zero_ip_v4(&ip);
 	if (have_ip) 
 		ip = dest_ip;
 
@@ -3596,7 +3596,7 @@ static int do_message_op(void)
 		case 'I':
 			{
 				dest_ip = *interpret_addr2(poptGetOptArg(pc));
-				if (is_zero_ip(dest_ip))
+				if (is_zero_ip_v4(dest_ip))
 					exit(1);
 				have_ip = True;
 
diff --git a/source/client/smbmnt.c b/source/client/smbmnt.c
index c9759f4..08dcac8 100644
--- a/source/client/smbmnt.c
+++ b/source/client/smbmnt.c
@@ -272,10 +272,10 @@ do_mount(char *share_name, unsigned int flags, struct smb_mount_data *data)
 		return -1;
 	}
 
-        ment.mnt_fsname = share_name ? share_name : "none";
+        ment.mnt_fsname = share_name ? share_name : (char *)"none";
         ment.mnt_dir = mount_point;
-        ment.mnt_type = "smbfs";
-        ment.mnt_opts = "";
+        ment.mnt_type = (char *)"smbfs";
+        ment.mnt_opts = (char *)"";
         ment.mnt_freq = 0;
         ment.mnt_passno= 0;
 
diff --git a/source/client/smbmount.c b/source/client/smbmount.c
index b68dbfe..d2a4b9a 100644
--- a/source/client/smbmount.c
+++ b/source/client/smbmount.c
@@ -146,7 +146,7 @@ static struct cli_state *do_connection(char *the_service)
 	make_nmb_name(&called , server, 0x20);
 
  again:
-        zero_ip(&ip);
+        zero_ip_v4(&ip);
 	if (have_ip) ip = dest_ip;
 
 	/* have to open a new connection */
@@ -435,7 +435,7 @@ static void init_mount(void)
 	pstring tmp;
 	pstring svc2;
 	struct cli_state *c;
-	char *args[20];
+	const char *args[20];
 	int i, status;
 
 	if (realpath(mpoint, mount_point) == NULL) {
@@ -503,12 +503,12 @@ static void init_mount(void)
 		asprintf(&smbmnt_path, "%s/smbmnt", dyn_BINDIR);
 		
 		if (file_exist(smbmnt_path, NULL)) {
-			execv(smbmnt_path, args);
+			execv(smbmnt_path, (char * const *)args);
 			fprintf(stderr,
 				"smbfs/init_mount: execv of %s failed. Error was %s.",
 				smbmnt_path, strerror(errno));
 		} else {
-			execvp("smbmnt", args);
+			execvp("smbmnt", (char * const *)args);
 			fprintf(stderr,
 				"smbfs/init_mount: execv of %s failed. Error was %s.",
 				"smbmnt", strerror(errno));
@@ -799,7 +799,7 @@ static void parse_mount_smb(int argc, char **argv)
 				DEBUGLEVEL = val;
 			} else if(!strcmp(opts, "ip")) {
 				dest_ip = *interpret_addr2(opteq+1);
-				if (is_zero_ip(dest_ip)) {
+				if (is_zero_ip_v4(dest_ip)) {
 					fprintf(stderr,"Can't resolve address %s\n", opteq+1);
 					exit(1);
 				}


More information about the samba-technical mailing list