X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsocketengine.cpp;h=0a071796480cf78d731b559bc2fb1022ee9a8397;hb=cbb95cffac2fe5533bae8bf5dc2ce62fb0f17c2f;hp=3cb2626528da71a29ae34b2a58de539e9b498a0f;hpb=cdbc474bbc09d699821185d32283801b24a72183;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/socketengine.cpp b/src/socketengine.cpp index 3cb262652..0a0717964 100644 --- a/src/socketengine.cpp +++ b/src/socketengine.cpp @@ -11,12 +11,18 @@ * --------------------------------------------------- */ -/* $Core: libIRCDsocketengine */ +/* $Core */ /********* DEFAULTS **********/ + /* $ExtraSources: socketengines/socketengine_select.cpp */ /* $ExtraObjects: socketengine_select.o */ +/* $If: USE_POLL */ +/* $ExtraSources: socketengines/socketengine_poll.cpp */ +/* $ExtraObjects: socketengine_poll.o */ +/* $EndIf */ + /* $If: USE_KQUEUE */ /* $ExtraSources: socketengines/socketengine_kqueue.cpp */ /* $ExtraObjects: socketengine_kqueue.o */ @@ -35,6 +41,34 @@ #include "inspircd.h" #include "socketengine.h" +EventHandler::EventHandler() +{ + this->IOHook = NULL; +} + +bool EventHandler::AddIOHook(Module *IOHooker) +{ + if (this->IOHook) + return false; + + this->IOHook = IOHooker; + return true; +} + +bool EventHandler::DelIOHook() +{ + if (!this->IOHook) + return false; + + this->IOHook = NULL; + return true; +} + +Module *EventHandler::GetIOHook() +{ + return this->IOHook; +} + int EventHandler::GetFd() { return this->fd; @@ -229,7 +263,7 @@ void SocketEngine::RecoverFromFork() void SocketEngine::UpdateStats(size_t len_in, size_t len_out) { - if (lastempty + 1 > time(NULL)) + if (lastempty != time(NULL)) { lastempty = time(NULL); indata = outdata = 0; @@ -240,6 +274,7 @@ void SocketEngine::UpdateStats(size_t len_in, size_t len_out) void SocketEngine::GetStats(float &kbitpersec_in, float &kbitpersec_out, float &kbitpersec_total) { + UpdateStats(0, 0); /* Forces emptying of the values if its been more than a second */ float in_kbit = indata * 8; float out_kbit = outdata * 8; kbitpersec_total = ((in_kbit + out_kbit) / 1024);