diff options
author | pdw <> | 2004-02-05 22:58:06 +0000 |
---|---|---|
committer | pdw <> | 2004-02-05 22:58:06 +0000 |
commit | 2fd7012129ac64b99e64cddee6b3697f4adb76d1 (patch) | |
tree | 5f0949147f4aa0742018091d6b2853e2696dbc05 /resolver.c | |
parent | f123c4f1f7324bdf4eb45c1538cd9b0de6225b71 (diff) | |
download | iftop-2fd7012129ac64b99e64cddee6b3697f4adb76d1.zip |
Fixes for type-punned pointers - Henne Vogelsang <hvogel@suse.de>
Diffstat (limited to 'resolver.c')
-rw-r--r-- | resolver.c | 12 |
1 files changed, 10 insertions, 2 deletions
@@ -392,7 +392,11 @@ void resolver_worker(void* ptr) { if(hostname != NULL) { char* old; - if(hash_find(ns_hash, &addr, (void**)&old) == HASH_STATUS_OK) { + union { + char **ch_pp; + void **void_pp; + } u_old = { &old }; + if(hash_find(ns_hash, &addr, u_old.void_pp) == HASH_STATUS_OK) { hash_delete(ns_hash, &addr); xfree(old); } @@ -424,13 +428,17 @@ void resolver_initialise() { void resolve(struct in_addr* addr, char* result, int buflen) { char* hostname; + union { + char **ch_pp; + void **void_pp; + } u_hostname = { &hostname }; int added = 0; if(options.dnsresolution == 1) { pthread_mutex_lock(&resolver_queue_mutex); - if(hash_find(ns_hash, addr, (void**)&hostname) == HASH_STATUS_OK) { + if(hash_find(ns_hash, addr, u_hostname.void_pp) == HASH_STATUS_OK) { /* Found => already resolved, or on the queue */ } else { |