اشتراک در تغییرات پیکربندی پروکسی macOS
کلیدهای مرتبط انبار پویای SystemConfiguration را زیر نظر بگیرید و وقتی macOS تغییرات را گزارش میکند، سیاست پروکسی یک ترابری سفارشی را تازه کنید.
ترابریای که فقط از یک عکس لحظهای پروکسی در زمان راهاندازی استفاده میکند، ممکن است پس از تغییر شبکه یا مکان کهنه بماند. برای اشتراک macOS SystemConfiguration، این چرخه عمر را صریح نگه دارید:
- یک نشست SCDynamicStore با تابع بازگشتی بسازید.
- کلیدها یا الگوهای دقیق را با
SCDynamicStoreSetNotificationKeysثبت کنید. اینها آرایههای جداگانهاند. کلید سراسری پروکسیState:/Network/Global/Proxiesاست؛ ورودیهای مخصوص سرویس را فقط جایی اضافه کنید که ترابری آنها را مصرف میکند. - تحویل تابع بازگشتی را از طریق
SCDynamicStoreSetDispatchQueueیا منبع مناسب run-loop ترتیب دهید. ثبت نامها بهتنهایی تابع بازگشتی را اجرا نمیکند. - هنگام دریافت اعلان، پیکربندی مؤثر را دوباره بخوانید و کار بعدی را بهروز کنید. فهرست کلیدهای تغییرکرده بهخودیخود سیاست جدید کامل نیست.
- هنگام خاموش شدن، تحویل را با صف تهی غیرفعال کنید پیش از آزادسازی منابع تحت مالکیت. تا آن زمان انبار و بافت تابع بازگشتی را زنده نگه دارید.
سرآیند Apple فهرست تهی کلیدهای تغییرکرده را راهاندازی مجدد سرور انبار پویا تعریف میکند. در آن حالت هم وضعیت مرتبط را تازه کنید و فرضهای مبتنی بر محتوای قبلی را کنار بگذارید.
این رویکردی با API عمومی macOS است. سرآیندهای Apple توابع متناظر را SPI خصوصی برای iOS علامت میزنند، بنابراین همان اشتراک رابط عمومی برنامههای iOS نیست.