From b1b22afb6aa95920d33e740fb74699efd1e5fb4e Mon Sep 17 00:00:00 2001 From: venaas Date: Thu, 14 Aug 2008 12:56:32 +0000 Subject: seems need to use select with MSG_PEEK git-svn-id: https://svn.testnett.uninett.no/radsecproxy/trunk@340 e88ac4ed-0b26-0410-9574-a7f39faa03bf --- radsecproxy.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/radsecproxy.c b/radsecproxy.c index 0311029..e934d55 100644 --- a/radsecproxy.c +++ b/radsecproxy.c @@ -721,8 +721,13 @@ unsigned char *radudpget(int s, struct client **client, struct server **server, socklen_t fromlen = sizeof(from); struct clsrvconf *p; struct list_node *node; + fd_set readfds; for (;;) { + FD_ZERO(&readfds); + FD_SET(s, &readfds); + if (select(s + 1, &readfds, NULL, NULL, NULL) < 1) + continue; cnt = recvfrom(s, buf, 4, MSG_PEEK, (struct sockaddr *)&from, &fromlen); if (cnt == -1) { debug(DBG_WARN, "radudpget: recv failed"); -- cgit v1.2.3