changeset 13098:1715b7145825

6975991 ipadm show-addr does not show tunnel destination address
author Vasumathi Sundaram <Vasumathi.Sundaram@oracle.COM>
date Thu, 12 Aug 2010 09:27:28 -0400
parents d27330a7e466
children baf8bd9f8381
files usr/src/cmd/cmd-inet/usr.sbin/ipadm/ipadm.c usr/src/lib/libsocket/inet/getifaddrs.c
diffstat 2 files changed, 11 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/cmd/cmd-inet/usr.sbin/ipadm/ipadm.c	Thu Aug 12 13:34:42 2010 +0530
+++ b/usr/src/cmd/cmd-inet/usr.sbin/ipadm/ipadm.c	Thu Aug 12 09:27:28 2010 -0400
@@ -1763,20 +1763,18 @@
 				}
 				break;
 			}
-			/*
-			 * For the non-persistent case, we need to show the
-			 * currently configured addresses for source and
-			 * destination.
-			 */
-			if (ifa->ifa_flags & IFF_POINTOPOINT) {
-				sockaddr2str(
-				    (struct sockaddr_storage *)ifa->ifa_dstaddr,
-				    dstbuf, sizeof (dstbuf));
-			}
 		}
+		/*
+		 * For the non-persistent case, we need to show the
+		 * currently configured addresses for source and
+		 * destination.
+		 */
 		sockaddr2str((struct sockaddr_storage *)ifa->ifa_addr,
 		    addrbuf, sizeof (addrbuf));
-		if (dstbuf[0] != '\0') {
+		if (ifa->ifa_flags & IFF_POINTOPOINT) {
+			sockaddr2str(
+			    (struct sockaddr_storage *)ifa->ifa_dstaddr,
+			    dstbuf, sizeof (dstbuf));
 			(void) snprintf(buf, bufsize, "%s->%s", addrbuf,
 			    dstbuf);
 		} else {
--- a/usr/src/lib/libsocket/inet/getifaddrs.c	Thu Aug 12 13:34:42 2010 +0530
+++ b/usr/src/lib/libsocket/inet/getifaddrs.c	Thu Aug 12 09:27:28 2010 -0400
@@ -183,7 +183,7 @@
 			    sizeof (struct sockaddr_storage));
 			if (curr->ifa_dstaddr == NULL)
 				goto fail;
-			(void) memcpy(curr->ifa_dstaddr, &lifrp->lifr_addr,
+			(void) memcpy(curr->ifa_dstaddr, &lifrl.lifr_addr,
 			    sizeof (struct sockaddr_storage));
 		} else if (curr->ifa_flags & IFF_BROADCAST) {
 			if (ioctl(s, SIOCGLIFBRDADDR, (caddr_t)&lifrl) < 0)
@@ -192,7 +192,7 @@
 			    sizeof (struct sockaddr_storage));
 			if (curr->ifa_broadaddr == NULL)
 				goto fail;
-			(void) memcpy(curr->ifa_broadaddr, &lifrp->lifr_addr,
+			(void) memcpy(curr->ifa_broadaddr, &lifrl.lifr_addr,
 			    sizeof (struct sockaddr_storage));
 		}