summaryrefslogtreecommitdiff
path: root/libc/inet/resolv.c
AgeCommit message (Collapse)Author
2005-05-10The default static buffer sizes are too small to handle the 8 entries returnedEric Andersen
by 'nslookup www.yahoo.com' and 'nslookup mail.hotmail.com', and thus we currently return ERANGE when trying to lookup some of the most popular hosts on the planet. Whether these sites deserve to be popular is a question I'll leave for someone else to worry about. This change makes certain we have enough static buffer space to handle about 21 IPv4 IP address replies per DNS query. Far more than enough to handle common cases such as www.yahoo.com and mail.hotmail.com.
2005-04-28Fix it so uClibc returns multiple ips via h_addr_list,Eric Andersen
This fix, based on this patch http://bugs.uclibc.org/view.php?id=104 makes it so uClibc fills out round robin dns lists for applications such as nslookup: Before: $ nslookup google.com Server: mace.codepoet.org Address: 10.10.10.1 Name: google.com Address: 216.239.39.99 After: $ nslookup google.com Server: mace.codepoet.org Address: 10.10.10.1 Name: google.com Addresses: 216.239.57.99, 216.239.37.99, 216.239.39.99
2005-04-28Cleanup error case a bitEric Andersen
2005-04-28This might actually now be thread safe, assuming I havn't broken it.Eric Andersen
2005-04-28trim trailing whitespaceEric Andersen
2005-01-11Jan Lana writes:Eric Andersen
uClibc resolver doesn't lookup all search domains. For example, if you have computer 'jenda.prague.my.cz' and resolv.conf: search my.cz nameserver xx.xx.xx.xx try this: ping jenda.prague.my.cz #works ping jenda.prague #unknown host libc/inet/resolv.c doesn't want to try search domains if the domain name contains '.'. I don't find any reason for the behaviour in literature and it is inconsistent with the glibc. Patch is attached. regards, - jenda
2004-09-07Implement gethostent_rEric Andersen
2004-09-07Remove stale leftoversEric Andersen
2004-08-15Do not fail all lookups when /etc/resolv.conf is missing, as i.e.Eric Andersen
checking on 127.0.0.1 is still valid w/o resolv.conf -Erik
2004-08-14req_search returned garbage. This teaches it to behave itself andEric Andersen
return the length and the actual dns packet as received, rather than making stuff up. -Erik
2004-08-10On Monday 02 August 2004 08:44 am, Mike Frysinger wrote:Manuel Novoa III
> the gethostbyname_r() call itself is not segfaulting, but the memory > returned in the h_aliases array seems to be wrong ... was playing around with the source today and eventually the obvious answer hit me ... while read_etc_hosts_r() generatings an array of strings fo h_aliases and populates it, the dns path does not :) find attached a patch that'll actually generate the h_aliases list in the normal dns code path ... i used the etc_hosts_r() code as a template for some of it ... note that this is just a simple fix ... it fills the alias list with just the hostname gethostbyname_r was passed ... the proper fix i think would be to parse the dns packet down in __dns_lookup() and pass the info back via the resolv_answer struct ... but this fix is better than the current state of things ... that is, h_aliases currently is never initailized in the dns code path :)
2004-03-10Bug fix: gethostbyname2_r would fail if /etc/host was missing.Manuel Novoa III
Bug fix: gethostbyname_r checked errno without first setting it to a known value.
2004-01-24Imre Sunyi writes:Eric Andersen
Hi Erik I have corrected a bug in uClibc/libc/inet/resolv.c in function __dns_lookup(). Have attaced a txt file with my diffs regarding to uClibc 0.9.26. If two nameservers are included in /etc/resolv.conf and the first one is wrong and the secondary is correct the algorithm never looked up the secondary one. Please review my diff and feel free to submit the patch onto your CVS. If reading manual page resolv.conf(5) under nameserver and how the algorithm should work the previous dns_lookup did not fully followed that. Regards Imre Sunyi
2004-01-04Implement res_search and res_querydomain based on netbsd code,Eric Andersen
but remove support for host aliases (the HOSTALIASES env variable) which looks like a very bad idea. -Erik
2003-12-27Fix a long-standing bug with pthreads. A couple of linuxthreads filesManuel Novoa III
were including libc-lock.h which had a bunch of weak pragmas. Also, uClibc supplied a number of no-op weak thread functions even though many weren't needed. This combined result was that sometimes the functional versions of thread functions in pthread would not override the weaks in libc. While fixing this, I also prepended double-underscore to all necessary weak thread funcs in uClibc, and removed all unused weaks. I did a test build, but haven't tested this since these changes are a backport from my working tree. I did test the changes there and no longer need to explicitly add -lpthread in the perl build for perl to pass its thread self tests.
2003-10-19We were failing to properly set h_errno on success, which couldEric Andersen
cause gethostbyaddr_r to keep looping allocating more and more memory each time till alloca finally caused a segfault. Ugh. This fixes that as well... -Erik
2003-10-15Patch from Tony J. White:Eric Andersen
I've created a patch for adding dn_expand() to uClibc 0.9.21. dn_expand() is used by at least ipsec-tools and also openldap I think.
2003-09-0115 retries is really rather excessive...Eric Andersen
2003-06-17Patch from Ronald Wahl fixing an IPV6 specific problemEric Andersen
with getaddrinfo().
2003-03-01Patch from Jeffrey Damick:Eric Andersen
With glibc if you do a res_init() that forces a reread of the nameservers file, but in uClibc the res_init will not force a reread if it has already read the file because then the nameservers value is greater than 0. So res_init must call close_nameservers() before calling open_nameservers().
2003-02-12Eliminate a needless externEric Andersen
2003-01-10Patch from Jay Kulpinski:Eric Andersen
__decode_dotted() does not count the null terminating byte of a hostname in the DNS response. This causes lookups to fail if the DNS response doesn't compress domain names in the message.
2002-11-21Cleanup use of in6addr_loopback and in6addr_anyEric Andersen
2002-11-03Patch from "Cho, Seong-Myun" <smcho@xecurenexus.com> to limitEric Andersen
things to the lower 16 bits of 'id'.
2002-08-19Fixup struct _res handling so apps using struct _res can actuallyEric Andersen
compile ("worst standard ever!") -Erik
2002-08-17Fixed __read_etc_hosts_r to return alias list and modified bufferManuel Novoa III
allocation accordingly. This fixes the segfault in the Python 2.2.1 socket test.
2002-08-16Remove __res_state function.Miles Bader
2002-08-06Fixup the last missing pieces of thread lockingEric Andersen
-Erik
2002-07-08Finer grained locking in __connect_dns() so we don't hold theEric Andersen
lock while sending packets out onto the wire. -Erik
2002-07-07Doh! search-n-replace strikes againEric Andersen
-Erik
2002-07-07Cleanup namespace leaks by prepending __ to global stuff toEric Andersen
indicate it is (alledgedly) private. -Erik
2002-07-07Patch from Larry Doolittle <ldoolitt@recycle.lbl.gov> to cleanupEric Andersen
connect_dns() and simplify IPV6 support by reducing the number of ifdefs sprinkled about.
2002-06-20Fix DNS resolution so that it once again works. I'd broken itEric Andersen
when adding some locking code. -Erik
2002-06-17Make things more re-entrany, kill some cruft.Eric Andersen
-Erik
2002-04-17Patch from Axel Barnitzke <barney@xkontor.com> to add basicEric Andersen
support for struct _res. This is a minimalist implementation, but should work for most anything out there.
2002-04-17Patch from Mike McDonald to make gethostbyname_r() not fail for things likeEric Andersen
gethostbyname("192.168.0.1"), which should work even when the /etc/hosts and /etc/config/hosts files do not exist.
2002-04-03Patch from Jim Treadway <jim@stardot-tech.com> to eliminateEric Andersen
use of alarm() and therefore SIGARLM in the resolver and to instead use select, which is much cleaner.
2002-03-20Patch from Bart Visscher <magick@Linux-Fan.com> fixing someEric Andersen
missing pieces of the conversion to reentrant functions.
2002-03-19Bart Visscher <magick@Linux-Fan.com> has added some missing IPV6 support, andEric Andersen
added several additional reentrant networking functions such that iptables now runs with IPV6 support.
2002-02-26A few more little cleanupsEric Andersen
2002-02-26Thomas Fritzsche noticed that __open_etc_hosts was only changing aEric Andersen
local copy of the FILE pointer, thereby causing /etc/hosts lookups to fail with Resolver errors. This patch from Thomas fixes the problem.
2002-02-02I just wrote up gethostent(), sethostent(), and endhostent()Eric Andersen
-Erik
2001-12-07patch from Jari Korva <jpkorva@iki.fi>:Eric Andersen
- fixes endianness bug in gethostbyaddr() (i386 worked fine, while m68k didn't: 192.168.160.162 was queried with 192.168.160.162.in-addr.arpa while it should have been 162.160.168.192.ip-addr.arpa) - contains missing pieces from my previous getnameinfo() patch: now it actually compiles!
2001-11-21Adjust naming for __FORCE_GLIBC__ to __FORCE_GLIBC and addEric Andersen
support for __FORCE_NOGLIBC per Brian Stafford <brian.stafford@office-logic.com>
2001-11-07Patch from Jari Korva <jpkorva@iki.fi>Eric Andersen
I found some support in uClibc for IPv6 but I needed some more... Enclosed is the patch containing following modifications: - getnameinfo port from lates glibc - IPv6 support for gethostbyaddr() - IPv6 support for get_hosts_byname and read_etc_hosts (among other things this fixed a bug in gethostbyname2 in a case when user asked for an IPv6 but got a v4 address if it was present in /etc/hosts) - defined ip6addr_any and in6addr_loopback (though the place where I defined these isn't correct, I guess) What is still missing: - getaddrinfo (this could be ported also from glibc but it won't be as easy as porting getnameinfo, I guess) I have tested the patch using enclosed test program and boa web server. Seems to work ;)
2001-11-05Patch from Jari Korva <jari.korva@vtt.fi> to fix a memory leakEric Andersen
in dns_lookup.
2001-10-04Yet more minor cleanupsEric Andersen
2001-09-27Update to accomodate the header file changesEric Andersen
2001-07-09A patch from Michal Moskal <malekith@pld.org.pl> to includeEric Andersen
partial IPV6 support. This adds things like gethostbyname2(). Off by defaut, of course,
2001-05-31Cleanup some stupid warningsEric Andersen