From dbff3ab2369c84ede80afd052ee567591b5a5c1a Mon Sep 17 00:00:00 2001 From: Horst Schirmeier Date: Wed, 5 Mar 2014 16:17:28 +0100 Subject: [PATCH] jobserver: exit completely when socket ops fail When socket(2), setsockopt(2), bind(2), listen(2), or accept(2) return an unexpected error status, it is usually not a good idea to let the campaign continue. This is especially a problem as the perror(3) message gets lost in normal campaign output and may be missed by the user. Change-Id: I92747174e0706a613bedd8c6664cc8d888e07533 --- src/core/cpn/JobServer.cc | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/core/cpn/JobServer.cc b/src/core/cpn/JobServer.cc index 88b94765..8bcd8885 100644 --- a/src/core/cpn/JobServer.cc +++ b/src/core/cpn/JobServer.cc @@ -125,7 +125,7 @@ void JobServer::run() if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1) { perror("socket"); // TODO: Log-level? - return; + exit(1); } /* Enable address reuse */ @@ -133,7 +133,7 @@ void JobServer::run() if (setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) == -1) { perror("setsockopt"); // TODO: Log-level? - return; + exit(1); } /* IPv4, bind to all interfaces */ @@ -146,14 +146,14 @@ void JobServer::run() if (::bind(s, (struct sockaddr*) &saddr, sizeof(saddr)) == -1) { perror("bind"); // TODO: Log-level? - return; + exit(1); } /* Listen with a backlog of maxThreads */ if (listen(s, m_maxThreads) == -1) { perror("listen"); // TODO: Log-level? - return; + exit(1); } cout << "JobServer listening ..." << endl; // TODO: Log-level? @@ -166,7 +166,7 @@ void JobServer::run() if (errno != EWOULDBLOCK) { perror("poll/accept"); // TODO: Log-level? - return; + exit(1); } else { continue; }