On Monday 11 April 2016 11:30:45 Gisle Vanem wrote: > Tim Rühsen wrote: > > As Eli, I would like to know a few more details. > > Is it possible to make c-ares return the 'native' socket numbers to not > > get in conflict with gnulib ? > > As Eli pointed out, it's vice-versa; C-ares *do* return 'native' > socket numbers. While Gnulib's socket(), select() etc. creates and > expects 'file descriptors'. Normally in the range >= 3 (?). (I assume > this has something to POSIX compliance. Winsock's socket() never returns > such low numbers). > > Eli> However, converting a handle into a > Eli> file descriptor and vise versa involves using 2 simple functions, > > I'm not sure what those functions are since I'm not so much into Gnulib. > > My intuition told me the 'rpl_select()' was the cause for the resolve- > failure, hence this 'undef'. And since the host.c 'select()' is used only > for 'HAVE_LIBCARES' code, I felt it won't hurt do '#undef select' in > host.c. > > But I'm open to alternatives. Eli, can you try building with > 'HAVE_LIBCARES'?
Unless anybody complains (or has a better solution) I'm going to apply your patch. > > It was not my intention to replace all 'the good old' methods, as long as > > they work. C-ares is just used for functionality that libc (and/or > > libresolv) does not provide. Wget is still an official GNU tool and that > > implies that we try to use as much GNU software/libraries/code as > > possible. > > Okay. But I feel that C-ares should *not* need to be told what DNS-server(s) > to use. It is smart enough to figure out that for it self. Hence I feel > it's strange and a bit confusing (for new users of Wget) that only a > '--dns-servers' option will force the use of C-ares. IMHO it should be > default; from a 'wget -V', it says '+cares'. Or am I still missing > something? --dns-servers only comes into play when you want to specify a non-standard DNS server (only available with +cares, as documented). If you leave it away, everything works 'as expected'. So even when built with c-ares, the normal user doesn't have to use this option. Maybe just for a small bunch of 'expert' users. > Another Gnulib idiosyncrasy; #include <sys/select.h> must be included for > 'WINDOWS' too if one calls 'select()'. sys/select.h seems to be included implicitly in hosts.c. IMO, it would be corrected to an explicit include. If you think there is (also ?) a gnulib bug, do you mind telling the gnulib maintainers ? Tim
signature.asc
Description: This is a digitally signed message part.
