CFNetwork-Proxyresultater direkt an C++ liesen
Benotzt dem Apple seng C-Proxy-Sich-APIen aus C++ a haalt geléint Wierderbuchwäerter lieweg, ouni se als eegen Objeten ze befreien.
D'Proxy-Sich vum CFNetwork ass eng C-API, déi een direkt aus C++ ka benotzen; alles an Objective-C-Objete ëmzewandelen ass optional. Rufft CFNetworkCopyProxiesForURL mam Zil-CFURL an den Astellunge vum CFNetworkCopySystemProxySettings op, fir geuerdnet Proxywierderbicher ze kréien.
| Wäert | Proprietéit |
|---|---|
| Objeten, déi vum Copy erstallt oder zréckgi sinn, inklusiv Weeër an Astellungen | Am Proprietär vum Opruffer; befreit all eegenen Objet, deen net null ass |
| Wierderbuch aus dem Array oder Hostnumm aus dem Wierderbuch iwwer Get | Geléint; befreit en net, ouni en virdrun behalen ze hunn |
Fir gülteg routes an en Index am Beräich kann d'Extraktioun sou ausgesinn:
CFDictionaryRef proxy = static_cast<CFDictionaryRef>(
CFArrayGetValueAtIndex(routes, index));
CFStringRef hostname = static_cast<CFStringRef>(
CFDictionaryGetValue(proxy, kCFProxyHostNameKey));
Liest kCFProxyTypeKey, ier Dir den Agang als Endpunkt behandelt. Direkt an automatesch-konfiguréiert Kandidate verlaangen ënnerschiddlech Behandlung.
Wandelt den CFString-Hostnumm an de CFNumber-Port vun engem konkreten Agang ëm, soulaang den Proprietär lieweg ass. Déi extrahéiert C++-Wäerter kënnen duerno an d'Konfiguratioun vum Transport kommen. Fir den CFString selwer iwwer d'Resultat eraus ze behalen, behaalt en als éischt a gläicht dat duerno mat CFRelease aus; soss fäerdeg, ier Dir den Proprietär befreit, deen en enthält.
Befreit beim Botzen déi erstallt/kopéiert Zil-URL, den Astellungswierderbuch an den Resultatsarray, a benotzt en Ëmfaangsschutz wou et passt. Nëmmen den CFStringRef-Typ vun enger Variabel gëtt keng Proprietéit iwwer en Get-Resultat.