commit - 161340d4869645423f2c3e0f803d3bde671e2e2c
commit + 3833f8aae3717006d99de272e96351cacd5c1bea
blob - bee798b745da9bb2028fbb2e79e64d1c98baf72b
blob + 36b854ab10cdc45c72a0d1ee682fcf8fb477268d
--- src/ngircd/io.c
+++ src/ngircd/io.c
#include "portab.h"
-static char UNUSED id[] = "$Id: io.c,v 1.14 2006/05/10 17:33:36 fw Exp $";
+static char UNUSED id[] = "$Id: io.c,v 1.15 2006/07/12 19:27:12 fw Exp $";
#include <assert.h>
#include <stdlib.h>
typedef struct {
void (*callback)(int, short);
- int fd;
short what;
} io_event;
return false;
}
- i->fd = fd;
i->callback = cbfunc;
i->what = 0;
#ifdef IO_USE_EPOLL
while (select_maxfd>0) {
--select_maxfd; /* find largest fd */
i = io_event_get(select_maxfd);
- if (i && (i->fd >= 0)) break;
+ if (i && i->callback) break;
}
}
#endif
io_event_change_epoll(fd, 0, EPOLL_CTL_DEL);
#endif
if (i) {
- memset(i, 0, sizeof(io_event));
- i->fd = -1;
+ i->callback = NULL;
+ i->what = 0;
}
return close(fd) == 0;
}
#endif
#ifdef IO_USE_SELECT
if (what & IO_WANTWRITE)
- FD_CLR(i->fd, &writers);
+ FD_CLR(fd, &writers);
if (what & IO_WANTREAD)
- FD_CLR(i->fd, &readers);
+ FD_CLR(fd, &readers);
return true;
#endif