Информация о версии Платформы CFNetwork для OS X v10.5 и v10.6

CFNetwork является платформой, обеспечивающей APIs C для общих Протоколов Интернета, таких как HTTP, FTP и другие. Этот APIs разработан с мобильностью, производительностью и непротиворечивостью в памяти, и доступен приложениям Какао и Углерода. CFNetwork является частью платформы защиты CoreServices. Просто соединение с CoreServices сделает платформу CFNetwork доступной для использования.

Этот документ описывает изменения в CFNetwork начиная с OS X v10.4, Тайгер. Обратите внимание на то, что можно быть в состоянии найти больше информации о многих из этих изменений в документации разработчика Apple.

Содержание:

CFError

CFError является новым CFType, представленным в CoreFoundation для создания отчетов об ошибках; см. Базовую Информацию о версии Основы для OS X v10.9 для большего количества подробных данных о CFError. В Leopard CFNetwork принял CFError. Также, CFNetwork обеспечивает свои собственные ошибочные домены, коды ошибки и пользовательские информационные записи в новом заголовочном файле под названием CFNetworkErrors.h, Эти новые домены и коды ошибки упоминаются ниже. Действительно сошлитесь на заголовочный файл CFNetworkErrors.h для большей части актуальной информации.

Изменения в CFNetworkErrors.h для OS X v10.5

Ошибочные домены:

const CFStringRef kCFErrorDomainCFNetwork;

Ошибочные ключи и коды, которые могут быть получены из userInfo словаря CFERROR:

Когда ошибка kCFHostErrorUnknown возвращается, значение этого ключа установлено в CFNumber, содержащий необработанное ошибочное значение, возвращенное getaddrinfo ()

const CFStringRef kCFGetAddrInfoFailureKey;

Когда отказ SOCKS произошел, значение этого ключа установлено в CFString, содержащий значение состояния, возвращенное сервером SOCKS.

const CFStringRef kCFSOCKSStatusCodeKey;

Когда ошибка kCFSOCKSErrorUnsupportedServerVersion возвращается, значение этого ключа установлено в CFString, содержащий номер версии, который требует сервер.

const CFStringRef kCFSOCKSVersionKey;

Когда ошибка kCFSOCKS5ErrorUnsupportedNegotiationMethod возвращается, значение этого ключа установлено в CFString, содержащий метод согласования, вызванный сервером.

const CFStringRef kCFSOCKSNegotiationMethodKey;

То, когда ошибка kCFNetServicesErrorDNSServiceFailure возвращается, значение этого ключа установлено в CFNumber, содержащий значение, возвратилось из DNS; межмочите его с помощью значений dns_sd.h

константа CFStringRef kCFDNSServiceFailureKey;

Когда ошибка kCFFTPErrorUnexpectedStatusCode возвращается, значение этого ключа установлено в CFString, содержащий код состояния, возвращенный сервером.

const CFStringRef kCFFTPStatusCodeKey;

Когда ошибка kCFFTPErrorUnexpectedStatusCode возвращается, значение этого ключа установлено в CFString, содержащий код состояния, возвращенный сервером.

const CFStringRef kCFFTPStatusCodeKey;

Посмотрите Ссылочную Библиотеку> Базовая Основа для большего количества подробных данных о типе CFError.

Новый API, доступный для OS X v10.5

CFNetServices.h

SInt32 CFNetServiceGetPortNumber(CFNetServiceRef theService);

Запросите Сетевую службу для ее номера порта. Параметр функции, «theService», является экземпляром Сетевой службы, который будет запрошен, и это должен быть не-NULL. Это возвращает SInt32, содержащий номер порта в порядке байтов узла. На ошибке это возвращается-1, если порт объекта не известен (не был разрешен),

CFProxySupport.h

CFArrayRef CFNetworkCopyProxiesForURL(CFURLRef url, CFDictionaryRef proxySettings);

Учитывая URL и словарь прокси, определяет упорядоченный список прокси, которые должны использоваться для загрузки данного URL. Параметр, «URL», указывает который CFURLRef найти информацию прокси для. «ProxySettings» параметр является словарем, описывающим доступные настройки прокси; формат словаря должен соответствовать, который описал в и возвратился SystemConfiguration.framework. Эта функция возвращает массив словарей; каждый словарь описывает единственный прокси.

