Callback bernama “will connect” bukan bukti bahwa CFStream masih dapat dikonfigurasi. Kontrak CFReadStreamSetProperty dari Apple menyatakan bahwa properti harus dianggap ditetapkan sebelum membuka, kecuali dokumentasinya sendiri menyatakan lain.

Untuk integrasi aliran yang sudah ada, jaga urutannya tetap utuh: buat aliran/pasangan, bangun kamus SOCKS dengan tipe yang benar, tetapkan properti yang sesuai dan periksa hasil Boolean-nya, lalu daftarkan peristiwa dan mulai membuka.

Hasil false adalah kegagalan konfigurasi, bukan rute yang terpasang. Periksa jenis aliran, kunci properti, tipe nilai kamus, dan siklus hidup sebelum melanjutkan.

Dalam pengaturan berbasis peristiwa, pembukaan dapat dimulai tanpa menyelesaikan negosiasi. Amati peristiwa status dan kesalahan sebelum menganggap koneksi dapat digunakan.

Jika pustaka lain memiliki aliran tersebut, gunakan hook pra-buka yang didokumentasikannya. Callback yang hanya datang belakangan mungkin merupakan titik integrasi yang salah. Mengubah properti pada aliran yang sudah terbuka tidak dapat memindahkan koneksi yang ada itu ke SOCKS.

Artikel terkait