diff options
| author | Joel Klinghed <the_jk@yahoo.com> | 2015-06-08 22:54:54 +0200 |
|---|---|---|
| committer | Joel Klinghed <the_jk@yahoo.com> | 2015-06-08 22:54:54 +0200 |
| commit | 913cfd1c7ef7a145036a8416d4ea815cb5cdb601 (patch) | |
| tree | f98a19bf120498db7f1f7a193d69655c2644f4fe /src/sender.cc | |
| parent | a2f209d2f21282d8ddb6ab76d9b6bd8f5f23b37c (diff) | |
Create sockutils
Diffstat (limited to 'src/sender.cc')
| -rw-r--r-- | src/sender.cc | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/sender.cc b/src/sender.cc index d43042e..a248cbf 100644 --- a/src/sender.cc +++ b/src/sender.cc @@ -7,7 +7,6 @@ #include <cstdlib> #include <cstring> #include <csignal> -#include <fcntl.h> #include <iostream> #include <netdb.h> #include <time.h> @@ -18,6 +17,7 @@ #include "config.hh" #include "json.hh" +#include "sockutils.hh" /* { @@ -326,7 +326,7 @@ int main() { goto error; } - make_nonblock(sock_); + make_nonblocking(sock_); { int value = 1; @@ -413,12 +413,15 @@ int main() { std::cerr << "Accept failed: " << strerror(errno); goto error; } - make_nonblock(sock); - if (clients.size() == MAX_CLIENTS) { - // Remove oldest - clients.erase(clients.begin()); + if (!make_nonblocking(sock)) { + close(sock); + } else { + if (clients.size() == MAX_CLIENTS) { + // Remove oldest + clients.erase(clients.begin()); + } + clients.emplace_back(sock); } - clients.emplace_back(sock); } } |
