Siirtotapa, joka käyttää välityspalvelimen tilannekuvaa vain käynnistyksessä, voi jäädä vanhentuneeksi verkon tai sijainnin muutoksen jälkeen. macOS SystemConfiguration -tilauksessa pidä tämä elinkaari nimenomaisena:

  1. Luo SCDynamicStore-istunto takaisinkutsulla.
  2. Rekisteröi tarkat avaimet tai mallit komennolla SCDynamicStoreSetNotificationKeys. Ne ovat erillisiä taulukoita. Globaali välityspalvelinavain on State:/Network/Global/Proxies; lisää palvelukohtaiset syötteet vain sinne, missä siirtotapa käyttää niitä.
  3. Järjestä takaisinkutsun toimitus SCDynamicStoreSetDispatchQueue-funktion tai sopivan run-loop-lähteen kautta. Pelkkä nimien rekisteröinti ei suorita takaisinkutsua.
  4. Lue ilmoituksen saatua tehokas kokoonpano uudelleen ja päivitä myöhempi työ. Muutettujen avainten luettelo ei itsessään ole täydellinen uusi käytäntö.
  5. Poista toimitus käytöstä sammutettaessa nollajonolla ennen omistettujen resurssien vapauttamista. Pidä varasto ja takaisinkutsun konteksti elossa siihen asti.

Applen otsikkotiedosto määrittelee tyhjän muutettujen avainten luettelon dynaamisen varaston palvelimen uudelleenkäynnistykseksi. Päivitä myös siinä tapauksessa asiaankuuluva tila ja hylkää aiempaan sisältöön perustuvat oletukset.

Tämä on julkinen macOS-API-lähestymistapa. Applen otsikkotiedostot merkitsevät vastaavat funktiot yksityiseksi SPI:ksi iOS:lle, joten sama tilaus ei ole julkinen iOS-sovellusrajapinta.

Aiheeseen liittyvät artikkelit