diff --git a/MakeLib.mk b/MakeLib.mk index 4b1cd4b..7f9b340 100644 --- a/MakeLib.mk +++ b/MakeLib.mk @@ -18,12 +18,12 @@ ifeq ($(DEBUG),1) $(info Bulding debug version) ODIR:=$(ODIR_BASE)/lib/debug CFLAGS?=-Wall -Wextra -O0 -g -fPIC $(VISIBILITY) - CXXFLAGS?=--std=c++11 --std=c++11 -Wall -Wextra -O0 -g -fPIC $(VISIBILITY) $(CXXINCLUDES) + CXXFLAGS?=-Wall --std=c++0x -Wextra -O0 -g -fPIC $(VISIBILITY) $(CXXINCLUDES) else # Release mode options ODIR:=$(ODIR_BASE)/lib/release CFLAGS?=-Wall -Wextra -O3 -fPIC $(VISIBILITY) - CXXFLAGS?=-Wall --std=c++11 -Wextra -O3 -fPIC $(VISIBILITY) $(CXXINCLUDES) + CXXFLAGS?=-Wall --std=c++0x -Wextra -O3 -fPIC $(VISIBILITY) $(CXXINCLUDES) endif OBJ_NAMES= libnethogs.o packet.o connection.o process.o refresh.o decpcap.o inode2prog.o conninode.o devices.o diff --git a/libnethogs.cpp b/libnethogs.cpp index 191261e..3f3ae6c 100644 --- a/libnethogs.cpp +++ b/libnethogs.cpp @@ -154,10 +154,14 @@ void NethogsMonitor::handleUpdate() if( monitor_udpate_callback ) { - NethogsAppUpdate &data = monitor_update_data[curproc->getVal()->pid]; - data.action = NethogsAppUpdate::Remove; - monitor_udpate_callback(data); - monitor_update_data.erase(curproc->getVal()->pid); + NethogsAppUpdateMap::iterator it = monitor_update_data.find(curproc->getVal()->pid); + if( it != monitor_update_data.end() ) + { + NethogsAppUpdate &data = it->second; + data.action = NethogsAppUpdate::Remove; + monitor_udpate_callback(data); + monitor_update_data.erase(it); + } } ProcList * todelete = curproc; @@ -189,7 +193,9 @@ void NethogsMonitor::handleUpdate() if( monitor_udpate_callback ) { //notify update - NethogsAppUpdate &data = monitor_update_data[pid]; + NethogsAppUpdate &data = + monitor_update_data.insert(std::make_pair(pid, NethogsAppUpdate())).first->second; + bool data_change = false; #define NHM_UPDATE_ONE_FIELD(TO,FROM) if((TO)!=(FROM)) { TO = FROM; data_change = true; } diff --git a/libnethogs.h b/libnethogs.h index 552ebae..1fe03b1 100644 --- a/libnethogs.h +++ b/libnethogs.h @@ -1,6 +1,7 @@ #ifndef LIBNETHOGS_H_ #define LIBNETHOGS_H_ +#include #include #define NETHOGS_DSO_VISIBLE __attribute__ ((visibility ("default")))