Move shutdown out of linger and make it variable on tlssocks. - geomyidae - A small C-based gopherd.
HTML git clone git://bitreich.org/geomyidae/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/geomyidae/
DIR Log
DIR Files
DIR Refs
DIR Tags
DIR README
DIR LICENSE
---
DIR commit ccbe2e7bf5613a77a9e1f2e29ff037c08755cdb0
DIR parent fe5c840d34c12bc38be14397144731b9f46ecec8
HTML Author: Christoph Lohmann <20h@r-36.net>
Date: Sat, 12 Aug 2023 21:37:16 +0200
Move shutdown out of linger and make it variable on tlssocks.
Diffstat:
M ind.c | 1 -
M main.c | 3 +++
2 files changed, 3 insertions(+), 1 deletion(-)
---
DIR diff --git a/ind.c b/ind.c
@@ -653,7 +653,6 @@ lingersock(int sock)
waitforpendingbytes(sock);
j = 0;
setsockopt(sock, IPPROTO_TCP, TCP_NODELAY, &j, sizeof(int));
- shutdown(sock, SHUT_RDWR);
return;
}
DIR diff --git a/main.c b/main.c
@@ -1174,6 +1174,8 @@ read_selector_again:
}
lingersock(tlssocks[tlsclientreader? 0 : 1]);
+ shutdown(tlssocks[tlsclientreader? 0 : 1],
+ tlsclientreader? SHUT_WR : SHUT_RD);
close(tlssocks[tlsclientreader? 0 : 1]);
if (tlsclientreader) {
@@ -1192,6 +1194,7 @@ read_selector_again:
nocgi, istls);
lingersock(sock);
+ shutdown(sock, SHUT_RDWR);
close(sock);
if (loglvl & CONN) {