CFNetworkCopyProxiesForURL-i tagastatavate PAC-URL-ide hindamine
Muutke CFNetworki automaatse puhverserveri konfiguratsiooni tulemused sihtkohapõhisteks marsruutideks, ajamata segi PAC-aadressi ja puhverserveri lõpp-punkti.
Teie rakendus küsib CFNetworkilt, kuidas veebisaidile jõuda, ja saab URL-i, mis lõpeb .pac-ga. Selle hostinime soketiühendusse panemine on vale tee: see tähistab konfiguratsiooniskripti.
CFNetworkCopyProxiesForURL tagastab siht-URL-i jaoks järjestatud massiivi sõnastikke. Enne lõpp-punkti väljade lugemist kontrollige kCFProxyTypeKey-i. Tüübi kCFProxyTypeAutoConfigurationURL sõnastik annab kCFProxyAutoConfigurationURLKey, mis nõuab veel üht hindamisammust.
- Hankige süsteemi praegused puhverserveri seaded ja küsige marsruute tegeliku siht-URL-i jaoks.
- Kui tulemus viitab PAC-URL-ile, hinnake seda skripti sama sihtkoha jaoks.
- Lugege saadud kandidaatide tüüpe ja lõpp-punkte. HTTP-puhverserver, SOCKS-puhverserver ja otsemarsruut nõuavad erinevat ühenduse käsitlemist.
- Säilitage kandidaatide järjekord, kui rakendate lubatud tõrke- ja varukäitumist.
CFNetworkExecuteProxyAutoConfigurationURL laadib ja hindab skripti asünkroonselt. Selle vahetu tagastusväärtus on run loop allikas. Ajastage see allikas; tagasikutse annab hindamistulemuse või vea pärast töö lõppemist. Allika loomine ja kohe tühja tulemusmuutuja lugemine ei oota midagi. Muutke allikas kehtetuks, kui toiming tuleb tühistada.
Hoidke siht-URL päringu küljes. PAC-skript võib kahe hosti jaoks valida erinevaid marsruute, nii et ühe lahendatud puhverserveri salvestamine vastuseks kõigile järgmistele sihtkohtadele muudab skripti poliitikat. Samuti on otsene kandidaat selgesõnaline marsruut, mitte puuduv puhverserveri hostinimi.
Need API-d on kasulikud, kui kohandatud transport peab süsteemiseadeid tõlgendama. Need ei rakenda selle transpori jaoks järgnevat puhverserveri protokolli ja päring ei too Keychainist paroole. macOS-is sobitage puhverserveri mandaat Keychainis eraldi.