CFArrayRef CFNetworkCopyProxiesForAutoConfigurationScript(CFStringRef proxyAutoConfigurationScript, CFURLRef targetURL);

Таким образом функция выполняет сценарий, данный в «proxyAutoConfigurationScript», с помощью «targetURL» как ввод. Это возвратит массив прокси, как возвращено сценарием.

CFRunLoopSourceRefCFNetworkExecuteProxyAutoConfigurationURL(CFURLRef proxyAutoConfigURL,
                                         CFURLRef targetURL,
CFProxyAutoConfigurationResultCallback cb,
                                         CFStreamClientContext *clientContext);

Асинхронно загружает сценарий автоматической конфигурации с данного URL, затем выполняет тот сценарий с помощью «targetURL» как ввод. После того, как завершенный, обратный вызов «cb» вызывают через цикл выполнения, передавая массив прокси, возвращенный сценарием. Обратите внимание на то, что вызывающая сторона должна запланировать возвращенный источник цикла выполнения на выполнение выполненный цикл для получения обратного вызова.

Ключи Типа прокси - дополнительную информацию см. в CFProxySupport.h

const CFStringRef kCFProxyTypeKey;
const CFStringRef kCFProxyTypeNone;
const CFStringRef kCFProxyTypeHTTP;
const CFStringRef kCFProxyTypeHTTPS;
const CFStringRef kCFProxyTypeSOCKS;
const CFStringRef kCFProxyTypeFTP;
const CFStringRef kCFProxyTypeAutoConfigurationURL;

Ключ для имени хоста прокси; значение является CFString. Обратите внимание на то, что это может быть IPv4 или IPv6 строка точечного IP.

const CFStringRef kCFProxyHostNameKey;

Ключ для номера порта прокси; значение является CFNumber указание порта, на котором можно связаться с прокси.

const CFStringRef kCFProxyPortNumberKey;

Ключ для расположения файла PAC прокси; если тип прокси является kCFProxyTypeAutoConfigurationURL, этот ключ только присутствует. Значение является CFURL указание расположения файла автоматической конфигурации прокси.

const CFStringRef kCFProxyAutoConfigurationURLKey;

Ключ для имени пользователя, которое будет использоваться с прокси; значение является CFString. Если имя пользователя могло бы быть извлечено из информации, переданной в, Обратите внимание на то, что этот ключ будет только присутствовать. Ни с какими внешними учетными хранилищами (как Цепочка для ключей) не консультируются.

const CFStringRef kCFProxyUsernameKey;

Ключ для пароля, который будет использоваться с прокси; значение является CFString. Если имя пользователя могло бы быть извлечено из информации, переданной в, Обратите внимание на то, что этот ключ будет только присутствовать. Ни с какими внешними учетными хранилищами (как Цепочка для ключей) не консультируются.

const CFStringRef kCFProxyPasswordKey;

CFHTTPStream.h

Потоковый ключ свойства, для операций копии. Значение является CFHTTPMessage, переданным потоком, после того, как были сделаны все модификации (такой что касается аутентификации, политики установления соединений или перенаправления).

const CFStringRef kCFStreamPropertyHTTPFinalRequest;

CFHTTPMessage.h

Эти две строки представляют методы аутентификации, поддерживающиеся в CFNetwork.

const CFStringRef kCFHTTPAuthenticationSchemeNTLM;

const CFStringRef kCFHTTPAuthenticationSchemeNegotiate;

Новый API, доступный для OS X v10.6

CFProxySupport.h

Чтобы только к модели программирования вокруг использования прокси с CFNetwork, мы добавили, что поддержка получения системы сохранила интернет-настройки прокси непосредственно к CFNetwork. До этого нужно было использовать платформу SystemConfiguration для получения прокси и CFNetwork для установки прокси на потоке.

CFDictionaryRef CFNetworkCopySystemProxySettings( void );

Эта функция возвращает словарь, содержащий пары ключ/значение, представляющие текущие интернет-настройки прокси. Посмотрите ниже для определений ключей и значений. NULL возвратов, если никакие настройки прокси не были определены или если встретились с ошибкой. Вызывающая сторона ответственна за выпуск возвращенного словаря.

const CFStringRef kCFNetworkProxiesExceptionsList

Ключ для списка образцов имени хоста, которые должны обойти прокси; значение является CFArray Кфстрингса.

const CFStringRef kCFNetworkProxiesExcludeSimpleHostnames

