Skip to content

Add per-account mTLS client certificate support and fix network switch recovery#858

Open
paolostivanin wants to merge 2 commits intoopencloud-eu:mainfrom
paolostivanin:main
Open

Add per-account mTLS client certificate support and fix network switch recovery#858
paolostivanin wants to merge 2 commits intoopencloud-eu:mainfrom
paolostivanin:main

Conversation

@paolostivanin
Copy link
Copy Markdown

  • per account mTLS support: allows users to configure a client certificate for mutual TLS authentication on a per-account basis. Certificates are imported from .p12/.pfx files and persisted in account settings.
  • fix account not recovering after network switch: when switching networks (e.g. WiFi → 5G), the account would get stuck and never recover until app restart. Fixed by aborting stale ConnectionValidator instances on reachability/captive portal changes, clearing the main QNAM's connection cache so requests use fresh sockets, and adding a 60s hard timeout to ConnectionValidator as a safety net against hung requests.

Tested on openSUSE Tumbleweed x86_64.

This is related to opencloud-eu/android#116 .

Allows users to configure a client certificate for mutual TLS
authentication on a per-account basis. Certificates are imported
from .p12/.pfx files and persisted in account settings.
When switching networks (e.g. WiFi to mobile hotspot), the running
ConnectionValidator's HTTP request could hang on the dead socket.
The guard in checkConnectivity() would then block all subsequent
reconnection attempts, leaving the account permanently stuck.

Two fixes:
- Abort any stale ConnectionValidator when reachability or captive
  portal state changes, so a fresh validation can start immediately.
- Add a 60-second hard timeout to ConnectionValidator to abort hung
  requests as a safety net.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant