En transport som bare bruker et proxy-øyeblikksbilde ved oppstart, kan bli utdatert etter en endring i nettverk eller plassering. For et macOS SystemConfiguration-abonnement bør denne livssyklusen være eksplisitt:

  1. Opprett en SCDynamicStore-økt med en callback.
  2. Registrer nøyaktige nøkler eller mønstre med SCDynamicStoreSetNotificationKeys. Dette er separate matriser. Den globale proxynøkkelen er State:/Network/Global/Proxies; legg bare til tjenestespesifikke inndata der transporten bruker dem.
  3. Ordne callback-levering via SCDynamicStoreSetDispatchQueue eller den relevante run-loop-kilden. Bare registrering av navn kjører ikke callbacken.
  4. Ved varsel, les den effektive konfigurasjonen på nytt og oppdater det videre arbeidet. Listen over endrede nøkler er ikke i seg selv den fullstendige nye policyen.
  5. Ved avslutning, deaktiver levering med en nullkø før du frigjør egne ressurser. Hold lageret og callback-konteksten i live til da.

Apples header definerer en tom liste over endrede nøkler som en omstart av dynamikklagerserveren. Oppdater også relevant tilstand i det tilfellet, og forkast antakelser basert på det forrige innholdet.

Dette er en offentlig macOS-API-tilnærming. Apples headere markerer de tilsvarende funksjonene som privat SPI for iOS, så det samme abonnementet er ikke et offentlig iOS-applikasjonsgrensesnitt.

Relaterte artikler