From c86d22226ff952b33cf4fbee23f0172b86230024 Mon Sep 17 00:00:00 2001 From: Robert James Kaes Date: Sat, 13 Apr 2002 19:03:18 +0000 Subject: Added additional error handling for the bind() and listen() system calls when setting up the listening socket. --- ChangeLog | 2 ++ src/sock.c | 14 +++++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4df60d5..c672f85 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2,6 +2,8 @@ * src/sock.c (opensock): If the Listen directive is in use, then we should bind outgoing address to this address. + (listen_sock): Added error handling for the bind() and listen() + calls when setting up the listening socket. 2002-04-12 Robert James Kaes diff --git a/src/sock.c b/src/sock.c index 7f76336..004d0b6 100644 --- a/src/sock.c +++ b/src/sock.c @@ -1,4 +1,4 @@ -/* $Id: sock.c,v 1.24 2002-04-13 05:20:19 rjkaes Exp $ +/* $Id: sock.c,v 1.25 2002-04-13 19:03:18 rjkaes Exp $ * * Sockets are created and destroyed here. When a new connection comes in from * a client, we need to copy the socket and the create a second socket to the @@ -206,9 +206,17 @@ listen_sock(uint16_t port, socklen_t * addrlen) addr.sin_addr.s_addr = inet_addr("0.0.0.0"); } - bind(listenfd, (struct sockaddr *) &addr, sizeof(addr)); + if (bind(listenfd, (struct sockaddr *) &addr, sizeof(addr)) < 0) { + log_message(LOG_ERR, "Unable to bind listening socket because of %s", + strerror(errno)); + return -1; + } - listen(listenfd, MAXLISTEN); + if (listen(listenfd, MAXLISTEN) < 0) { + log_message(LOG_ERR, "Unable to start listening socket because of %s", + strerror(errno)); + return -1; + } *addrlen = sizeof(addr); -- cgit v1.2.3