Een transport dat alleen bij het opstarten een proxymomentopname gebruikt, kan verouderd blijven na een netwerk- of locatiewijziging. Houd bij een macOS SystemConfiguration-abonnement deze levenscyclus expliciet:

  1. Maak een SCDynamicStore-sessie met een callback.
  2. Registreer exacte sleutels of patronen met SCDynamicStoreSetNotificationKeys. Dat zijn aparte arrays. De globale proxysleutel is State:/Network/Global/Proxies; voeg dienstspecifieke invoer alleen toe waar het transport die gebruikt.
  3. Regel callbacklevering via SCDynamicStoreSetDispatchQueue of de juiste run-loop-bron. Alleen namen registreren voert de callback niet uit.
  4. Lees bij een melding de effectieve configuratie opnieuw en werk het vervolgwerk bij. De lijst met gewijzigde sleutels is op zichzelf niet het volledige nieuwe beleid.
  5. Schakel bij afsluiten de levering uit met een nulwachtrij voordat eigen resources worden vrijgegeven. Houd de opslag en de callbackcontext tot dan in leven.

De header van Apple definieert een lege lijst met gewijzigde sleutels als een herstart van de dynamische opslagserver. Ververs ook in dat geval de relevante status en verwerp aannames op basis van de vorige inhoud.

Dit is een openbare macOS-API-benadering. De headers van Apple markeren de bijbehorende functies als private SPI voor iOS, dus hetzelfde abonnement is geen openbare iOS-applicatie-interface.

Gerelateerde artikelen