Wenn libproxy eine Proxy-URI zurückgibt, während der nächste Socket direkt verbindet, prüfen Sie die Übergabe. libproxy ermittelt die Richtlinie; es fängt nicht jeden Socket ab, den die Anwendung öffnet.

  1. Fragen Sie die Ressource ab. Erstellen Sie in der dokumentierten libproxy-0.5-C-API eine Proxy-Factory und fragen Sie die tatsächliche Ziel-URL ab.
  2. Deuten Sie die geordneten Kandidaten. HTTP-, SOCKS- und Direkt-Ergebnisse erfordern unterschiedliche Behandlung. Behalten Sie ihre Präferenzreihenfolge und die beabsichtigte Fehlerrichtlinie bei.
  3. Konfigurieren Sie den Konsumenten. Geben Sie den gewählten Proxytyp, den Endpunkt und die Authentifizierungsregelung an einen Transport weiter, der sie unterstützt. Ein roher TCP-Socket erhält aus einer zurückgegebenen URI keine CONNECT- oder SOCKS-Aushandlung.

Speichern Sie nicht eine Antwort als Route für alle Ziele und machen Sie direktes Routing nicht dauerhaft, nur weil der erste Proxy einmal fehlgeschlagen ist.

Wenn der HTTP-Client bereits System-Proxy- oder PAC-Erkennung integriert, wählen Sie einen einzigen Eigentümer der Auswahl. Zwei unabhängige Selektoren plus ein weiterer Wrapper können eine Route erzeugen, die keine der beiden Richtlinien beabsichtigt hat.

Befolgen Sie in nativem Code den Lebenszyklus von Factory und Ergebnis-Speicher der installierten API. Die Wiederverwendung einer Factory kann nützlichen Erkennungszustand bewahren, benötigt aber weiterhin eine Abfrage für jedes Ziel. Protokollieren Sie die Auswahl getrennt vom Verbindungsergebnis: eine zurückgegebene URI belegt keine erfolgreiche Authentifizierung, Auflösung oder Weiterleitung des Zugriffs.

Ähnliche Artikel