OSDN Git Service

inet: Fix threaded res_init
authorKenneth Soerensen <kenneth.sorensen@spectralink.com>
Fri, 20 Dec 2013 14:53:01 +0000 (15:53 +0100)
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Fri, 20 Dec 2013 14:53:01 +0000 (15:53 +0100)
commit1c8d287e58a3199213b5533136a7a04c8eb231bb
treed56ef2f9c9d38719e1bdf92e37a64c10d3569d1c
parent294079b3fd6a30d444b2b093bc0f1909136a0f6c
inet: Fix threaded res_init

In a multi-threaded application where res_init() was called either
directly or implicitly, getaddrinfo() and others failed to add the
DNS search domain to hostnames.

This problem made it not possible to look up a hostname without its
domain appended.

The problem is caused by res_sync_func() overwriting the configuration
read by __open_nameservers() immediately after it is read.

The suggested solutin is to disable res_sync_func() while reading name
server configuration in res_init().

Signed-off-by: Kenneth Soerensen <kenneth.sorensen@spectralink.com>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
libc/inet/resolv.c