Programmet ditt spør CFNetwork om hvordan et nettsted nås, og får en nettadresse som slutter på .pac. Å føre det vertsnavnet inn i socket-forbindelsen er en feil vei: det peker på et konfigurasjonsskript.

CFNetworkCopyProxiesForURL returnerer en ordnet tabell med ordbøker for måladressen. Kontroller kCFProxyTypeKey før du leser endepunktfeltene. En ordbok av typen kCFProxyTypeAutoConfigurationURL oppgir kCFProxyAutoConfigurationURLKey, som krever nok et evalueringstrinn.

  1. Hent de gjeldende proxyinnstillingene i systemet og be om ruter til den reelle måladressen.
  2. Når et resultat refererer til en PAC-nettadresse, evaluer det skriptet for samme destinasjon.
  3. Les typene og endepunktene til kandidatene som kommer ut. En HTTP-proxy, en SOCKS-proxy og en direkte rute krever forskjellig håndtering av forbindelsen.
  4. Ta vare på rekkefølgen til kandidatene når du anvender den tillatte feil- og reserveoppførselen.

CFNetworkExecuteProxyAutoConfigurationURL henter og evaluerer skriptet asynkront. Den umiddelbare returverdien er en run loop-kilde. Legg den kilden inn i kjøreplanen; tilbakemeldingen leverer evalueringsresultatet eller feilen når arbeidet er fullført. Å opprette kilden og straks lese en tom resultatvariabel venter ikke på noe. Ugyldiggjør kilden dersom operasjonen må avbrytes.

Hold måladressen knyttet til oppslaget. Et PAC-skript kan velge forskjellige ruter for to verter, så å lagre én oppløst proxy som svar for hver etterfølgende destinasjon endrer retningslinjene til skriptet. På samme måte er en direkte kandidat en uttrykkelig rute, ikke et manglende proxy-vertsnavn.

Disse API-ene er nyttige når en tilpasset transport må tolke systeminnstillingene. De implementerer ikke den påfølgende proxyprotokollen for den transporten, og oppslaget henter ikke passord fra Keychain. På macOS samsvarer du proxy-påloggingsinformasjonen i Keychain separat.

Relaterte artikler