X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Fdaemon.c;h=bc33aec45619dc9a13acb9393c74c0d041225928;hb=109ad60f4d0f4cf43d9dec72fc6eeb3c20d0f062;hp=dc49eeb85a32770ce98282c7c1539f844c5220cc;hpb=ad7fc6eb6895ff40cc9998d157d1401bbf43c35e;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/daemon.c b/src/src/daemon.c index dc49eeb85..bc33aec45 100644 --- a/src/src/daemon.c +++ b/src/src/daemon.c @@ -520,12 +520,13 @@ if (pid == 0) { if (smtp_out) { - int i; + int i, fd = fileno(smtp_in); uschar buf[128]; mac_smtp_fflush(); /* drain socket, for clean TCP FINs */ - for(i = 16; read(fileno(smtp_in), buf, sizeof(buf)) > 0 && i > 0; ) i--; + if (fcntl(fd, F_SETFL, O_NONBLOCK) == 0) + for(i = 16; read(fd, buf, sizeof(buf)) > 0 && i > 0; ) i--; } search_tidyup(); smtp_log_no_mail(); /* Log no mail if configured */ @@ -1458,10 +1459,9 @@ if (daemon_listen && !inetd_wait_mode) debug_printf("listening on %s port %d\n", ipa->address, ipa->port); #ifdef TCP_FASTOPEN - if (setsockopt(listen_sockets[sk], SOL_TCP, TCP_FASTOPEN, &smtp_connect_backlog, - sizeof(smtp_connect_backlog))) - log_write(0, LOG_MAIN|LOG_PANIC, "failed to set socket FASTOPEN: %s", - strerror(errno)); + if (setsockopt(listen_sockets[sk], IPPROTO_TCP, TCP_FASTOPEN, + &smtp_connect_backlog, sizeof(smtp_connect_backlog))) + DEBUG(D_any) debug_printf("setsockopt FASTOPEN: %s\n", strerror(errno)); #endif /* Start listening on the bound socket, establishing the maximum backlog of