Зворотний виклик із назвою «will connect» не є доказом того, що CFStream усе ще можна налаштовувати. Контракт CFReadStreamSetProperty від Apple каже, що слід припускати, що властивості встановлюються до відкриття, якщо їхня власна документація не зазначає іншого.

Для наявної інтеграції потоку тримайте послідовність разом: створіть потік/пару, побудуйте правильно типізований словник SOCKS, установіть потрібну властивість і перевірте її логічний результат, потім зареєструйте події та почніть відкриття.

Результат false — це збій конфігурації, а не встановлений маршрут. Перед продовженням перевірте тип потоку, ключ властивості, типи значень словника та життєвий цикл.

У подієвій схемі відкриття може початися, не завершивши узгодження. Спостерігайте події стану та помилок, перш ніж вважати з'єднання придатним.

Якщо потоком володіє інша бібліотека, використовуйте її документований хук перед відкриттям. Зворотний виклик, що надходить лише пізніше, може бути неправильною точкою інтеграції. Зміна властивостей уже відкритого потоку не може перевести це наявне з'єднання на SOCKS.

Схожі статті