ares_init.c: fix compiler warning on winsock builds
authorYang Tse <yangsita@gmail.com>
Thu, 19 Jan 2012 19:20:56 +0000 (20:20 +0100)
committerYang Tse <yangsita@gmail.com>
Thu, 19 Jan 2012 19:20:56 +0000 (20:20 +0100)
ares_init.c
ares_setup.h

index 0c1d5458db94e611678fd7ce0359c3eff354c35a..d18f97ecf240f636fe22787224d141e9161055eb 100644 (file)
@@ -1,6 +1,6 @@
 
 /* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2007-2011 by Daniel Stenberg
+ * Copyright (C) 2007-2012 by Daniel Stenberg
  *
  * Permission to use, copy, modify, and distribute this
  * software and its documentation for any purpose and without
@@ -1186,11 +1186,14 @@ static int init_by_defaults(ares_channel channel)
     /* Derive a default domain search list from the kernel hostname,
      * or set it to empty if the hostname isn't helpful.
      */
+#ifndef HAVE_GETHOSTNAME
+    channel->ndomains = 0; /* default to none */
+#else
+    GETHOSTNAME_TYPE_ARG2 lenv = 64;
     size_t len = 64;
     int res;
     channel->ndomains = 0; /* default to none */
 
-#ifdef HAVE_GETHOSTNAME
     hostname = malloc(len);
     if(!hostname) {
       rc = ARES_ENOMEM;
@@ -1198,11 +1201,12 @@ static int init_by_defaults(ares_channel channel)
     }
 
     do {
-      res = gethostname(hostname, len);
+      res = gethostname(hostname, lenv);
 
       if(toolong(res)) {
         char *p;
         len *= 2;
+        lenv *= 2;
         p = realloc(hostname, len);
         if(!p) {
           rc = ARES_ENOMEM;
index a46c510b709f0286a7184e267f86150df88ee2bd..1ef054dc57a1fcce28949f16d309b934c54b7e1c 100644 (file)
@@ -2,7 +2,7 @@
 #define HEADER_CARES_SETUP_H
 
 
-/* Copyright (C) 2004 - 2009 by Daniel Stenberg et al
+/* Copyright (C) 2004 - 2012 by Daniel Stenberg et al
  *
  * Permission to use, copy, modify, and distribute this software and its
  * documentation for any purpose and without fee is hereby granted, provided
 
 #endif /* HAVE_CONFIG_H */
 
+/*
+ * Arg 2 type for gethostname in case it hasn't been defined in config file.
+ */
+
+#ifndef GETHOSTNAME_TYPE_ARG2
+#  ifdef USE_WINSOCK
+#    define GETHOSTNAME_TYPE_ARG2 int
+#  else
+#    define GETHOSTNAME_TYPE_ARG2 size_t
+#  endif
+#endif
+
 #ifdef __POCC__
 #  include <sys/types.h>
 #  include <unistd.h>