Transports, kas starpniekservera momentuzņēmumu izmanto tikai palaišanas laikā, pēc tīkla vai atrašanās vietas maiņas var palikt novecojis. Ja abonējat macOS SystemConfiguration, uzturiet šo dzīves ciklu skaidru:

  1. Izveidojiet SCDynamicStore sesiju ar atzvanīšanu.
  2. Reģistrējiet precīzas atslēgas vai modeļus ar SCDynamicStoreSetNotificationKeys. Tie ir atsevišķi masīvi. Globālā starpniekservera atslēga ir State:/Network/Global/Proxies; pievienojiet pakalpojumam raksturīgos ievadus tikai tur, kur transports tos izmanto.
  3. Organizējiet atzvanīšanas piegādi, izmantojot SCDynamicStoreSetDispatchQueue vai atbilstošo run-loop avotu. Tikai nosaukumu reģistrēšana atzvanīšanu neizpilda.
  4. Saņemot paziņojumu, atkārtoti izlasiet efektīvo konfigurāciju un atjauniniet turpmāko darbu. Mainīto atslēgu saraksts pats par sevi nav pilnīga jaunā politika.
  5. Izslēdzot, atspējojiet piegādi ar nulles rindu pirms piederīgo resursu atbrīvošanas. Līdz tam uzturiet krātuvi un atzvanīšanas kontekstu dzīvu.

Apple galvene tukšu mainīto atslēgu sarakstu definē kā dinamiskās krātuves servera restartu. Arī šajā gadījumā atsvaidziniet attiecīgo stāvokli un atmetiet pieņēmumus, kas balstīti uz iepriekšējo saturu.

Šī ir publiska macOS API pieeja. Apple galvenes attiecīgās funkcijas atzīmē kā privātu SPI iOS, tāpēc tas pats abonements nav publiska iOS lietotņu saskarne.

Saistītie raksti