Problem: MS-Windows: cannot build with WINVER set to 0x0501.
Solution: Only use inet_ntop() when available. (Ozaki Kiichi, closes #5946)
ifeq ($(CHANNEL),yes)
DEFINES += -DFEAT_JOB_CHANNEL -DFEAT_IPV6
+ ifeq ($(shell expr "$(WINVER)" \>= 0x600),1)
+DEFINES += -DHAVE_INET_NTOP
+ endif
endif
ifeq ($(TERMINAL),yes)
CPU = ix86
!endif
+### Set the default $(WINVER) to make it work with VC++7.0 (VS.NET)
+!ifndef WINVER
+WINVER = 0x0501
+!endif
# Flag to turn on Win64 compatibility warnings for VC7.x and VC8.
WP64CHECK = /Wp64
CHANNEL_PRO = proto/channel.pro
CHANNEL_OBJ = $(OBJDIR)/channel.obj
CHANNEL_DEFS = -DFEAT_JOB_CHANNEL -DFEAT_IPV6
+! if $(WINVER) >= 0x600
+CHANNEL_DEFS = $(CHANNEL_DEFS) -DHAVE_INET_NTOP
+! endif
NETBEANS_LIB = WSock32.lib Ws2_32.lib
!endif
CON_LIB = $(CON_LIB) /DELAYLOAD:comdlg32.dll /DELAYLOAD:ole32.dll DelayImp.lib
!endif
-### Set the default $(WINVER) to make it work with VC++7.0 (VS.NET)
-!ifndef WINVER
-WINVER = 0x0501
-!endif
-
# If you have a fixed directory for $VIM or $VIMRUNTIME, other than the normal
# default, use these lines.
#VIMRCLOC = somewhere
if test "x$vim_cv_ipv6_networking" = "xyes"; then
$as_echo "#define FEAT_IPV6 1" >>confdefs.h
+ for ac_func in inet_ntop
+do :
+ ac_fn_c_check_func "$LINENO" "inet_ntop" "ac_cv_func_inet_ntop"
+if test "x$ac_cv_func_inet_ntop" = xyes; then :
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_INET_NTOP 1
+_ACEOF
+
+fi
+done
+
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5
$as_echo_n "checking for gethostbyname in -lnsl... " >&6; }
for (addr = res; addr != NULL; addr = addr->ai_next)
{
- const char *dst = hostname;
- const void *src = NULL;
- char buf[NUMBUFLEN];
+ const char *dst = hostname;
+ const void *src = NULL;
+# ifdef HAVE_INET_NTOP
+ char buf[NUMBUFLEN];
+# endif
if (addr->ai_family == AF_INET6)
{
sai->sin_port = htons(port);
src = &sai->sin_addr;
}
+# ifdef HAVE_INET_NTOP
if (src != NULL)
{
dst = inet_ntop(addr->ai_family, src, buf, sizeof(buf));
- if (dst != NULL && STRCMP(hostname, dst) != 0)
+ if (dst == NULL)
+ dst = hostname;
+ else if (STRCMP(hostname, dst) != 0)
ch_log(channel, "Resolved %s to %s", hostname, dst);
}
+# endif
ch_log(channel, "Trying to connect to %s port %d", dst, port);
#undef HAVE_GETTIMEOFDAY
#undef HAVE_GETWD
#undef HAVE_ICONV
+#undef HAVE_INET_NTOP
#undef HAVE_LOCALTIME_R
#undef HAVE_LSTAT
#undef HAVE_MEMSET
if test "x$vim_cv_ipv6_networking" = "xyes"; then
AC_DEFINE(FEAT_IPV6)
+ AC_CHECK_FUNCS(inet_ntop)
else
dnl On Solaris we need the nsl library.
AC_CHECK_LIB(nsl, gethostbyname)
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 594,
/**/
593,
/**/