[Xcb] [PATCH] Initialize all fields of addrinfo and use #ifdef

Julien Danjou julien at danjou.info
Wed Aug 27 04:56:27 PDT 2008


Signed-off-by: Julien Danjou <julien at danjou.info>
---
 src/xcb_util.c |   21 ++++++++++++---------
 1 files changed, 12 insertions(+), 9 deletions(-)

diff --git a/src/xcb_util.c b/src/xcb_util.c
index 8c18d71..c6c5189 100644
--- a/src/xcb_util.c
+++ b/src/xcb_util.c
@@ -201,14 +201,7 @@ static int _xcb_open_decnet(const char *host, const char *protocol, const unsign
 static int _xcb_open_tcp(char *host, char *protocol, const unsigned short port)
 {
     int fd = -1;
-    struct addrinfo hints = { 0
-#ifdef AI_ADDRCONFIG
-                              | AI_ADDRCONFIG
-#endif
-#ifdef AI_NUMERICSERV
-                              | AI_NUMERICSERV
-#endif
-                              , AF_UNSPEC, SOCK_STREAM };
+    struct addrinfo hints;
     char service[6]; /* "65535" with the trailing '\0' */
     struct addrinfo *results, *addr;
     char *bracket;
@@ -216,6 +209,16 @@ static int _xcb_open_tcp(char *host, char *protocol, const unsigned short port)
     if (protocol && strcmp("tcp",protocol))
         return -1;
 
+    memset(&hints, 0, sizeof(hints));
+#ifdef AI_ADDRCONFIG
+    hints.ai_flags |= AI_ADDRCONFIG;
+#endif
+#ifdef AI_NUMERICSERV
+    hints.ai_flags |= AI_NUMERICSERV;
+#endif
+    hints.ai_family = AF_UNSPEC;
+    hints.ai_socktype = SOCK_STREAM;
+
 #ifdef AF_INET6
     /* Allow IPv6 addresses enclosed in brackets. */
     if(host[0] == '[' && (bracket = strrchr(host, ']')) && bracket[1] == '\0')
@@ -253,7 +256,7 @@ static int _xcb_open_unix(char *protocol, const char *file)
 
     strcpy(addr.sun_path, file);
     addr.sun_family = AF_UNIX;
-#if HAVE_SOCKADDR_SUN_LEN
+#ifdef HAVE_SOCKADDR_SUN_LEN
     addr.sun_len = SUN_LEN(&addr);
 #endif
     fd = socket(AF_UNIX, SOCK_STREAM, 0);
-- 
1.5.6.3



More information about the Xcb mailing list