diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2009-07-05 23:41:51 +0200 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2009-07-05 23:42:49 +0200 |
commit | e1871219cae287d32a3dff716f8824c1ead62001 (patch) | |
tree | daabb3aebf568077c644e8a5dd43eb0797575db0 /src/common | |
parent | a7ff2a8e6ba97047c79ef305e2982f030277f588 (diff) | |
download | tmwa-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')
-rw-r--r-- | src/common/socket.c | 17 |
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 { |