Warum eine spät gesetzte CFStream-SOCKS-Eigenschaft abgelehnt werden kann
Konfigurierbare Stream-Eigenschaften vor dem Öffnen setzen, Annahme prüfen und das Starten des Streams vom Abschluss der Proxy-Aushandlung unterscheiden.
Ein Callback namens „will connect“ ist kein Beweis dafür, dass der CFStream noch konfigurierbar ist. Apples Vertrag zu CFReadStreamSetProperty besagt, dass Eigenschaften vor dem Öffnen gesetzt werden müssen, sofern die eigene Dokumentation nichts anderes angibt.
Bei einer bestehenden Stream-Integration die Reihenfolge beibehalten: Stream/Paar erzeugen, das korrekt typisierte SOCKS-Wörterbuch aufbauen, die passende Eigenschaft setzen und ihr boolesches Ergebnis prüfen, dann Ereignisse registrieren und das Öffnen beginnen.
Ein false-Ergebnis ist ein Konfigurationsfehler, keine eingerichtete Route. Vor dem Fortfahren Stream-Typ, Eigenschaftsschlüssel, Werttypen des Wörterbuchs und Lebenszyklus prüfen.
Bei einer ereignisgesteuerten Anordnung kann das Öffnen beginnen, ohne dass die Aushandlung abgeschlossen ist. Status- und Fehlerereignisse beobachten, bevor die Verbindung als nutzbar gilt.
Wenn eine andere Bibliothek den Stream besitzt, deren dokumentierten Pre-Open-Hook verwenden. Ein erst später eintreffender Callback kann der falsche Integrationspunkt sein. Eigenschaften auf einem bereits geöffneten Stream zu ändern, kann diese bestehende Verbindung nicht auf SOCKS umstellen.