summaryrefslogtreecommitdiff
path: root/src/sender.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/sender.cc')
-rw-r--r--src/sender.cc17
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);
}
}