diff options
| -rw-r--r-- | NEWS | 3 | ||||
| -rw-r--r-- | configure.in | 3 | ||||
| -rw-r--r-- | socket.c | 23 | 
3 files changed, 27 insertions, 2 deletions
| @@ -16,6 +16,9 @@  				Release Notes:  ------------------------------------------------------------------------------ +fetchmail-4.1.3 () +* Autoconfigure cortrectly for systems that lack inet_aton(). +  fetchmail-4.1.2 (Wed Sep  3 18:44:58 EDT 1997)  * Fixed a bonehead bug in RCPT TO name generation introduced in 4.1.1.  * Added James Steven's ip-up wrapper to the contrib directory. diff --git a/configure.in b/configure.in index 562f4fa9..949e68c2 100644 --- a/configure.in +++ b/configure.in @@ -75,7 +75,8 @@ AC_SUBST(EXTRASRC)  AC_SUBST(EXTRAOBJ)  AC_CHECK_FUNCS(tcsetattr stty setsid seteuid gethostbyname res_search herror \ -  strrchr strerror setlinebuf syslog snprintf vsnprintf vsyslog atexit) +  strrchr strerror setlinebuf syslog snprintf vsnprintf vsyslog atexit \ +  inet_aton)  # Under Red Hat 4.0 (and many other Linuxes) -lresolv is seriously flaky  # and breaks gethostbyname(2).  It's better to use the bind stuff in the C @@ -25,6 +25,16 @@  #endif  #include "socket.h" +#ifndef INET_ATON +#ifndef  INADDR_NONE +#ifdef   INADDR_BROADCAST +#define  INADDR_NONE	INADDR_BROADCAST +#else +#define	 INADDR_NONE	-1 +#endif +#endif +#endif /* INET_ATON */ +  #ifdef SUNOS  #include <memory.h>  #endif @@ -32,13 +42,24 @@  int SockOpen(char *host, int clientPort)  {      int sock; +#ifndef INET_ATON +    unsigned long inaddr; +#endif /* INET_ATON */      struct sockaddr_in ad;      struct hostent *hp;      memset(&ad, 0, sizeof(ad));      ad.sin_family = AF_INET; -    if (!inet_aton(host, &ad.sin_addr))	/* accept a quad address */ +    /* we'll accept a quad address */ +#ifndef INET_ATON +    inaddr = inet_addr(host); +    if (inaddr != INADDR_NONE) +        memcpy(&ad.sin_addr, &inaddr, sizeof(inaddr)); +    else +#else +    if (!inet_aton(host, &ad.sin_addr)) +#endif /* INET_ATON */      {          hp = gethostbyname(host); | 
