summaryrefslogtreecommitdiff
path: root/libc/inet/resolv.c
AgeCommit message (Collapse)Author
2008-11-18libc_hidden_proto removal, a few more functionsDenis Vlasenko
2008-11-18libc_hidden_proto removal, just a few functionsDenis Vlasenko
2008-11-17resolver: use timeout of 5 (glibc uses that).Denis Vlasenko
delete some duplication in constants.
2008-11-17resolver: separate gethostent and gethostent_r into two .o files;Denis Vlasenko
delete two stray files which compile to nothing
2008-11-17resolver: move large code blocks to arrange related functions closer.Denis Vlasenko
almost no code changes
2008-11-17resolver: fix some previous TODOs, add new ones.Denis Vlasenko
2008-11-16resolver: improved support for overriding DNS server addressesDenis Vlasenko
in _res structure. Used by busybox's nslookup.
2008-11-16resolver: make getaddrinfo actually respect _res.nsaddr_list;Denis Vlasenko
add largish comment explaining what we are doing, and why; fixes to make IPv6-only resolver possible
2008-11-15resolver: more locking fixes.Denis Vlasenko
2008-11-14fixing resolver part 3: fix completely bogus lockingDenis Vlasenko
in __dns_lookup.
2008-11-14fixing resolver part 2: make _res structure membersDenis Vlasenko
configurable. we don't use most of it anyway.
2008-11-14fixing resolver, part 1Denis Vlasenko
2008-11-02resolver: reinstate searching if search domains accidentally nukedDenis Vlasenko
in one of recent commits :)
2008-11-01__dns_lookup: document and optimize a bitDenis Vlasenko
text data bss dec hex filename - 1545 2 4 1551 60f libc/inet/dnslookup.o + 1528 2 4 1534 5fe libc/inet/dnslookup.o
2008-11-01resolver: partially fix bug 660 -Denis Vlasenko
do not treat negative response as error
2008-11-01resolver: fix part of bug 1468:Denis Vlasenko
"gethostbyname() fails if DNS server returns more than 23 addresses"
2008-11-01resolver: trivial code trasformations for readability.Denis Vlasenko
No logic changes. Code size is the same too.
2008-11-01trivial code shrink by making some strings staticDenis Vlasenko
text data bss dec hex filename - 259 0 0 259 103 libc/inet/herror.o + 243 0 0 243 f3 libc/inet/herror.o - 720 0 0 720 2d0 libc/inet/ns_name.o + 710 0 0 710 2c6 libc/inet/ns_name.o
2008-10-28make getaddrinfo to NOT query DNS for IPv6 address if host is inDenis Vlasenko
/etc/hosts and it has IPv4 address there. The most common example is "127.0.0.1 localhost". We don't want "ping localhost" to stall and time out on IPv6 queries to, say, inaccessible DNS server, right? - 655 0 0 655 28f libc/inet/gethostbyname2_r.o + 685 0 0 685 2ad libc/inet/gethostbyname2_r.o
2008-06-12Revert revision 19343 and also remove libc_hidden_proto for __uc_malloc.Bernd Schmidt
For now, a straight revert; we can decide later wheter we want to do something more.
2008-06-06Remove superfluous attribute_hidden from functionDenis Vlasenko
definition. I seems to produce spurious warning: libc/inet/resolv.c:1549: warning: 'visibility' attribute ignored on non-class types (seems like gcc bug) and it is not really needed - attribute_hidden was already specified in function _declaration_ so it is not necessary here. No code changes (verified with objdump).
2008-06-06Use more natural way to return a value in __read_etc_hosts_r:Denis Vlasenko
text data bss dec hex filename - 230 0 9 239 ef libc/inet/gethostent.o + 224 0 9 233 e9 libc/inet/gethostent.o - 782 0 0 782 30e libc/inet/read_etc_hosts_r.o + 767 0 0 767 2ff libc/inet/read_etc_hosts_r.o Run tested.
2008-06-06Fix failure in test/inet/gethost_r-align:Denis Vlasenko
we were closing a FILE, but did not record that fact by setting a variable to NULL, and then we used it for reading! While at it, small reduction in bss. Run tested. text data bss dec hex filename - 210 0 12 222 de libc/inet/gethostent.o + 230 0 9 239 ef libc/inet/gethostent.o
2008-06-04This fixes a problem with the move of libc_hidden_proto to string.h.Bernd Schmidt
The obsolete functions bcopy, index, etc. are not supposed to be used within uClibc itself. Hence, there is no libc_hidden_def for them, but the previous patch did not just move libc_hidden_protos, it also added new ones for the legacy functions. As a result, programs which use these functions can no longer link with uClibc. This fixes it by removing the unnecessary libc_hidden_protos. I've also removed all inclusions of <strings.h> from uClibc source files: since we define _GNU_SOURCE, it is sufficient to include <string.h>. We then do not need to duplicate the libc_hidden_proto block in <strings.h>.
2008-06-03close bug 473:Denis Vlasenko
1. names with two consecutive dots are not valid 2. if name ends with a dot, dont try appending search domain(s) alos a few small optimisations are here.
2008-06-03- adds several config-options to allow for turning off certain featuresBernhard Reutner-Fischer
like o UCLIBC_HAS_GNU_ERROR o UCLIBC_HAS_BSD_ERR o UCLIBC_HAS_PTY o UCLIBC_HAS_GETPT (1) o UCLIBC_SYSCALL_STUBS o UCLIBC_SYSCALL_STUB_WARNING o UCLIBC_LINUX_SPECIFIC (2) o UCLIBC_BSD_SPECIFIC (3) o UCLIBC_NTP_LEGACY (4) o UCLIBC_SV4_DEPRECATED (5) o UCLIBC_HAVE_REALTIME (6) o UCLIBC_HAVE_ADVANCED_REALTIME (7) o UCLIBC_HAVE_EPOLL (8) o UCLIBC_HAVE_XATTR (9) o UCLIBC_HAVE_PROFILING (10) (1) make non-standard getpt optional and implement standard posix_openpt (2) fstatfs(), inotify_*(), ioperm(), iopl(), madvise(), modify_ldt(), personality() ppoll(), setresuid() (3) mincore(), getdomainname(), setdomainname() (4) ntp_adjtime(), ntp_gettime() aliases (5) ustat() [use statfs(2) in your code instead] (6) All marked as "(REALTIME)" in SUSv3 (7) All marked as "(ADVANCED REALTIME)" in SUSv3 (8) epoll_create(), epoll_ctl(), epoll_wait() (9) all Extended Attributes (10) helpers for gcc's -finstrument-functions - Fixes _dl_exit() - Implements sleep(3) for !UCLIBC_HAVE_REALTIME - Implements usleep(3) for !UCLIBC_HAVE_REALTIME - adds #warning about incorrect posix_fadvise{,64}() - removes unused and unwanted uselib() Net outcome is that an allnoconfig with HAVE_SHARED is now about 88k instead of formerly 130k.
2008-06-02libc/inet/resolv.c: use ip6.arpa instead of ip6.int for reverseDenis Vlasenko
IPv6 DNS resolv. rfc4159 mandated this 3 years ago. Closes bug 1020. Also cleans up some stype inconsistensied and saves 2 bytes of rw data.
2008-05-27Fix build failure due to missing 'smallint' definitionCarmelo Amoroso
by adding <unistd.h> header file. Signed-off-by: Carmelo Amoroso <carmelo.amoroso@st.com>
2008-05-20- remove old-style definitions. No object-code changes.Bernhard Reutner-Fischer
2008-05-19Moving libc_hidden_proto's into #ifdef UCLIBC_INTERNAL blockDenis Vlasenko
in string.h and strings.h. This caught unguarded string ops in libc/inet/ethers.c __ether_line_w() function. I will wait for fallout reports for a week or so, then continue converting more libc_hidden_proto's.
2008-02-12add hidden_proto's for __uc_mallocDenis Vlasenko
(patch by Bernd Schmidt <bernds_cb1 at t-online.de>)
2008-01-11Use poll() rather than select() if the former is available to wait inPeter Kjellerstedt
__dns_lookup(). This avoids segmentation faults when more than 1024 file descriptors are used by an application.
2008-01-09Daniel Jacobowitz writes:Mike Frysinger
MontaVista noticed that when their kernels were configured to trap on unaligned access gethostbyname_r could mysteriously crash. I tracked this down to an unaligned buffer being passed to gethostbyname_r from some other part of uClibc (afraid I don't remember where from any more). We have to pad the beginning of the buffer to a pointer alignment before we store pointers in it.
2007-09-28This patch will fix a problem when the same host is defined with both IPv4 andMike Frysinger
IPv6 entries in /etc/hosts. Previous only the first of these host would work, as uClibc would read the /etc/hosts file from top to bottom, failing if the first hit did not match the IP type. Now uClibc will continue reading, even if the first correct entry name, but wrong IP type fails. Thus, allowing a second correct entry name with correct IP type will result in a name resolve. Signed-off-by: Hans-Christian Egtvedt <hcegtvedt@atmel.com>
2007-09-28do not check the pointer before freeing it since free(NULL) works just fineMike Frysinger
2007-09-28cleanup code styleMike Frysinger
2007-07-30patch #3: make resolv.c use __uc_mallocDenis Vlasenko
2007-04-23- include stdbool.hBernhard Reutner-Fischer
2007-04-17- shrink resolver codeBernhard Reutner-Fischer
2007-03-28Warning fix for uninitialized variable, by Al Stone.Rob Landley
2007-02-02Ronald Maeder writes:Eric Andersen
I have successfully made gethostbyname_r(), res_init(), and gethostid() fully reentrant. In addition, I have added a NULL check to inet_aton(). This is where SEG FAULTs were coming from when gethostbyname_r() was called.
2007-02-02use the correct lock for access to __nameserver[]Eric Andersen
2007-02-02fix lock namingEric Andersen
2007-02-02Ronald Maeder writes:Eric Andersen
Hi Erik, Thanks for all your great work. I found a set of bugs in resolv.c . Basically, there is code that looks like: BIGLOCK; __nameserversXX=__nameservers; __nameserverXX=__nameserver; BIGUNLOCK; i = __dns_lookup(dname, type, __nameserversXX, __nameserverXX, &packet, &a); which is a problem because the declarations are int __nameservers; char * __nameserver[MAX_SERVERS]; int __searchdomains; char * __searchdomain[MAX_SEARCH]; so you can see that __nameserver is a pointer. Copying the pointer to __nameserverXX doesn't protect the global variable space. I have attached a patch and the new file. I hope you will incorporate these bug fixes. I spent quite a bit of time tracking them down. Many thanks, Ron
2007-02-02fix obvious bug in ipv4/ipv6 resolving. When not using AF_INET,Eric Andersen
gethostbyname2_r tries to resolve an ipv6 address from /etc/hosts using get_hosts_byname_r, but with AF_INET instead of the supplied address family. This returns ipv4 addresses marked as ipv6 ones. Fix from nbd.
2006-12-08__resolv_lock is supposed to be shared, not static Eric Andersen
2006-12-07Major cleanup of internal mutex locking. Be more consistant in how we doEric Andersen
things, and avoid potential deadlocks caused when a thread holding a uClibc internal lock get canceled and terminates without releasing the lock. This change also provides a single place, bits/uClibc_mutex.h, for thread libraries to modify to change all instances of internal locking.
2006-07-31fix h_alias handling in gethostbyaddr_r() just like in gethostbyname_r()Mike Frysinger
otherwise we get messed up alias memory and this simple test case will segfault: python -c 'import socket; print socket.gethostbyaddr("80.68.88.204")[2];' see bug report in blackfin tracker for more info: http://blackfin.uclinux.org/tracker/index.php?func=detail&aid=1503&group_id=17&atid=141
2006-03-23select needs sys/select.h, str[n]casecmp/ffs needs strings.h, if BSD is not ↵Peter S. Mazinger
defined, gettimeofday has other prototype and tm_gmtoff/tm_zone do not exist
2006-03-22Correct build if UCLIBC_HAS_CTYPE_TABLES is not definedPeter S. Mazinger