Transport koji koristi snimak proxyja samo pri pokretanju može ostati zastario nakon promjene mreže ili lokacije. Za macOS SystemConfiguration pretplatu držite ovaj životni ciklus eksplicitnim:

  1. Kreirajte SCDynamicStore sesiju s callback funkcijom.
  2. Registrirajte točne ključeve ili obrasce pomoću SCDynamicStoreSetNotificationKeys. To su odvojeni nizovi. Globalni proxy ključ je State:/Network/Global/Proxies; dodajte unose specifične za uslugu samo tamo gdje ih transport koristi.
  3. Organizirajte isporuku callbacka putem SCDynamicStoreSetDispatchQueue ili odgovarajućeg run-loop izvora. Samo registriranje imena ne pokreće callback.
  4. Na obavijest ponovo pročitajte efektivnu konfiguraciju i ažurirajte naredni rad. Popis promijenjenih ključeva sam po sebi nije kompletna nova politika.
  5. Pri gašenju onemogućite isporuku praznim redom prije oslobađanja vlastitih resursa. Držite skladište i kontekst callbacka živim do tada.

Appleov header definira prazan popis promijenjenih ključeva kao ponovno pokretanje servera dinamičkog skladišta. I u tom slučaju osvježite relevantno stanje i odbacite pretpostavke zasnovane na prethodnom sadržaju.

Ovo je javni pristup putem macOS API-ja. Appleovi headeri označavaju odgovarajuće funkcije kao privatni SPI za iOS, pa ista pretplata nije javno sučelje iOS aplikacija.

Povezani članci