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; > }