/ src / CFProxySupport.c
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) = &copyEmptySystemProxySettings;
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");