Berlangganan perubahan konfigurasi proxy macOS
Pantau kunci penyimpanan dinamis SystemConfiguration yang relevan dan segarkan kebijakan proxy transport kustom saat macOS melaporkan perubahan.
Transport yang hanya menggunakan snapshot proxy saat mulai dapat tetap usang setelah perubahan jaringan atau lokasi. Untuk langganan macOS SystemConfiguration, pertahankan siklus hidup ini secara eksplisit:
- Buat sesi SCDynamicStore dengan callback.
- Daftarkan kunci atau pola yang tepat menggunakan
SCDynamicStoreSetNotificationKeys. Keduanya adalah array terpisah. Kunci proxy global adalahState:/Network/Global/Proxies; tambahkan input khusus layanan hanya di tempat transport menggunakannya. - Atur pengiriman callback melalui
SCDynamicStoreSetDispatchQueueatau sumber run-loop yang sesuai. Mendaftarkan nama saja tidak menjalankan callback. - Saat menerima notifikasi, baca ulang konfigurasi efektif dan perbarui pekerjaan berikutnya. Daftar kunci yang berubah bukanlah kebijakan baru yang lengkap.
- Saat mematikan, nonaktifkan pengiriman dengan antrean nol sebelum melepaskan sumber daya yang dimiliki. Pertahankan penyimpanan dan konteks callback tetap hidup hingga saat itu.
Header Apple mendefinisikan daftar kunci yang berubah yang kosong sebagai mulai ulang server penyimpanan dinamis. Dalam kasus itu pun, segarkan status yang relevan dan buang asumsi berdasarkan isi sebelumnya.
Ini adalah pendekatan API macOS publik. Header Apple menandai fungsi terkait sebagai SPI privat untuk iOS, sehingga langganan yang sama bukanlah antarmuka aplikasi iOS publik.