summaryrefslogtreecommitdiff
path: root/src/common/socket.c
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <bjorn@lindeijer.nl>2009-07-05 23:41:51 +0200
committerThorbjørn Lindeijer <bjorn@lindeijer.nl>2009-07-05 23:42:49 +0200
commite1871219cae287d32a3dff716f8824c1ead62001 (patch)
treedaabb3aebf568077c644e8a5dd43eb0797575db0 /src/common/socket.c
parenta7ff2a8e6ba97047c79ef305e2982f030277f588 (diff)
downloadtmwa-e1871219cae287d32a3dff716f8824c1ead62001.tar.gz
tmwa-e1871219cae287d32a3dff716f8824c1ead62001.tar.bz2
tmwa-e1871219cae287d32a3dff716f8824c1ead62001.tar.xz
tmwa-e1871219cae287d32a3dff716f8824c1ead62001.zip
Bail out early from connect_client
Don't use an invalid file descriptor in an attempt to create a session.
Diffstat (limited to 'src/common/socket.c')
-rw-r--r--src/common/socket.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/common/socket.c b/src/common/socket.c
index 4543b6a..66093f7 100644
--- a/src/common/socket.c
+++ b/src/common/socket.c
@@ -146,10 +146,15 @@ static int connect_client(int listen_fd)
//printf("connect_client : %d\n",listen_fd);
- len=sizeof(client_address);
+ len = sizeof(client_address);
- fd=accept(listen_fd,(struct sockaddr*)&client_address,&len);
- if(fd_max<=fd) fd_max=fd+1;
+ fd = accept(listen_fd,(struct sockaddr*)&client_address,&len);
+ if (fd_max <= fd) {
+ fd_max = fd + 1;
+ } else if (fd == -1) {
+ perror("accept");
+ return;
+ }
// setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,NULL,0);
setsockopt(fd,SOL_SOCKET,SO_REUSEADDR,(char *)&yes,sizeof yes); // reuse fix
@@ -160,11 +165,7 @@ static int connect_client(int listen_fd)
// setsockopt(fd,IPPROTO_TCP,TCP_NODELAY,NULL,0);
setsockopt(fd,IPPROTO_TCP,TCP_NODELAY,(char *)&yes,sizeof yes); // reuse fix
- if(fd==-1){
- perror("accept");
- } else {
- FD_SET(fd,&readfds);
- }
+ FD_SET(fd,&readfds);
#ifdef LCCWIN32
{