Skip to content
API Documentation
BastionGuard™
ProxyDetect.hpp
Go to the documentation of this file.
1/*
2 * BastionGuard™ Secure Connection
3 * Copyright (C) 2025–2026 Calogero Scarnà
4 * GPL-3.0
5 */
6
7#pragma once
8#include <cstdint>
9#include <string>
10#include <vector>
11
12namespace bsc::ui_util {
13
14/**
15 * Rileva i proxy HTTP/SOCKS configurati nell'ambiente e nei file
16 * di sistema (/etc/environment, /etc/profile.d/proxy.sh, ecc.) al primo
17 * uso; cache-ati per la sessione.
18 *
19 * BSC non manipola il traffico proxy (lo gestisce bastionguard-cef),
20 * ma vogliamo mostrare un hint all'utente quando una connessione va verso
21 * il proxy configurato, cosi' capisce subito che non e' traffico anomalo.
22 */
24 std::string host;
25 std::uint16_t port{0};
26 std::string scheme; // http, https, socks5, ...
27};
28
29/**
30 * Restituisce la lista dei proxy rilevati. Lista vuota se nessun proxy.
31 * Thread-safe, idempotente, risultato cache-ato.
32 */
33const std::vector<ProxyEndpoint>& detected_proxies();
34
35/**
36 * Ritorna true se (host, port) matcha uno dei proxy rilevati.
37 * `host` puo' essere hostname o IP; il confronto e' case-insensitive e
38 * risolve anche localhost/127.0.0.1/::1 come equivalenti.
39 */
40bool matches_configured_proxy(const std::string& host, std::uint16_t port);
41
42} // namespace bsc::ui_util
const std::vector< ProxyEndpoint > & detected_proxies()
bool matches_configured_proxy(const std::string &host, std::uint16_t port)