aboutsummaryrefslogtreecommitdiffstats
path: root/libc/netbsd/resolv
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2011-07-26 16:18:52 -0700
committerRobert Greenwalt <rgreenwalt@google.com>2011-07-26 16:18:52 -0700
commit777901424fa1100817f80a8cff8330b4b11d5af7 (patch)
tree6a633e74cd7648f1258d3d3613305c67a6ac744a /libc/netbsd/resolv
parenta4fdd8ae4c1f5b3c2668900a49a9042364f15bd3 (diff)
parent9363d91218c7ed727c36ffaf82ff28d7755375ae (diff)
downloadandroid_bionic-777901424fa1100817f80a8cff8330b4b11d5af7.tar.gz
android_bionic-777901424fa1100817f80a8cff8330b4b11d5af7.tar.bz2
android_bionic-777901424fa1100817f80a8cff8330b4b11d5af7.zip
resolved conflicts for merge of 9363d912 to honeycomb-plus-aosp
Change-Id: I555f5c10da9770feacdbece9fd77729d6151bfba
Diffstat (limited to 'libc/netbsd/resolv')
-rw-r--r--libc/netbsd/resolv/res_cache.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/libc/netbsd/resolv/res_cache.c b/libc/netbsd/resolv/res_cache.c
index efce7dc98..e3ceb5aed 100644
--- a/libc/netbsd/resolv/res_cache.c
+++ b/libc/netbsd/resolv/res_cache.c
@@ -1627,6 +1627,7 @@ __get_res_cache(void)
while (cache_info) {
if (cache_info->ifname[0] != '\0') {
ifname = cache_info->ifname;
+ break;
}
cache_info = cache_info->next;
@@ -1684,6 +1685,7 @@ _resolv_cache_reset(unsigned generation)
while (cache_info) {
if (cache_info->ifname[0] != '\0') {
ifname = cache_info->ifname;
+ break;
}
cache_info = cache_info->next;
@@ -1691,17 +1693,14 @@ _resolv_cache_reset(unsigned generation)
}
struct resolv_cache* cache = _get_res_cache_for_iface_locked(ifname);
- if (cache == NULL) {
- pthread_mutex_unlock(&_res_cache_list_lock);
- return;
- }
-
- pthread_mutex_lock( &cache->lock );
- if (cache->generation != generation) {
- _cache_flush_locked(cache);
- cache->generation = generation;
+ if (cache != NULL) {
+ pthread_mutex_lock( &cache->lock );
+ if (cache->generation != generation) {
+ _cache_flush_locked(cache);
+ cache->generation = generation;
+ }
+ pthread_mutex_unlock( &cache->lock );
}
- pthread_mutex_unlock( &cache->lock );
pthread_mutex_unlock(&_res_cache_list_lock);
}
@@ -1860,8 +1859,10 @@ _free_nameservers_locked(struct resolv_cache_info* cache_info)
for (i = 0; i <= MAXNS; i++) {
free(cache_info->nameservers[i]);
cache_info->nameservers[i] = NULL;
- freeaddrinfo(cache_info->nsaddrinfo[i]);
- cache_info->nsaddrinfo[i] = NULL;
+ if (cache_info->nsaddrinfo[i] != NULL) {
+ freeaddrinfo(cache_info->nsaddrinfo[i]);
+ cache_info->nsaddrinfo[i] = NULL;
+ }
}
}