Vyhľadávanie proxy v CFNetwork je C API použiteľné priamo z C++; prevod všetkého na objekty Objective-C je voliteľný. Zavolajte CFNetworkCopyProxiesForURL s cieľovým CFURL a nastaveniami z CFNetworkCopySystemProxySettings, aby ste získali zoradené slovníky proxy.

HodnotaVlastníctvo
Objekty vytvorené alebo vrátené funkciou Copy vrátane trás a nastaveníVlastní ich volajúci; uvoľnite každý vlastnený objekt, ktorý nie je null
Slovník z poľa alebo názov hostiteľa zo slovníka cez GetPožičané; neuvoľňujte bez predchádzajúceho podržania

Pre platné routes a index v rozsahu môže extrakcia vyzerať takto:

CFDictionaryRef proxy = static_cast<CFDictionaryRef>(
    CFArrayGetValueAtIndex(routes, index));
CFStringRef hostname = static_cast<CFStringRef>(
    CFDictionaryGetValue(proxy, kCFProxyHostNameKey));

Prečítajte si kCFProxyTypeKey skôr, než položku budete považovať za koncový bod. Priami kandidáti a kandidáti automatickej konfigurácie vyžadujú odlišné zaobchádzanie.

Preveďte CFString názov hostiteľa a CFNumber port konkrétnej položky, kým je vlastník nažive. Extrahované hodnoty C++ potom môžu vstúpiť do konfigurácie transportu. Ak chcete samotný CFString podržať aj po výsledku, najprv ho podržte a neskôr to vyvážte pomocou CFRelease; inak skončite pred uvoľnením vlastníka, ktorý ho obsahuje.

Pri upratovaní uvoľnite vytvorenú/skopírovanú cieľovú URL, slovník nastavení a pole výsledkov, podľa potreby pomocou scope guardu. Samotný typ CFStringRef premennej nezakladá vlastníctvo výsledku Get.

Súvisiace články