Transport koji koristi snimku 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. Stvorite SCDynamicStore sesiju s callback funkcijom.
  2. Registrirajte točne ključeve ili uzorke 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 ponovno pročitajte efektivnu konfiguraciju i ažurirajte daljnji rad. Popis promijenjenih ključeva sam po sebi nije potpuna nova politika.
  5. Pri gašenju onemogućite isporuku praznim redom prije oslobađanja vlastitih resursa. Držite spremište i kontekst callbacka živima do tada.

Appleov header definira prazan popis promijenjenih ključeva kao ponovno pokretanje poslužitelja dinamičkog spremišta. I u tom slučaju osvježite relevantno stanje i odbacite pretpostavke temeljene 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