ConnMan network manager
 help / color / mirror / Atom feed
From: Grant Erickson <gerickson@nuovations.com>
To: connman@lists.linux.dev
Subject: [PATCH 0/8] Add Configurable Online Check TCP Connect Timeout
Date: Sat, 11 Nov 2023 10:57:12 -0800	[thread overview]
Message-ID: <7931960F-4A3F-448E-BDDE-773E48A1789B@nuovations.com> (raw)

This introduces support for a configurable "online" HTTP-based Internet
reachability check TCP connection timeout by:

    1. Introducing a new 'OnlineCheckConnectTimeout' setting.
    2. Adding to GWeb a TCP connection timeout member, getter, and setter.
    3. Leveraging both (1) and (2) in the service and WISPr code to pass
       (1) to (2) when so configured.

If the GWeb TCP connect timeout is greater than zero, a GLib connection
timeout timer and callback are added to the session such that, when they
expire, the in flight TCP connection is aborted and the session closure
function invoked with 'GWEB_HTTP_STATUS_CODE_REQUEST_TIMEOUT'.

A TCP connect timeout of zero (0) indicates that no explicit connection
timeout will be used and no timer or callback added to the session,
leaving the timeout to the underlying operating system and its network
stack.

With an operating system default connection time out of roughly 130
seconds, when the 'EnableOnlineToReadyTransition' setting is asserted,
failovers to an alternative network service can take unreasonably long
without such a setting as this since the connection timeout dominates
the failover time.

Grant Erickson (8):
  gweb: Add TCP connect timeout member and getter/setter.
  gweb: Factor out session transport closure.
  gweb: Leverage TCP connect timeout.
  gweb: Add documentation to TCP connect timeout-related functions.
  main: Introduce the 'OnlineCheckConnectTimeout' setting.
  Leverage GWeb connect timeout and 'OnlineCheckConnectTimeout'.
  Add documentation for 'OnlineCheckConnectTimeout'.
  wispr: Add documentation to '__connman_wispr_start'.

 doc/connman.conf.5.in |   9 ++
 gweb/gweb.c           | 286 +++++++++++++++++++++++++++++++++++++++---
 gweb/gweb.h           |   3 +
 src/connman.h         |   1 +
 src/main.c            |  30 +++++
 src/main.conf         |   9 ++
 src/service.c         |  10 +-
 src/wispr.c           |  57 ++++++++-
 8 files changed, 379 insertions(+), 26 deletions(-)

-- 
2.42.0


-- 
Principal
Nuovations

gerickson@nuovations.com
http://www.nuovations.com/


             reply	other threads:[~2023-11-11 18:57 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-11 18:57 Grant Erickson [this message]
2023-11-11 18:58 ` [PATCH 1/8] gweb: Add TCP connect timeout member and getter/setter Grant Erickson
2023-11-11 18:58 ` [PATCH 2/8] gweb: Factor out session transport closure Grant Erickson
2023-11-11 18:59 ` [PATCH 3/8] gweb: Leverage TCP connect timeout Grant Erickson
2023-11-11 18:59 ` [PATCH 4/8] gweb: Add documentation to TCP connect timeout-related functions Grant Erickson
2023-11-11 18:59 ` [PATCH 5/8] main: Introduce the 'OnlineCheckConnectTimeout' setting Grant Erickson
2023-11-11 19:00 ` [PATCH 6/8] Leverage GWeb connect timeout and 'OnlineCheckConnectTimeout' Grant Erickson
2023-11-11 19:00 ` [PATCH 7/8] Add documentation for 'OnlineCheckConnectTimeout' Grant Erickson
2023-11-11 19:01 ` [PATCH 8/8] wispr: Add documentation to '__connman_wispr_start' Grant Erickson
2023-11-19 14:05 ` [PATCH 0/8] Add Configurable Online Check TCP Connect Timeout Marcel Holtmann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7931960F-4A3F-448E-BDDE-773E48A1789B@nuovations.com \
    --to=gerickson@nuovations.com \
    --cc=connman@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).