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 tydelig:

  1. Opprett en SCDynamicStore-økt med en callback.
  2. Registrer nøyaktige nøkler eller mønstre med SCDynamicStoreSetNotificationKeys. Dette er adskilte matriser. Den globale proxynøkkelen er State:/Network/Global/Proxies; legg bare til tjenestespesifikke inndata der transporten bruker dem.
  3. Sørg for callback-levering via SCDynamicStoreSetDispatchQueue eller den riktige run-loop-kilden. Bare registrering av navn kjører ikke callbacken.
  4. Ved varsel, les den gjeldende 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 dynamikklagertjeneren. Oppdater også relevant tilstand i det tilfellet, og forkast antakelser som bygger 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