Ключ, значение которого указывает, будут ли исключены простые имена хоста; значение является CFNumber. Если ключ будет присутствовать и будет иметь ненулевое значение, будут исключены простые имена хоста.

const CFStringRef kCFNetworkProxiesFTPEnable

Ключ для включенного состояния прокси ftp; значение является CFNumber. Если ключ присутствует и имеет ненулевое значение, прокси включен.

const CFStringRef kCFNetworkProxiesFTPPassive

Ключ для состояния пассивного режима для прокси ftp; значение является CFNumber. Значение каждый указывает, что пассивный режим включен, значение нуля указывает, что не включен пассивный режим.

const CFStringRef kCFNetworkProxiesFTPPort

Ключ для номера порта связался с прокси ftp; значение является CFNumber, который является номером порта.

const CFStringRef kCFNetworkProxiesFTPProxy

Ключ для имени хоста связался с прокси ftp; значение является CFString, который является именем прокси-сервера.

const CFStringRef kCFNetworkProxiesGopherEnable

Ключ для включенного состояния прокси гофера; значение является CFNumber. Если ключ присутствует и имеет ненулевое значение, прокси включен.

const CFStringRef kCFNetworkProxiesGopherPort

Ключ для номера порта связался с прокси гофера; значение является CFNumber, который является номером порта.

const CFStringRef kCFNetworkProxiesGopherProxy

Ключ для имени хоста связался с прокси гофера; значение является CFString, который является именем прокси-сервера.

const CFStringRef kCFNetworkProxiesHTTPEnable

Ключ для включенного состояния Прокси HTTP; значение является CFNumber. Если ключ присутствует и имеет ненулевое значение, прокси включен.

const CFStringRef kCFNetworkProxiesHTTPPort

Ключ для номера порта связался с Прокси HTTP; значение является CFNumber, который является номером порта.

const CFStringRef kCFNetworkProxiesHTTPProxy

Ключ для имени хоста связался с Прокси HTTP; значение является CFString, который является именем прокси-сервера.

const CFStringRef kCFNetworkProxiesHTTPSEnable

Ключ для включенного состояния прокси HTTPS; значение является CFNumber. Если ключ присутствует и имеет ненулевое значение, прокси включен.

const CFStringRef kCFNetworkProxiesHTTPSPort

Ключ для номера порта связался с прокси HTTPS; значение является CFNumber, который является номером порта.

const CFStringRef kCFNetworkProxiesHTTPSProxy

Ключ для имени хоста связался с прокси HTTPS; значение является CFString, который является именем прокси-сервера.

const CFStringRef kCFNetworkProxiesRTSPEnable

Ключ для включенного состояния прокси RTSP; значение является CFNumber. Если ключ присутствует и имеет ненулевое значение, прокси включен.

const CFStringRef kCFNetworkProxiesRTSPPort

Ключ для номера порта связался с прокси RTSP; значение является CFNumber, который является номером порта.

const CFStringRef kCFNetworkProxiesRTSPProxy

Ключ для имени хоста связался с прокси RTSP; значение является CFString, который является именем прокси-сервера.

const CFStringRef kCFNetworkProxiesSOCKSEnable

Ключ для включенного состояния прокси SOCKS; значение является CFNumber. Если ключ присутствует и имеет ненулевое значение, прокси включен.

const CFStringRef kCFNetworkProxiesSOCKSPort

Ключ для номера порта связался с прокси SOCKS; значение является CFNumber, который является номером порта.

const CFStringRef kCFNetworkProxiesSOCKSProxy

Ключ для имени хоста связался с прокси SOCKS; значение является CFString, который является именем прокси-сервера.

const CFStringRef kCFNetworkProxiesProxyAutoConfigEnable

Ключ для включенного состояния ProxyAutoConfig (PAC); значение является CFNumber. Если ключ присутствует и имеет ненулевое значение, ProxyAutoConfig включают.

const CFStringRef kCFNetworkProxiesProxyAutoConfigURLString

Ключ для URL, указывающего расположение ProxyAutoConfig (PAC) файл; значение является CFString, который является URL для файла PAC.

const CFStringRef kCFNetworkProxiesProxyAutoDiscoveryEnable

Ключ для включенного состояния автоматического открытия прокси; значение является CFNumber. Если ключ присутствует и имеет ненулевое значение, автоматическое открытие прокси включено.