summaryrefslogtreecommitdiff
path: root/resolver.c
diff options
context:
space:
mode:
authorpdw <>2004-02-05 22:58:06 +0000
committerpdw <>2004-02-05 22:58:06 +0000
commit2fd7012129ac64b99e64cddee6b3697f4adb76d1 (patch)
tree5f0949147f4aa0742018091d6b2853e2696dbc05 /resolver.c
parentf123c4f1f7324bdf4eb45c1538cd9b0de6225b71 (diff)
downloadiftop-2fd7012129ac64b99e64cddee6b3697f4adb76d1.zip
Fixes for type-punned pointers - Henne Vogelsang <hvogel@suse.de>
Diffstat (limited to 'resolver.c')
-rw-r--r--resolver.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/resolver.c b/resolver.c
index d051b25..3754654 100644
--- a/resolver.c
+++ b/resolver.c
@@ -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 {