CHECK_INCLUDE_FILES(sys/utsname.h HAVE_SYS_UTSNAME_H)
CHECK_INCLUDE_FILES(sys/resource.h HAVE_SYS_RESOURCE_H)
CHECK_INCLUDE_FILES(netinet/in.h HAVE_NETINET_IN_H)
+CHECK_INCLUDE_FILES(netinet/tcp.h HAVE_NETINET_TCP_H)
CHECK_INCLUDE_FILES(arpa/inet.h HAVE_ARPA_INET_H)
CHECK_INCLUDE_FILES(netdb.h HAVE_NETDB_H)
CHECK_INCLUDE_FILES(syslog.h HAVE_SYSLOG_H)
#cmakedefine HAVE_NANOSLEEP 1
#cmakedefine HAVE_NETDB_H 1
#cmakedefine HAVE_NETINET_IN_H 1
+#cmakedefine HAVE_NETINET_TCP_H 1
#cmakedefine HAVE_NFTW 1
#cmakedefine HAVE_OASYNC 1
#cmakedefine HAVE_ONOFOLLOW 1
#include "libserver/milter.h"
#include "contrib/zstd/zstd.h"
+#ifdef HAVE_NETINET_TCP_H
+#include <netinet/tcp.h> /* for TCP_NODELAY */
+#endif
+
/* Rotate keys each minute by default */
#define DEFAULT_ROTATION_TIME 60.0
#define DEFAULT_RETRIES 5
rspamd_inet_address_to_string (addr),
rspamd_inet_address_get_port (addr));
+#ifdef TCP_NODELAY
+ gint sopt = 1;
+
+ if (setsockopt (nfd, SOL_TCP, TCP_NODELAY, &sopt, sizeof (sopt)) == -1) {
+ msg_warn_session ("cannot set TCP_NODELAY: %s", strerror (errno));
+ }
+#endif
+
rspamd_milter_handle_socket (nfd, NULL,
session->pool,
ctx->ev_base,