--- ntop/hash.c 2004-03-21 08:38:51.000000000 -0600 +++ ntop/hash.c 2004-03-24 10:42:49.000000000 -0600 @@ -1162,12 +1162,12 @@ if((ether_addr == NULL) && (isPseudoLocalAddress(hostIpAddress, actualDeviceId))) FD_SET(FLAG_SUBNET_PSEUDO_LOCALHOST, &el->flags); + setResolvedName(el, el->hostNumIpAddress, FLAG_HOST_SYM_ADDR_TYPE_IP); + /* Trick to fill up the address cache */ if(myGlobals.numericFlag == 0) ipaddr2str(el->hostIpAddress, 1); - else { - setResolvedName(el, el->hostNumIpAddress, FLAG_HOST_SYM_ADDR_TYPE_IP); - } + } else { /* This is a new entry and hostIpAddress was NOT set. Fill in MAC address, if we have it */ if(symEthName[0] != '\0') { --- ntop/util.c 2004-03-24 08:26:01.000000000 -0600 +++ ntop/util.c 2004-03-24 10:10:02.000000000 -0600 @@ -5704,6 +5704,11 @@ int i; if(updateValue[0] == '\0') return; + + /* Do not update 0 -> DNS */ + if((updateType == FLAG_HOST_SYM_ADDR_TYPE_NAME) && + (el->hostResolvedNameType == 0)) + return; /* Only update if this is a MORE important type */ if(updateType > el->hostResolvedNameType) {