Por qué se puede rechazar una propiedad CFStream SOCKS tardía
Aplique las propiedades de flujo configurables antes de abrir, compruebe la aceptación y distinga entre iniciar el flujo y completar la negociación del proxy.
Una devolución de llamada denominada “will connect” no es prueba de que el CFStream siga siendo configurable. El contrato de CFReadStreamSetProperty de Apple indica que hay que suponer que las propiedades deben establecerse antes de abrir, salvo que su propia documentación indique lo contrario.
Para una integración de flujo existente, mantenga la secuencia unida: cree el flujo/par, construya el diccionario SOCKS con los tipos correctos, establezca la propiedad adecuada y compruebe su resultado booleano; después registre los eventos y comience a abrir.
Un resultado false es un fallo de configuración, no una ruta instalada. Compruebe el tipo de flujo, la clave de la propiedad, los tipos de valor del diccionario y el ciclo de vida antes de continuar.
En una disposición dirigida por eventos, la apertura puede comenzar sin terminar la negociación. Observe los eventos de estado y de error antes de considerar utilizable la conexión.
Si otra biblioteca es propietaria del flujo, use su enlace documentado previo a la apertura. Una devolución de llamada que solo llega más tarde puede ser el punto de integración equivocado. Cambiar propiedades en un flujo ya abierto no puede mover esa conexión existente a SOCKS.