Uma callback chamada “will connect” não é prova de que o CFStream ainda seja configurável. O contrato CFReadStreamSetProperty da Apple diz que se deve assumir que as propriedades são definidas antes de abrir, salvo se a documentação das próprias indicar o contrário.

Para uma integração de fluxo existente, mantenha a sequência junta: crie o fluxo/o par, construa o dicionário SOCKS com os tipos corretos, defina a propriedade adequada e verifique o respetivo resultado booleano, depois registe eventos e comece a abrir.

Um resultado false é uma falha de configuração, não uma rota instalada. Verifique o tipo de fluxo, a chave da propriedade, os tipos de valor do dicionário e o ciclo de vida antes de continuar.

Numa disposição orientada a eventos, a abertura pode começar sem que a negociação termine. Observe os eventos de estado e de erro antes de considerar a ligação utilizável.

Se outra biblioteca for dona do fluxo, use o hook documentado de pré-abertura. Uma callback que só chega mais tarde pode ser o ponto de integração errado. Alterar propriedades num fluxo já aberto não pode mover essa ligação existente para SOCKS.

Artigos relacionados