From 9a4ab4a85ce30ecbad6e23c7aa6431bb83bef5ed Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Tue, 2 May 2017 09:32:10 -0700 Subject: [PATCH] Connections now have a default SO_LINGER=2 --- src/Connection.hpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/Connection.hpp b/src/Connection.hpp index 003b92f..506a765 100644 --- a/src/Connection.hpp +++ b/src/Connection.hpp @@ -30,6 +30,7 @@ // SDK #include "ZeroTierSDK.h" #include "SocketTap.hpp" +#include "RingBuffer.hpp" namespace ZeroTier { @@ -38,6 +39,10 @@ namespace ZeroTier { */ struct Connection { + //circular_buffer crbuf = circular_buffer(ZT_TCP_RX_BUF_SZ); + //circular_buffer ctbuf = circular_buffer(ZT_TCP_TX_BUF_SZ); + + int pid; PhySocket *sock; struct pico_socket *picosock; @@ -72,6 +77,14 @@ namespace ZeroTier { } sdk_fd = fdpair[0]; app_fd = fdpair[1]; + if(ZT_SOCK_BEHAVIOR_LINGER) { + struct linger so_linger; + so_linger.l_onoff = true; + so_linger.l_linger = ZT_SOCK_BEHAVIOR_LINGER_TIME; + if(zts_setsockopt(app_fd, SOL_SOCKET, SO_LINGER, &so_linger, sizeof so_linger) < 0) { + DEBUG_ERROR("error setsockopt (%d)", errno); + } + } } ~Connection() {