ترابری‌ای که فقط از یک عکس لحظه‌ای پروکسی در زمان راه‌اندازی استفاده می‌کند، ممکن است پس از تغییر شبکه یا مکان کهنه بماند. برای اشتراک macOS SystemConfiguration، این چرخه عمر را صریح نگه دارید:

  1. یک نشست SCDynamicStore با تابع بازگشتی بسازید.
  2. کلیدها یا الگوهای دقیق را با SCDynamicStoreSetNotificationKeys ثبت کنید. این‌ها آرایه‌های جداگانه‌اند. کلید سراسری پروکسی State:/Network/Global/Proxies است؛ ورودی‌های مخصوص سرویس را فقط جایی اضافه کنید که ترابری آن‌ها را مصرف می‌کند.
  3. تحویل تابع بازگشتی را از طریق SCDynamicStoreSetDispatchQueue یا منبع مناسب run-loop ترتیب دهید. ثبت نام‌ها به‌تنهایی تابع بازگشتی را اجرا نمی‌کند.
  4. هنگام دریافت اعلان، پیکربندی مؤثر را دوباره بخوانید و کار بعدی را به‌روز کنید. فهرست کلیدهای تغییرکرده به‌خودی‌خود سیاست جدید کامل نیست.
  5. هنگام خاموش شدن، تحویل را با صف تهی غیرفعال کنید پیش از آزادسازی منابع تحت مالکیت. تا آن زمان انبار و بافت تابع بازگشتی را زنده نگه دارید.

سرآیند Apple فهرست تهی کلیدهای تغییرکرده را راه‌اندازی مجدد سرور انبار پویا تعریف می‌کند. در آن حالت هم وضعیت مرتبط را تازه کنید و فرض‌های مبتنی بر محتوای قبلی را کنار بگذارید.

این رویکردی با API عمومی macOS است. سرآیندهای Apple توابع متناظر را SPI خصوصی برای iOS علامت می‌زنند، بنابراین همان اشتراک رابط عمومی برنامه‌های iOS نیست.

مقالات مرتبط