ProxyDetect

1. Overview

Proxy discovery utility that parses HTTP, HTTPS, and SOCKS proxy settings from environment variables and configuration files, normalizes endpoint data, removes duplicates, and tests whether a destination matches a configured proxy.

File role: Implementation. The file contains 179 lines and belongs to the util/ProxyDetect.cpp path.

The companion file is util/ProxyDetect.hpp.


2. Component Responsibilities

  • Implement the behavior declared by the corresponding header or entry-point contract.
  • Read standard lower- and uppercase proxy environment variables
  • Parse proxy URLs into scheme, host, and port
  • Inspect supported environment/configuration files
  • Normalize and deduplicate endpoints
  • Cache the detected list once per process
  • Compare connection destinations against known proxy endpoints

3. Dependencies and Integration

Project-level dependencies:

  • ProxyDetect.hpp

System and library dependencies:

  • algorithm
  • cctype
  • cstdlib
  • filesystem
  • fstream
  • mutex
  • sstream

4. Functions and Methods

No standalone function or method signature was detected. The file primarily contains declarations, constants, or inline data structures.


5. Filesystem, IPC, Network, and Command Interfaces

Relevant literal paths, endpoints, or resource locations include:

  • /etc/environment

6. Runtime Flow

  1. Read standard lower- and uppercase proxy environment variables
  2. Parse proxy URLs into scheme, host, and port
  3. Inspect supported environment/configuration files
  4. Normalize and deduplicate endpoints
  5. Cache the detected list once per process
  6. Compare connection destinations against known proxy endpoints

7. Runtime and Security Considerations

  • Normalizes hostnames before comparison.
  • Does not retain credentials as part of the endpoint identity.
  • Centralizes proxy detection so alert attribution can distinguish proxy connections.

8. Error Handling and Operational Notes

  • Exceptions are caught locally in one or more operations to prevent application-wide termination.
  • Boolean-returning operations use false to report recoverable failure.

9. Source Integrity

Relative source path: util/ProxyDetect.cpp

SHA-256:

a34facb4f1f68857edfa765ddfdaf1a85ff42d7cf3f13752c8f8e1bb1a8e1526

10. Licensing

The source header identifies this component as distributed under the GNU General Public License version 3. BastionGuard branding and trademarks remain subject to the notices stated in the source file.