diff options
author | Vladislav Grishenko <themiron@mail.ru> | 2020-08-01 14:10:03 +0500 |
---|---|---|
committer | Vladislav Grishenko <themiron@mail.ru> | 2020-08-01 14:14:01 +0500 |
commit | 91544dbb4da783204333330cad0ad51235847f65 (patch) | |
tree | 648089a20f4dd2dd41089718cd214bf985c2697f /accel-pppd | |
parent | 744bffb2595db071a46826f90503722cd0e97009 (diff) | |
download | accel-ppp-xebd-91544dbb4da783204333330cad0ad51235847f65.tar.gz accel-ppp-xebd-91544dbb4da783204333330cad0ad51235847f65.zip |
sstp: use quick linger for closing sockets
Diffstat (limited to 'accel-pppd')
-rw-r--r-- | accel-pppd/ctrl/sstp/sstp.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/accel-pppd/ctrl/sstp/sstp.c b/accel-pppd/ctrl/sstp/sstp.c index d9def42..7175c82 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) { |