CFProxySupport Reference
| Framework | CoreServices |
| Companion guide | |
| Declared in | CFProxySupport.h |
Overview
The CFProxySupport API enables you to take advantage of global proxy configuration settings in your application.
The CFProxySupport functions return arrays of dictionaries, where each dictionary describes a single proxy. The arrays represent the order in which the proxies should be tried. In general, you should try to download a URL using the first proxy in the array, try the second proxy if the first one fails, and so on.
Every proxy dictionary has an entry for kCFProxyTypeKey. If the type is anything except kCFProxyTypeAutoConfigurationURL, the dictionary also has entries for the proxy's host and port (under kCFProxyHostNameKey and kCFProxyPortNumberKey respectively). If the type is kCFProxyTypeAutoConfigurationURL, it has an entry for kCFProxyAutoConfigurationURLKey.
The keys for username and password are optional and are present only if the username or password could be extracted from the information passed in (either from the URL itself or from the proxy dictionary supplied). These APIs do not consult any external credential stores such as the Keychain.
Functions
CFNetworkCopyProxiesForAutoConfigurationScript
Executes a proxy autoconfiguration script to determine the best proxy to use to retrieve a specified URL.
extern CFArrayRef CFNetworkCopyProxiesForAutoConfigurationScript( CFStringRef proxyAutoConfigurationScript, CFURLRef targetURL CFErrorRef * error );
Parameters
- proxyAutoConfigurationScript
A
CFStringcontaining the code of the autoconfiguration script to execute.- targetURL
The URL your application intends to access.
- error
The address of an error object reference that is overwritten on return if an error occurs.
Availability
- Available in iOS 2.0 and later.
Declared In
CFProxySupport.hCFNetworkCopyProxiesForURL
Returns the list of proxies that should be used to download a given URL.
extern CFArrayRef CFNetworkCopyProxiesForURL( CFURLRef url, CFDictionaryRef proxySettings );
Parameters
- url
The URL your application intends to access.
- proxySettings
A dictionary describing the available proxy settings. The dictionary should be in the format returned by
SystemConfiguration.framework. (See System Configuration Framework Reference for more information.)
Return Value
Returns an array of dictionaries. Each dictionary describes a single proxy. The array is ordered optimally for requesting the URL specified.
Availability
- Available in iOS 2.0 and later.
Declared In
CFProxySupport.hCFNetworkCopySystemProxySettings
Returns a CFDictionary containing the current systemwide internet proxy settings.
CFDictionaryRef CFNetworkCopySystemProxySettings( void );
Discussion
The dictionary returned contains key-value pairs that represent the current internet proxy settings. The keys in this dictionary are defined in “Global Proxy Settings Constants.”
The caller is responsible for releasing the returned dictionary.
Availability
- Available in iOS 2.0 and later.
Declared In
CFProxySupport.hCFNetworkExecuteProxyAutoConfigurationScript
Downloads a proxy autoconfiguration script and executes it.
CFRunLoopSourceRef CFNetworkExecuteProxyAutoConfigurationScript( CFStringRef proxyAutoConfigurationScript, CFURLRef targetURL, CFProxyAutoConfigurationResultCallback cb, CFStreamClientContext *clientContext);
Parameters
- proxyAutoConfigurationScript
A
CFStringcontaining the code of the autoconfiguration script to be executed.- targetURL
The URL that your application intends to eventually download using the proxies.
- cb
A callback to be called when execution of the script is finished.
- clientContext
A stream context containing a client info object and optionally retain and release callbacks for that object.
Discussion
This function returns a run loop source that the caller should schedule. Once execution of the script has completed, the specified callback function is called.
Availability
- Available in iOS 2.0 and later.
Declared In
CFProxySupport.hCFNetworkExecuteProxyAutoConfigurationURL
Downloads a proxy autoconfiguration script and executes it.
extern CFRunLoopSourceRef CFNetworkExecuteProxyAutoConfigurationURL( CFURLRef proxyAutoConfigURL, CFURLRef targetURL, CFProxyAutoConfigurationResultCallback cb, CFStreamClientContext *clientContext);
Parameters
- proxyAutoConfigURL
The URL of the autoconfiguration script.
- targetURL
The URL that your application intends to eventually download using the proxies.
- cb
A callback to be called when execution of the script is finished.
- clientContext
A stream context containing a client info object and optionally retain and release callbacks for that object.
Discussion
This function returns a run loop source that the caller should schedule. Once downloading and execution of the script has completed, the specified callback function is called.
Availability
- Available in iOS 2.0 and later.
Declared In
CFProxySupport.hCallbacks
CFProxyAutoConfigurationResultCallback
Callback function called when a proxy autoconfiguration computation has completed.
typedef CALLBACK_API_C( void, CFProxyAutoConfigurationResultCallback )( void *client, CFArrayRef proxyList, CFErrorRef error );
void myFunction( void *client, CFArrayRef proxyList, CFErrorRef error );
Parameters
- client
The client reference originally passed in the
clientContextparameter of theCFNetworkExecuteProxyAutoConfigurationScriptorCFNetworkExecuteProxyAutoConfigurationURLcall that triggered this callback.- proxyList
The list of proxies returned by the autoconfiguration script. This list is in a format suitable for passing to
CFProxyCopyProxiesForURL(with the added guarantee that no entries will ever be autoconfiguration URL entries). If an error occurs, this value will beNULL.- error
An error object that indicates any error that may have occurred. If no error occurred, this value will be NULL.
Availability
- Available in iOS 2.0 and later.
Declared In
CFProxySupport.hConstants
Property Keys
Keys for calls to property get/set functions such as CFReadStreamSetProperty and CFReadStreamCopyProperty.
const CFStringRef kCFProxyAutoConfigurationHTTPResponseKey; const CFStringRef kCFProxyAutoConfigurationJavaScriptKey; const CFStringRef kCFProxyAutoConfigurationURLKey; const CFStringRef kCFProxyHostNameKey; const CFStringRef kCFProxyPasswordKey; const CFStringRef kCFProxyPortNumberKey; const CFStringRef kCFProxyTypeKey; const CFStringRef kCFProxyUsernameKey;
Constants
kCFProxyAutoConfigurationHTTPResponseKeyA
CFHTTPMessageRefvalue found in the user info dictionary of an authentication error returned to theCFNetworkCopyProxiesForAutoConfigurationScriptfunction or to aCFProxyAutoConfigurationResultCallbackcallback.Available in iOS 3.0 and later.
Declared in
CFProxySupport.h.kCFProxyAutoConfigurationJavaScriptKeyA
CFStringvalue containing the full JavaScript source for the proxy autoconfiguration (PAC) file. This key is only present for proxies of typekCFProxyAutoConfigurationJavaScript.Available in iOS 4.0 and later.
Declared in
CFProxySupport.h.kCFProxyAutoConfigurationURLKeyA
CFURLvalue specifying the location of the proxy autoconfiguration (PAC) file. This key is only present for proxies of typekCFProxyTypeAutoConfigurationURL.Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFProxyHostNameKeyA
CFStringvalue containing either the hostname or IP number of the proxy host.Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFProxyPasswordKeyThe password to be used when contacting the proxy. This key is only present if the password can be determined from the information passed in. (External credential stores such as the keychain are not consulted.)
Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFProxyPortNumberKeyA
CFNumbervalue specifying the port that should be used to contact the proxy.Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFProxyTypeKeySpecifies the type of proxy. The value can be any of the values listed in “Proxy Types.”
Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFProxyUsernameKeyThe username to be used when contacting the proxy. This key is only present if the username can be determined from the information passed in. (External credential stores such as the keychain are not consulted.)
Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.
Proxy Types
Constants that specify the type of proxy.
const CFStringRef kCFProxyTypeNone; const CFStringRef kCFProxyTypeAutoConfigurationURL; const CFStringRef kCFProxyTypeAutoConfigurationJavaScript; const CFStringRef kCFProxyTypeFTP; const CFStringRef kCFProxyTypeHTTP; const CFStringRef kCFProxyTypeHTTPS; const CFStringRef kCFProxyTypeSOCKS;
Constants
kCFProxyTypeNoneSpecifies that no proxy should be used.
Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFProxyTypeAutoConfigurationURLSpecifies that the proxy is determined by an autoconfiguration file at a given URL.
Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFProxyTypeAutoConfigurationJavaScriptSpecifies that the proxy is determined by a provided autoconfiguration script.
Available in iOS 4.0 and later.
Declared in
CFProxySupport.h.kCFProxyTypeFTPSpecifies an FTP proxy.
Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFProxyTypeHTTPSpecifies an HTTP proxy.
Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFProxyTypeHTTPSSpecifies an HTTPS proxy.
Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFProxyTypeSOCKSSpecifies a SOCKS proxy.
Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.
Global Proxy Settings Constants
Constants for keys in the global proxy settings dictionary returned by CFNetworkCopySystemProxySettings.
const CFStringRef kCFNetworkProxiesHTTPEnable; const CFStringRef kCFNetworkProxiesHTTPPort; const CFStringRef kCFNetworkProxiesHTTPProxy; const CFStringRef kCFNetworkProxiesProxyAutoConfigEnable; const CFStringRef kCFNetworkProxiesProxyAutoConfigJavaScript; const CFStringRef kCFNetworkProxiesProxyAutoConfigURLString;
Constants
kCFNetworkProxiesHTTPEnableValue is a
CFNumberobject indicating whether an HTTP proxy is enabled. The proxy is enabled if the key is present and the associated value is nonzero.Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFNetworkProxiesHTTPPortValue is a
CFNumberobject containing the port number associated with the HTTP proxy.Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFNetworkProxiesHTTPProxyValue is a
CFStringobject containing the HTTP proxy host name or IP number.Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFNetworkProxiesProxyAutoConfigEnableValue is a
CFNumberobject indicating whether proxy autoconfiguration is enabled. Proxy autoconfiguration is enabled if the key is present and the associated value is nonzero.Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.kCFNetworkProxiesProxyAutoConfigJavaScriptValue is a
CFStringobject that contains the full JavaScript source of the ProxyAutoConfig (PAC) file.Available in iOS 4.0 and later.
Declared in
CFProxySupport.h.kCFNetworkProxiesProxyAutoConfigURLStringValue is a
CFStringobject that contains the URL of the proxy autoconfiguration (PAC) file.Available in iOS 2.0 and later.
Declared in
CFProxySupport.h.
© 2010 Apple Inc. All Rights Reserved. (Last updated: 2010-03-26)