summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog2
-rw-r--r--src/sock.c14
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 <rjkaes@flarenet.com>
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);