Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

build: use getenv() replacement function for systems which lack it

  • Loading branch information...
commit 822fd0f8771d3792da0a08276ab0400b2a68f07e 1 parent 3abad87
@yangtse yangtse authored
View
2  Makefile.inc
@@ -11,6 +11,7 @@ CSOURCES = ares__close_sockets.c \
ares_fds.c \
ares_free_hostent.c \
ares_free_string.c \
+ ares_getenv.c \
ares_gethostbyaddr.c \
ares_gethostbyname.c \
ares_getnameinfo.c \
@@ -47,6 +48,7 @@ HHEADERS = ares.h \
ares_build.h \
ares_data.h \
ares_dns.h \
+ ares_getenv.h \
ares_ipv6.h \
ares_library_init.h \
ares_llist.h \
View
1  Makefile.netware
@@ -357,6 +357,7 @@ endif
@echo $(DL)#define HAVE_ERRNO_H 1$(DL) >> $@
@echo $(DL)#define HAVE_ERR_H 1$(DL) >> $@
@echo $(DL)#define HAVE_FCNTL_H 1$(DL) >> $@
+ @echo $(DL)#define HAVE_GETENV 1$(DL) >> $@
@echo $(DL)#define HAVE_GETHOSTBYADDR 1$(DL) >> $@
@echo $(DL)#define HAVE_GETHOSTBYNAME 1$(DL) >> $@
@echo $(DL)#define HAVE_GETHOSTNAME 1$(DL) >> $@
View
30 ares_getenv.c
@@ -0,0 +1,30 @@
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+#include "ares_getenv.h"
+
+#ifndef HAVE_GETENV
+
+char *ares_getenv(const char *name)
+{
+#ifdef _WIN32_WCE
+ return NULL;
+#endif
+}
+
+#endif
View
26 ares_getenv.h
@@ -0,0 +1,26 @@
+#ifndef HEADER_CARES_GETENV_H
+#define HEADER_CARES_GETENV_H
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifndef HAVE_GETENV
+extern char *ares_getenv(const char *name);
+#endif
+
+#endif /* HEADER_CARES_GETENV_H */
View
5 ares_private.h
@@ -89,6 +89,11 @@
#include "ares_ipv6.h"
#include "ares_llist.h"
+#ifndef HAVE_GETENV
+# include "ares_getenv.h"
+# define getenv(ptr) ares_getenv(ptr)
+#endif
+
#ifndef HAVE_STRDUP
# include "ares_strdup.h"
# define strdup(ptr) ares_strdup(ptr)
View
1  config-dos.h
@@ -9,6 +9,7 @@
#define PACKAGE "c-ares"
#define HAVE_ERRNO_H 1
+#define HAVE_GETENV 1
#define HAVE_GETTIMEOFDAY 1
#define HAVE_IOCTLSOCKET 1
#define HAVE_IOCTLSOCKET_FIONBIO 1
View
3  config-win32.h
@@ -93,6 +93,9 @@
/* Define if you have the closesocket function. */
#define HAVE_CLOSESOCKET 1
+/* Define if you have the getenv function. */
+#define HAVE_GETENV 1
+
/* Define if you have the gethostname function. */
#define HAVE_GETHOSTNAME 1
View
1  configure.ac
@@ -524,6 +524,7 @@ CARES_CHECK_FUNC_CONNECT
CARES_CHECK_FUNC_FCNTL
CARES_CHECK_FUNC_FREEADDRINFO
CARES_CHECK_FUNC_GETADDRINFO
+CARES_CHECK_FUNC_GETENV
CARES_CHECK_FUNC_GETHOSTBYADDR
CARES_CHECK_FUNC_GETHOSTBYNAME
CARES_CHECK_FUNC_GETHOSTNAME
View
89 m4/cares-functions.m4
@@ -1,6 +1,6 @@
#***************************************************************************
#
-# Copyright (C) 2008 - 2010 by Daniel Stenberg et al
+# Copyright (C) 2008 - 2011 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
@@ -15,7 +15,7 @@
#***************************************************************************
# File version for 'aclocal' use. Keep it a single number.
-# serial 40
+# serial 41
dnl CARES_INCLUDES_ARPA_INET
@@ -1084,6 +1084,91 @@ AC_DEFUN([CARES_CHECK_FUNC_GETADDRINFO], [
])
+dnl CARES_CHECK_FUNC_GETENV
+dnl -------------------------------------------------
+dnl Verify if getenv is available, prototyped, and
+dnl can be compiled. If all of these are true, and
+dnl usage has not been previously disallowed with
+dnl shell variable cares_disallow_getenv, then
+dnl HAVE_GETENV will be defined.
+
+AC_DEFUN([CARES_CHECK_FUNC_GETENV], [
+ AC_REQUIRE([CARES_INCLUDES_STDLIB])dnl
+ #
+ tst_links_getenv="unknown"
+ tst_proto_getenv="unknown"
+ tst_compi_getenv="unknown"
+ tst_allow_getenv="unknown"
+ #
+ AC_MSG_CHECKING([if getenv can be linked])
+ AC_LINK_IFELSE([
+ AC_LANG_FUNC_LINK_TRY([getenv])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_links_getenv="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_links_getenv="no"
+ ])
+ #
+ if test "$tst_links_getenv" = "yes"; then
+ AC_MSG_CHECKING([if getenv is prototyped])
+ AC_EGREP_CPP([getenv],[
+ $cares_includes_stdlib
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_proto_getenv="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_proto_getenv="no"
+ ])
+ fi
+ #
+ if test "$tst_proto_getenv" = "yes"; then
+ AC_MSG_CHECKING([if getenv is compilable])
+ AC_COMPILE_IFELSE([
+ AC_LANG_PROGRAM([[
+ $cares_includes_stdlib
+ ]],[[
+ if(0 != getenv(0))
+ return 1;
+ ]])
+ ],[
+ AC_MSG_RESULT([yes])
+ tst_compi_getenv="yes"
+ ],[
+ AC_MSG_RESULT([no])
+ tst_compi_getenv="no"
+ ])
+ fi
+ #
+ if test "$tst_compi_getenv" = "yes"; then
+ AC_MSG_CHECKING([if getenv usage allowed])
+ if test "x$cares_disallow_getenv" != "xyes"; then
+ AC_MSG_RESULT([yes])
+ tst_allow_getenv="yes"
+ else
+ AC_MSG_RESULT([no])
+ tst_allow_getenv="no"
+ fi
+ fi
+ #
+ AC_MSG_CHECKING([if getenv might be used])
+ if test "$tst_links_getenv" = "yes" &&
+ test "$tst_proto_getenv" = "yes" &&
+ test "$tst_compi_getenv" = "yes" &&
+ test "$tst_allow_getenv" = "yes"; then
+ AC_MSG_RESULT([yes])
+ AC_DEFINE_UNQUOTED(HAVE_GETENV, 1,
+ [Define to 1 if you have the getenv function.])
+ ac_cv_func_getenv="yes"
+ else
+ AC_MSG_RESULT([no])
+ ac_cv_func_getenv="no"
+ fi
+])
+
+
dnl CARES_CHECK_FUNC_GETHOSTBYADDR
dnl -------------------------------------------------
dnl Verify if gethostbyaddr is available, prototyped,
View
8 vc/cares/vc6cares.dsp
@@ -198,6 +198,10 @@ SOURCE=..\..\ares_free_string.c
# End Source File
# Begin Source File
+SOURCE=..\..\ares_getenv.c
+# End Source File
+# Begin Source File
+
SOURCE=..\..\ares_gethostbyaddr.c
# End Source File
# Begin Source File
@@ -342,6 +346,10 @@ SOURCE=..\..\ares_dns.h
# End Source File
# Begin Source File
+SOURCE=..\..\ares_getenv.h
+# End Source File
+# Begin Source File
+
SOURCE=..\..\ares_ipv6.h
# End Source File
# Begin Source File
Please sign in to comment.
Something went wrong with that request. Please try again.