CFProxySupport.c
1 // 2 // CFProxySupport.c 3 // CFNetwork 4 // 5 // Copyright (c) 2014 Apportable. All rights reserved. 6 // 7 8 #include "CFProxySupport.h" 9 10 static CFDictionaryRef copyEmptySystemProxySettings(void) { 11 return CFDictionaryCreate(NULL, NULL, NULL, 0, &kCFCopyStringDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); 12 } 13 14 static CFDictionaryRef (*copySystemProxySettingsCallback)(void) = ©EmptySystemProxySettings; 15 16 void _CFNetworkSetCopySystemProxySettingsCallback(CFDictionaryRef (*callback)(void)) { 17 copySystemProxySettingsCallback = callback; 18 } 19 20 CFDictionaryRef CFNetworkCopySystemProxySettings(void) { 21 return copySystemProxySettingsCallback(); 22 } 23 24 CFArrayRef CFNetworkCopyProxiesForURL(CFURLRef url, CFDictionaryRef proxySettings) { 25 CFDictionaryRef noSettings = CFDictionaryCreate(NULL, 26 (CFTypeRef*)&kCFProxyTypeKey, (CFTypeRef*)&kCFProxyTypeNone, 1, 27 &kCFCopyStringDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); 28 CFArrayRef proxies = CFArrayCreate(NULL, (CFTypeRef*)&noSettings, 1, &kCFTypeArrayCallBacks); 29 CFRelease(noSettings); 30 return proxies; 31 } 32 33 CFArrayRef CFNetworkCopyProxiesForAutoConfigurationScript(CFStringRef proxyAutoConfigurationScript, CFURLRef targetURL, CFErrorRef *error) { 34 DEBUG_BREAK(); 35 return NULL; 36 } 37 38 CFRunLoopSourceRef CFNetworkExecuteProxyAutoConfigurationScript(CFStringRef proxyAutoConfigurationScript, CFURLRef targetURL, CFProxyAutoConfigurationResultCallback cb, CFStreamClientContext *clientContext) { 39 DEBUG_BREAK(); 40 return NULL; 41 } 42 43 CFRunLoopSourceRef CFNetworkExecuteProxyAutoConfigurationURL(CFURLRef proxyAutoConfigURL, CFURLRef targetURL, CFProxyAutoConfigurationResultCallback cb, CFStreamClientContext *clientContext) { 44 DEBUG_BREAK(); 45 return NULL; 46 } 47 48 const CFStringRef kCFProxyTypeKey = CFSTR("kCFProxyTypeKey"); 49 const CFStringRef kCFProxyPortNumberKey = CFSTR("kCFProxyPortNumberKey"); 50 const CFStringRef kCFProxyAutoConfigurationURLKey = CFSTR("kCFProxyAutoConfigurationURLKey"); 51 const CFStringRef kCFProxyAutoConfigurationJavaScriptKey = CFSTR("kCFProxyAutoConfigurationJavaScriptKey"); 52 const CFStringRef kCFProxyUsernameKey = CFSTR("kCFProxyUsernameKey"); 53 const CFStringRef kCFProxyPasswordKey = CFSTR("kCFProxyPasswordKey"); 54 const CFStringRef kCFProxyHostNameKey = CFSTR("kCFProxyHostNameKey"); 55 const CFStringRef kCFProxyTypeNone = CFSTR("kCFProxyTypeNone"); 56 const CFStringRef kCFProxyTypeHTTP = CFSTR("kCFProxyTypeHTTP"); 57 const CFStringRef kCFProxyTypeHTTPS = CFSTR("kCFProxyTypeHTTPS"); 58 const CFStringRef kCFProxyTypeSOCKS = CFSTR("kCFProxyTypeSOCKS"); 59 const CFStringRef kCFProxyTypeFTP = CFSTR("kCFProxyTypeFTP"); 60 const CFStringRef kCFProxyTypeAutoConfigurationURL = CFSTR("kCFProxyTypeAutoConfigurationURL"); 61 const CFStringRef kCFProxyTypeAutoConfigurationJavaScript = CFSTR("kCFProxyTypeAutoConfigurationJavaScript"); 62 const CFStringRef kCFNetworkProxiesExceptionsList = CFSTR("ExceptionsList"); 63 const CFStringRef kCFNetworkProxiesExcludeSimpleHostnames = CFSTR("ExcludeSimpleHostnames"); 64 const CFStringRef kCFNetworkProxiesFTPEnable = CFSTR("FTPEnable"); 65 const CFStringRef kCFNetworkProxiesFTPPassive = CFSTR("FTPPassive"); 66 const CFStringRef kCFNetworkProxiesFTPPort = CFSTR("FTPPort"); 67 const CFStringRef kCFNetworkProxiesFTPProxy = CFSTR("FTPProxy"); 68 const CFStringRef kCFNetworkProxiesGopherEnable = CFSTR("GopherEnable"); 69 const CFStringRef kCFNetworkProxiesGopherPort = CFSTR("GopherPort"); 70 const CFStringRef kCFNetworkProxiesGopherProxy = CFSTR("GopherProxy"); 71 const CFStringRef kCFNetworkProxiesHTTPEnable = CFSTR("HTTPEnable"); 72 const CFStringRef kCFNetworkProxiesHTTPPort = CFSTR("HTTPPort"); 73 const CFStringRef kCFNetworkProxiesHTTPProxy = CFSTR("HTTPProxy"); 74 const CFStringRef kCFNetworkProxiesHTTPSEnable = CFSTR("HTTPSEnable"); 75 const CFStringRef kCFNetworkProxiesHTTPSPort = CFSTR("HTTPSPort"); 76 const CFStringRef kCFNetworkProxiesHTTPSProxy = CFSTR("HTTPSProxy"); 77 const CFStringRef kCFNetworkProxiesRTSPEnable = CFSTR("RTSPEnable"); 78 const CFStringRef kCFNetworkProxiesRTSPPort = CFSTR("RTSPPort"); 79 const CFStringRef kCFNetworkProxiesRTSPProxy = CFSTR("RTSPProxy"); 80 const CFStringRef kCFNetworkProxiesSOCKSEnable = CFSTR("SOCKSEnable"); 81 const CFStringRef kCFNetworkProxiesSOCKSPort = CFSTR("SOCKSPort"); 82 const CFStringRef kCFNetworkProxiesSOCKSProxy = CFSTR("SOCKSProxy"); 83 const CFStringRef kCFNetworkProxiesProxyAutoConfigEnable = CFSTR("ProxyAutoConfigEnable"); 84 const CFStringRef kCFNetworkProxiesProxyAutoConfigURLString = CFSTR("ProxyAutoConfigURLString"); 85 const CFStringRef kCFNetworkProxiesProxyAutoDiscoveryEnable = CFSTR("ProxyAutoDiscoveryEnable");