libproxy escolle unha ruta; o teu cliente fai a conexión
Usa os resultados de libproxy como candidatos de enrutamento por URL en vez de esperar que o descubrimento redirixa os sockets da aplicación.
Se libproxy devolve un URI de proxy mentres o seguinte socket conecta directamente, revisa a entrega. libproxy descobre a política; non intercepta todos os sockets que abre a aplicación.
- Consulta o recurso. Na API C documentada de libproxy 0.5, crea unha fábrica de proxy e pide o URL de destino real.
- Interpreta os candidatos ordenados. Os resultados HTTP, SOCKS e directo requiren un tratamento distinto. Mantén a súa orde de preferencia e a política de fallo prevista.
- Configura o consumidor. Entrega o tipo de proxy elixido, o punto de conexión e a disposición de autenticación a un transporte que os admita. Un socket TCP en bruto non adquire CONNECT nin negociación SOCKS a partir dun URI devolto.
Non gardes unha soa resposta como ruta para todos os destinos nin fagas permanente o enrutamento directo porque o primeiro proxy fallou unha vez.
Se o cliente HTTP xa integra o proxy do sistema ou o descubrimento PAC, escolle un único propietario da selección. Dous selectores independentes máis outro envoltorio poden producir unha ruta que ningunha das dúas políticas pretendía.
En código nativo, segue o ciclo de vida da fábrica e da memoria de resultados da API instalada. Reutilizar unha fábrica pode conservar estado de descubrimento útil, pero segue a necesitar unha consulta para cada destino. Rexistra a selección por separado do resultado da conexión: un URI devolto non demostra unha autenticación, resolución ou acceso posterior correctos.