From ac63c0965a7f23ba0cc74688c7e1fc0cde4b654d Mon Sep 17 00:00:00 2001 From: Danny Holman Date: Tue, 13 Jun 2023 23:46:02 -0500 Subject: server: mark the worker socket as non-blocking Mark the socket in the worker function as non-blocking and run poll(). This should be done in order to prevent a slow loris attack on the C&C server. Signed-off-by: Danny Holman --- server/include/mini-rat.h | 12 ++++++++++++ server/include/server.h | 4 ++++ 2 files changed, 16 insertions(+) (limited to 'server/include') diff --git a/server/include/mini-rat.h b/server/include/mini-rat.h index 8c9aad3..9230ab2 100644 --- a/server/include/mini-rat.h +++ b/server/include/mini-rat.h @@ -25,6 +25,14 @@ #include #endif +#ifdef HAVE_FCNTL_H +#include +#endif + +#ifdef HAVE_POLL_H +#include +#endif + #ifdef HAVE_PTHREAD_H #include #endif @@ -57,6 +65,10 @@ #include #endif +#ifdef HAVE_SIGNAL_H +#include +#endif + #ifdef HAVE_STDARG_H #include #endif diff --git a/server/include/server.h b/server/include/server.h index 26f9c42..b8f4fd7 100644 --- a/server/include/server.h +++ b/server/include/server.h @@ -5,7 +5,11 @@ void* control_listener(void *port); void* control_worker(void *sock_desc); + void* listener(void *port); void* worker(void *sock_desc); +ssize_t output_pump(int sock, char *buffer, size_t sz); +ssize_t input_pump(int sock, char *buffer, size_t sz); + #endif -- cgit v1.2.3