summaryrefslogtreecommitdiffstats
path: root/lib/libnetgraph/msg.c
diff options
context:
space:
mode:
authormav <mav@FreeBSD.org>2007-05-14 14:18:41 +0000
committermav <mav@FreeBSD.org>2007-05-14 14:18:41 +0000
commit830b368aaf80f26f040d3e8f5061619338859bee (patch)
treef5348dd2c041df8b884da04bf627f96d517509e3 /lib/libnetgraph/msg.c
parent003d9887d8d503f3259edc017f0c5625648742b5 (diff)
downloadFreeBSD-src-830b368aaf80f26f040d3e8f5061619338859bee.zip
FreeBSD-src-830b368aaf80f26f040d3e8f5061619338859bee.tar.gz
Replace select() by poll() to avoid problems with big
descriptor number. Approved by: glebius (mentor)
Diffstat (limited to 'lib/libnetgraph/msg.c')
-rw-r--r--lib/libnetgraph/msg.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/lib/libnetgraph/msg.c b/lib/libnetgraph/msg.c
index 48447d9..534d1d1 100644
--- a/lib/libnetgraph/msg.c
+++ b/lib/libnetgraph/msg.c
@@ -235,16 +235,17 @@ NgDeliverMsg(int cs, const char *path,
/* Wait for reply if there should be one. */
if (msg->header.cmd & NGM_HASREPLY) {
- fd_set rfds;
+ struct pollfd rfds;
int n;
- FD_ZERO(&rfds);
- FD_SET(cs, &rfds);
- n = select(cs + 1, &rfds, NULL, NULL, NULL);
+ rfds.fd = cs;
+ rfds.events = POLLIN;
+ rfds.revents = 0;
+ n = poll(&rfds, 1, INFTIM);
if (n == -1) {
errnosv = errno;
if (_gNgDebugLevel >= 1)
- NGLOG("select");
+ NGLOG("poll");
rtn = -1;
}
}
OpenPOWER on IntegriCloud