diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/event_callback.c | 5 | ||||
-rw-r--r-- | src/luaevent.c | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/event_callback.c b/src/event_callback.c index 4a6c04d..bbcd51c 100644 --- a/src/event_callback.c +++ b/src/event_callback.c @@ -3,6 +3,7 @@ #include "event_callback.h" #include <assert.h> #include <lauxlib.h> +#include <string.h> #define EVENT_CALLBACK_ARG_MT "EVENT_CALLBACK_ARG_MT" @@ -31,7 +32,7 @@ void luaevent_callback(int fd, short event, void* p) { if(lua_isnumber(L, -1)) { newTimeout = lua_tonumber(L, -1); if(newTimeout <= 0) { - memset(&cb->timeout, 0, sizeof(arg->timeout)); + memset(&cb->timeout, 0, sizeof(cb->timeout)); } else { load_timeval(newTimeout, &cb->timeout); } @@ -45,7 +46,7 @@ void luaevent_callback(int fd, short event, void* p) { /* NOTE: Currently, even if new timeout is the same as the old, a new event is setup regardless... */ if(newEvent != event || newTimeout != -1) { // Need to hook up new event... struct timeval *ptv = &cb->timeout; - if(!cb->timeout.sec && !cb->timeout.usec) + if(!cb->timeout.tv_sec && !cb->timeout.tv_usec) ptv = NULL; event_del(ev); event_set(ev, fd, EV_PERSIST | newEvent, luaevent_callback, cb); diff --git a/src/luaevent.c b/src/luaevent.c index 596e4e1..8903af1 100644 --- a/src/luaevent.c +++ b/src/luaevent.c @@ -46,8 +46,8 @@ int getSocketFd(lua_State* L, int idx) { } void load_timeval(double time, struct timeval *tv) { - tv->sec = (int)time; - tv->usec = (time * 1000000) % 1000000; + tv->tv_sec = (int)time; + tv->tv_usec = (int)(time * 1000000) % 1000000; } /* sock, event, callback, timeout */ |