changeset 387:43c0e3f67958

Simplified macro
author Sebastien Decugis <sdecugis@nict.go.jp>
date Fri, 29 May 2009 12:57:22 +0900
parents 31c6b1e0294d
children 1a4902b216f8
files waaad/utils.h
diffstat 1 files changed, 13 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/waaad/utils.h	Fri May 29 12:57:01 2009 +0900
+++ b/waaad/utils.h	Fri May 29 12:57:22 2009 +0900
@@ -48,6 +48,8 @@
 #include <string.h>
 #include <errno.h>
 #include <arpa/inet.h>
+#include <sys/socket.h>
+#include <netdb.h>
 
 /********************************************************************************************************/
 /* Some debug stuff */
@@ -188,32 +190,17 @@
 	sSA * __sa = (sSA *)(sa);				\
 	char *__str, __addrbuf[INET6_ADDRSTRLEN];		\
 	if (__sa) {						\
-	  switch (__sa->sa_family) {				\
-		case AF_INET:					\
-		{						\
-			sSA4 *__sin = (sSA4 *)__sa;		\
-			__str = (char *)inet_ntop(AF_INET,	\
-					&__sin->sin_addr.s_addr,\
-					 __addrbuf, 		\
-					 INET6_ADDRSTRLEN);	\
-		}						\
-		break;						\
-		case AF_INET6:					\
-		{						\
-			sSA6 *__s6 = (sSA6 *)__sa;		\
-			__str = (char *)inet_ntop(AF_INET6,	\
-					&__s6->sin6_addr.s6_addr,\
-					 __addrbuf, 		\
-					 INET6_ADDRSTRLEN);	\
-		}						\
-		break;						\
-		default:					\
-			snprintf(__addrbuf, 			\
-				 INET6_ADDRSTRLEN, 		\
-				 "Unknown AF: %d", 		\
-				 __sa->sa_family);		\
-			__str = __addrbuf;			\
-	  }							\
+	  int __rc = getnameinfo(__sa, 				\
+	  		sizeof(sSS),				\
+			__addrbuf,				\
+			sizeof(__addrbuf),			\
+			NULL,					\
+			0,					\
+			0);					\
+	  if (__rc)						\
+	  	__str = (char *)gai_strerror(__rc);		\
+	  else							\
+	  	__str = &__addrbuf[0];				\
 	} else {						\
 		__str = "(NULL / ANY)";				\
 	}							\
"Welcome to our mercurial repository"