de3645c
--- net-tools-1.60/arp.c	2001-04-08 10:05:05.000000000 -0700
de3645c
+++ net-tools-1.60.new/arp.c	2006-01-31 13:10:01.479716750 -0800
de3645c
@@ -100,7 +100,7 @@ static int arp_del(char **args)
de3645c
 {
de3645c
     char host[128];
de3645c
     struct arpreq req;
de3645c
-    struct sockaddr sa;
de3645c
+    struct sockaddr_storage ss;
de3645c
     int flags = 0;
de3645c
     int err;
de3645c
 
de3645c
@@ -112,12 +112,12 @@ static int arp_del(char **args)
de3645c
 	return (-1);
de3645c
     }
de3645c
     safe_strncpy(host, *args, (sizeof host));
de3645c
-    if (ap->input(0, host, &sa) < 0) {
de3645c
+    if (ap->input(0, host, (struct sockaddr*)&ss) < 0) {
de3645c
 	ap->herror(host);
de3645c
 	return (-1);
de3645c
     }
de3645c
     /* If a host has more than one address, use the correct one! */
de3645c
-    memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr));
de3645c
+    memcpy((char *) &req.arp_pa, (char *) &ss, sizeof(struct sockaddr));
de3645c
 
de3645c
     if (hw_set)
de3645c
 	req.arp_ha.sa_family = hw->type;
de3645c
@@ -177,11 +177,11 @@ static int arp_del(char **args)
de3645c
 		usage();
de3645c
 	    if (strcmp(*args, "255.255.255.255") != 0) {
de3645c
 		strcpy(host, *args);
de3645c
-		if (ap->input(0, host, &sa) < 0) {
de3645c
+		if (ap->input(0, host, (struct sockaddr*)&ss) < 0) {
de3645c
 		    ap->herror(host);
de3645c
 		    return (-1);
de3645c
 		}
de3645c
-		memcpy((char *) &req.arp_netmask, (char *) &sa,
de3645c
+		memcpy((char *) &req.arp_netmask, (char *) &ss,
de3645c
 		       sizeof(struct sockaddr));
de3645c
 		req.arp_flags |= ATF_NETMASK;
de3645c
 	    }
de3645c
@@ -260,7 +260,7 @@ static int arp_set(char **args)
de3645c
 {
de3645c
     char host[128];
de3645c
     struct arpreq req;
de3645c
-    struct sockaddr sa;
de3645c
+    struct sockaddr_storage ss;
de3645c
     int flags;
de3645c
 
de3645c
     memset((char *) &req, 0, sizeof(req));
de3645c
@@ -271,12 +271,12 @@ static int arp_set(char **args)
de3645c
 	return (-1);
de3645c
     }
de3645c
     safe_strncpy(host, *args++, (sizeof host));
de3645c
-    if (ap->input(0, host, &sa) < 0) {
de3645c
+    if (ap->input(0, host, (struct sockaddr*)&ss) < 0) {
de3645c
 	ap->herror(host);
de3645c
 	return (-1);
de3645c
     }
de3645c
     /* If a host has more than one address, use the correct one! */
de3645c
-    memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr));
de3645c
+    memcpy((char *) &req.arp_pa, (char *) &ss, sizeof(struct sockaddr));
de3645c
 
de3645c
     /* Fetch the hardware address. */
de3645c
     if (*args == NULL) {
de3645c
@@ -346,11 +346,11 @@ static int arp_set(char **args)
de3645c
 		usage();
de3645c
 	    if (strcmp(*args, "255.255.255.255") != 0) {
de3645c
 		strcpy(host, *args);
de3645c
-		if (ap->input(0, host, &sa) < 0) {
de3645c
+		if (ap->input(0, host, (struct sockaddr*)&ss) < 0) {
de3645c
 		    ap->herror(host);
de3645c
 		    return (-1);
de3645c
 		}
de3645c
-		memcpy((char *) &req.arp_netmask, (char *) &sa,
de3645c
+		memcpy((char *) &req.arp_netmask, (char *) &ss,
de3645c
 		       sizeof(struct sockaddr));
de3645c
 		flags |= ATF_NETMASK;
de3645c
 	    }
de3645c
@@ -519,7 +519,7 @@ static void arp_disp(char *name, char *i
de3645c
 static int arp_show(char *name)
de3645c
 {
de3645c
     char host[100];
de3645c
-    struct sockaddr sa;
de3645c
+    struct sockaddr_storage ss;
de3645c
     char ip[100];
de3645c
     char hwa[100];
de3645c
     char mask[100];
de3645c
@@ -535,11 +535,11 @@ static int arp_show(char *name)
de3645c
     if (name != NULL) {
de3645c
 	/* Resolve the host name. */
de3645c
 	safe_strncpy(host, name, (sizeof host));
de3645c
-	if (ap->input(0, host, &sa) < 0) {
de3645c
+	if (ap->input(0, host, (struct sockaddr*)&ss) < 0) {
de3645c
 	    ap->herror(host);
de3645c
 	    return (-1);
de3645c
 	}
de3645c
-	safe_strncpy(host, ap->sprint(&sa, 1), sizeof(host));
de3645c
+	safe_strncpy(host, ap->sprint((struct sockaddr*)&ss, 1), sizeof(host));
de3645c
     }
de3645c
     /* Open the PROCps kernel table. */
de3645c
     if ((fp = fopen(_PATH_PROCNET_ARP, "r")) == NULL) {
de3645c
@@ -575,10 +575,11 @@ static int arp_show(char *name)
de3645c
 	    if (opt_n)
de3645c
 		hostname = "?";
de3645c
 	    else {
de3645c
-		if (ap->input(0, ip, &sa) < 0)
de3645c
+		if (ap->input(0, ip, (struct sockaddr*)&ss) < 0)
de3645c
 		    hostname = ip;
de3645c
 		else
de3645c
-		    hostname = ap->sprint(&sa, opt_n | 0x8000);
de3645c
+		    hostname = ap->sprint((struct sockaddr*)&ss, 
de3645c
+		                          opt_n | 0x8000);
de3645c
 		if (strcmp(hostname, ip) == 0)
de3645c
 		    hostname = "?";
de3645c
 	    }
de3645c