Update of /cvsroot/agd/server/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29149
Modified Files:
net.c
Log Message:
Checking return value of select.
Index: net.c
===================================================================
RCS file: /cvsroot/agd/server/src/net.c,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- net.c 24 Jul 2004 17:51:25 -0000 1.21
+++ net.c 28 Jul 2004 11:57:02 -0000 1.22
@@ -290,6 +290,7 @@
{
struct timeval timeout;
int i;
+ int ret;
list_t *l;
while(1) {
@@ -306,16 +307,21 @@
}
}
- if(select(greatest_sockfd + 1, &readfds, 0, 0, &timeout)) {
- if(FD_ISSET(listenfd, &readfds)) {
- net_accept();
- }
+ ret = select(greatest_sockfd + 1, &readfds, 0, 0, &timeout);
+ if(ret < 0) {
+ printf("select(): %s\n", strerror(errno));
+ return;
+ }
+ if(ret == 0)
+ return;
+
+ if(FD_ISSET(listenfd, &readfds))
+ net_accept();
- LOOP_PLAYERS()
- if(FD_ISSET(pl->conn.socket, &readfds)) {
- pl->conn.last_active = time(NULL);
- net_doread(pl);
- }
+ LOOP_PLAYERS()
+ if(FD_ISSET(pl->conn.socket, &readfds)) {
+ pl->conn.last_active = time(NULL);
+ net_doread(pl);
}
}
|