Fix accept on closed socket.

This commit is contained in:
tim.schubert@tu-bs.de 2016-10-30 02:04:43 +02:00
parent 8c316c12d6
commit c427beca1c

View file

@ -21,6 +21,7 @@ void cleanup(int signum)
if (close(SOCKFD) != 0) {
perror("close");
}
exit(1);
}
int prepaddr(char *host, char *port, struct addrinfo **ainfo, int afamily, int flags)
@ -176,9 +177,9 @@ void bstr(unsigned int n, char **out)
int server()
{
struct sockaddr_storage c_addr;
socklen_t sin_size = sizeof c_addr;
while (1) {
struct sockaddr_storage c_addr;
socklen_t sin_size = sizeof c_addr;
int c_fd = accept(SOCKFD, (struct sockaddr *)&c_addr, &sin_size);
if (c_fd == -1) {
@ -329,7 +330,9 @@ int main(int argc, char *argv[])
}
}
cleanup(0);
freeaddrinfo(ainfo); // free the linked list
if (close(SOCKFD) != 0) {
perror("close");
}
return 0;
}