From 20b6e0d68429c97c8b44feb7ada0ecbf0521e000 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 27 Feb 2019 23:22:12 +0100 Subject: [PATCH] net/SocketDescriptor: add SetTcpUserTimeout() --- src/net/SocketDescriptor.cxx | 9 ++++++++- src/net/SocketDescriptor.hxx | 8 +++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/net/SocketDescriptor.cxx b/src/net/SocketDescriptor.cxx index db15cd32d..f0873520d 100644 --- a/src/net/SocketDescriptor.cxx +++ b/src/net/SocketDescriptor.cxx @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2017 Max Kellermann + * Copyright 2012-2019 Max Kellermann * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -315,6 +315,13 @@ SocketDescriptor::SetTcpDeferAccept(const int &seconds) noexcept return SetOption(IPPROTO_TCP, TCP_DEFER_ACCEPT, &seconds, sizeof(seconds)); } +bool +SocketDescriptor::SetTcpUserTimeout(const unsigned &milliseconds) noexcept +{ + return SetOption(IPPROTO_TCP, TCP_USER_TIMEOUT, + &milliseconds, sizeof(milliseconds)); +} + bool SocketDescriptor::SetV6Only(bool value) noexcept { diff --git a/src/net/SocketDescriptor.hxx b/src/net/SocketDescriptor.hxx index 3f0c284ae..99643acbb 100644 --- a/src/net/SocketDescriptor.hxx +++ b/src/net/SocketDescriptor.hxx @@ -1,5 +1,5 @@ /* - * Copyright (C) 2012-2017 Max Kellermann + * Copyright 2012-2019 Max Kellermann * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -188,6 +188,12 @@ public: bool SetCork(bool value=true) noexcept; bool SetTcpDeferAccept(const int &seconds) noexcept; + + /** + * Setter for TCP_USER_TIMEOUT. + */ + bool SetTcpUserTimeout(const unsigned &milliseconds) noexcept; + bool SetV6Only(bool value) noexcept; /**