summaryrefslogtreecommitdiff
path: root/accel-pppd/ctrl/sstp
diff options
context:
space:
mode:
authorVladislav Grishenko <themiron@mail.ru>2020-08-01 14:10:03 +0500
committerVladislav Grishenko <themiron@mail.ru>2020-08-01 14:14:01 +0500
commit91544dbb4da783204333330cad0ad51235847f65 (patch)
tree648089a20f4dd2dd41089718cd214bf985c2697f /accel-pppd/ctrl/sstp
parent744bffb2595db071a46826f90503722cd0e97009 (diff)
downloadaccel-ppp-91544dbb4da783204333330cad0ad51235847f65.tar.gz
accel-ppp-91544dbb4da783204333330cad0ad51235847f65.zip
sstp: use quick linger for closing sockets
Diffstat (limited to 'accel-pppd/ctrl/sstp')
-rw-r--r--accel-pppd/ctrl/sstp/sstp.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/accel-pppd/ctrl/sstp/sstp.c b/accel-pppd/ctrl/sstp/sstp.c
index d9def425..7175c826 100644
--- a/accel-pppd/ctrl/sstp/sstp.c
+++ b/accel-pppd/ctrl/sstp/sstp.c
@@ -2832,6 +2832,7 @@ static struct sstp_serv_t serv = {
static void sstp_init(void)
{
struct sockaddr_t *addr = &serv.addr;
+ struct linger linger;
struct stat st;
int port, value;
char *opt;
@@ -2882,6 +2883,11 @@ static void sstp_init(void)
} else {
value = 1;
setsockopt(serv.hnd.fd, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value));
+
+ /* quick timeout */
+ linger.l_onoff = 1;
+ linger.l_linger = 5;
+ setsockopt(serv.hnd.fd, SOL_SOCKET, SO_LINGER, &linger, sizeof(linger));
}
if (bind(serv.hnd.fd, &addr->u.sa, addr->len) < 0) {