summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorantirez <antirez@gmail.com>2013-01-03 14:18:03 +0100
committerantirez <antirez@gmail.com>2013-01-03 14:32:06 +0100
commit1f8ad7ae5532f760760985031292c4f7af92a3d0 (patch)
treeb04cea666d6c557c6039b890c1c41a92df7164c4
parent4468ba231785fe9fda26f2d05181f91342d91c2d (diff)
downloadredis-1f8ad7ae5532f760760985031292c4f7af92a3d0.tar.gz
ae.c: set errno when error is not a failing syscall.
In this way the caller is able to perform better error checking or to use strerror() without the risk of meaningless error messages being displayed.
-rw-r--r--src/ae.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/ae.c b/src/ae.c
index d2faed326..90be4e28f 100644
--- a/src/ae.c
+++ b/src/ae.c
@@ -38,6 +38,7 @@
#include <poll.h>
#include <string.h>
#include <time.h>
+#include <errno.h>
#include "ae.h"
#include "zmalloc.h"
@@ -104,7 +105,10 @@ void aeStop(aeEventLoop *eventLoop) {
int aeCreateFileEvent(aeEventLoop *eventLoop, int fd, int mask,
aeFileProc *proc, void *clientData)
{
- if (fd >= eventLoop->setsize) return AE_ERR;
+ if (fd >= eventLoop->setsize) {
+ errno = ERANGE;
+ return AE_ERR;
+ }
aeFileEvent *fe = &eventLoop->events[fd];
if (aeApiAddEvent(eventLoop, fd, mask) == -1)