Commit Diff
Diff:
1b852fce72a87f3cce2049fde59ab66b6bbda6ca
f9b9850662ee01aae9941bef611df5040b0ff2e0
Commit:
f9b9850662ee01aae9941bef611df5040b0ff2e0
Tree:
a82fbea9758acdb34b62e47ac01d227805420279
Author:
Florian Westphal <fw@strlen.de>
Committer:
Florian Westphal <fw@strlen.de>
Date:
Thu Jan 18 00:25:26 2007 UTC
Message:
io_event_add: return if eventtype is already registered.
blob - 71ec3b40ccc2c5035d224d1bc37da021b6ecf7ce
blob + 660a1395b73519b7f7859f4eb326f392cb355c8c
--- src/ngircd/io.c
+++ src/ngircd/io.c
@@ -12,7 +12,7 @@
#include "portab.h"
-static char UNUSED id[] = "$Id: io.c,v 1.23 2006/12/26 16:00:46 alex Exp $";
+static char UNUSED id[] = "$Id: io.c,v 1.24 2007/01/18 00:25:26 fw Exp $";
#include <assert.h>
#include <stdlib.h>
@@ -463,7 +463,9 @@ io_event_add(int fd, short what)
io_event *i = io_event_get(fd);
if (!i) return false;
- if (i->what == what) return true;
+
+ if ((i->what & what) == what) /* event type is already registered */
+ return true;
#ifdef DEBUG_IO
Log(LOG_DEBUG, "io_event_add(): fd %d (arg: %d), what %d.", i->fd, fd, what);
#endif
IRCNow