diff --git a/src/NetworkInterface.cpp b/src/NetworkInterface.cpp index c0d56c714b..7513b8810d 100644 --- a/src/NetworkInterface.cpp +++ b/src/NetworkInterface.cpp @@ -1032,11 +1032,11 @@ NetworkInterface* NetworkInterface::getSubInterface(u_int32_t criteria, bool par h->iface = new NetworkInterface(buf, vIface_type); if(h->iface) { - h->iface->allocateNetworkStats(); - HASH_ADD_INT(flowHashing, criteria, h); ntop->registerInterface(h->iface); - numVirtualInterfaces++; + h->iface->allocateNetworkStats(); h->iface->setDynamicInterface(); + HASH_ADD_INT(flowHashing, criteria, h); + numVirtualInterfaces++; } } else ntop->getTrace()->traceEvent(TRACE_WARNING, "Not enough memory"); diff --git a/src/Ntop.cpp b/src/Ntop.cpp index 7c0b15a530..39f114f2c5 100644 --- a/src/Ntop.cpp +++ b/src/Ntop.cpp @@ -1492,7 +1492,7 @@ void Ntop::setLocalNetworks(char *_nets) { NetworkInterface* Ntop::getInterfaceById(int if_id) { for(int i=0; iget_id() == if_id) + if(iface[i] && iface[i]->get_id() == if_id) return(iface[i]); }