Thanks
$ gcc a.c
$ ./a.out yahoo.com
success
$ wget yahoo.com
--12:27:32-- http://yahoo.com/
=> `index.html'
Resolving yahoo.com... failed: No such file or directory.
I still believe there is an OS setting that's the problem since I tried
yum and it doesn't work either. I just don't know enough networking
internals to know what else to try.
> "cliff" <[EMAIL PROTECTED]> writes:
>
>> Thanks for the reply. I somewhat agree with you and will post a
>> question to fedora but my concern is that curl also uses getaddrinfo
>> and once I disabled IPv6, curl began working. It's as if wget is
>> defaulting getaddrinfo's ai_family to PF_INET6 and never attempting
>> PF_INET.
>
> Wget sets ai_family to AF_UNSPEC and sorts the resulting addresses in
> order to prefer IPv4 addresses (which can be changed using
> --prefer-family). It won't set ai_family to a specific address unless
> -4/-6 is used. You might want to check that /etc/wgetrc or a similar
> file doesn't contain ipv4_only or ipv6_only.
>
> If that checks out okay, try compiling this program on your system; see
> if running it with the argument "www.yahoo.com" produces success or
> failure, and if the failure is the same one as produced by Wget.
>
> #include <stdio.h>
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <netdb.h>
> #include <string.h>
> #include <errno.h>
>
> int main (int argc, char **argv)
> {
> int err;
> struct addrinfo hints, *res;
> const char *host = argv[1];
> if (argc != 2)
> return 2;
>
> memset (&hints, 0, sizeof hints);
> hints.ai_socktype = SOCK_STREAM;
> hints.ai_family = AF_UNSPEC;
> err = getaddrinfo (host, NULL, &hints, &res);
>
> if (err != 0 || res == NULL)
> printf ("failed resolving %s: %s.\n",
> host, err != EAI_SYSTEM ? gai_strerror (err) : strerror (errno));
> else
> printf ("success\n");
>
> return 0;
> }