diff --git a/configure b/configure index e9e1554789..64a9d41b67 100755 --- a/configure +++ b/configure @@ -1553,6 +1553,7 @@ else fi +_use_aton=no echocheck "inet_pton()" cat > $TMPC << EOF #include @@ -1569,10 +1570,35 @@ elif cc_check $_ld_sock -lresolv ; then _ld_sock="$_ld_sock -lresolv" echores "yes (using $_ld_sock)" else - echores "no (=> streaming support disabled)" - _streaming=no + echores "no (=> i'll try inet_aton next)" + + echocheck "inet_aton()" + cat > $TMPC << EOF +#include +#include +#include +int main(void) { (void) inet_aton(0, 0); return 0; } +EOF + _use_aton=yes + if cc_check $_ld_sock ; then + # NOTE: Linux has libresolv but does not need it + : + echores "yes (using $_ld_sock)" + elif cc_check $_ld_sock -lresolv ; then + # NOTE: needed for SunOS at least + _ld_sock="$_ld_sock -lresolv" + echores "yes (using $_ld_sock)" + else + _use_aton=no + _streaming=no + echores "no (=> streaming support disabled)" + fi fi +_def_use_aton='#undef USE_ATON' +if test "$_use_aton" != no; then + _def_use_aton='#define USE_ATON 1' +fi echocheck "inttypes.h (required)" cat > $TMPC << EOF @@ -4653,6 +4679,9 @@ $_def_faad /* enable streaming */ $_def_streaming +/* define this to use inet_aton() instead of inet_pton() */ +$_def_use_aton + /* enables / disables cdparanoia support */ $_def_cdparanoia diff --git a/libmpdemux/network.h b/libmpdemux/network.h index 3260860840..f3a60b6f04 100644 --- a/libmpdemux/network.h +++ b/libmpdemux/network.h @@ -52,4 +52,18 @@ int connect2Server(char *host, int port); int http_send_request(URL_t *url); HTTP_header_t *http_read_response(int fd); +/* + * Joey Parrish : + * + * This define is to allow systems without inet_pton() to fallback on + * inet_aton(). The difference between the two is that inet_aton() is + * strictly for IPv4 networking, while inet_pton() is for IPv4 and IPv6 + * both. Slightly limited network functionality seems better than no + * network functionality to me, and as all systems (Cygwin) start to + * implement inet_pton(), configure will decide not to use this code. + */ +#ifdef USE_ATON +# define inet_pton(a, b, c) inet_aton(b, c) +#endif + #endif