path: root/src/network/__dns.c
diff options
authorRich Felker <>2012-04-01 23:22:16 -0400
committerRich Felker <>2012-04-01 23:22:16 -0400
commit4f346b08b33c9265c36fe8a14f5f908b1a9f296a (patch)
treed4e5c0c5b58302e39f56d550806d392e543974d3 /src/network/__dns.c
parent4dbd94112ff74064554054b5ff27a7af547e4899 (diff)
improve name lookup performance in corner cases
the buffer in getaddrinfo really only matters when /etc/hosts is huge, but in that case, the huge number of syscalls resulting from a tiny buffer would seriously impact the performance of every name lookup. the buffer in __dns.c has also been enlarged a bit so that typical resolv.conf files will fit fully in the buffer. there's no need to make it so large as to dominate the syscall overhead for large files, because resolv.conf should never be large.
Diffstat (limited to 'src/network/__dns.c')
1 files changed, 1 insertions, 1 deletions
diff --git a/src/network/__dns.c b/src/network/__dns.c
index 786c054a..1464513d 100644
--- a/src/network/__dns.c
+++ b/src/network/__dns.c
@@ -29,7 +29,7 @@ int __dns_doqueries(unsigned char *dest, const char *name, int *rr, int rrcnt)
time_t t0 = time(0);
int fd;
FILE *f, _f;
- unsigned char _buf[64];
+ unsigned char _buf[256];
char line[64], *s, *z;
union {
struct sockaddr_in sin;