Vyhledávání proxy v CFNetwork je C API použitelné přímo z C++; převod všeho na objekty Objective-C je volitelný. Zavolejte CFNetworkCopyProxiesForURL s cílovým CFURL a nastavením z CFNetworkCopySystemProxySettings, abyste získali seřazené slovníky proxy.

HodnotaVlastnictví
Objekty vytvořené nebo vrácené funkcí Copy, včetně tras a nastaveníVlastní volající; uvolněte každý vlastněný objekt, který není null
Slovník z pole nebo název hostitele ze slovníku přes GetZapůjčeno; neuvolňujte, dokud jste si jej neponechali

Pro platné routes a index v rozsahu může extrakce vypadat takto:

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

Přečtěte si kCFProxyTypeKey, než položku budete považovat za koncový bod. Přímí kandidáti a kandidáti automatické konfigurace vyžadují odlišné zacházení.

Převeďte název hostitele CFString a port CFNumber konkrétní položky, dokud je vlastník naživu. Extrahované hodnoty C++ pak mohou vstoupit do konfigurace transportu. Chcete-li samotný CFString podržet i po výsledku, nejprve jej podržte a později to vyvažte pomocí CFRelease; jinak skončete dříve, než uvolníte vlastníka, který jej obsahuje.

Při úklidu uvolněte vytvořenou/zkopírovanou cílovou URL, slovník nastavení a pole výsledků, případně pomocí scope guardu. Samotný typ CFStringRef proměnné nezakládá vlastnictví výsledku Get.

Související články