Un transport che usa un'istantanea del proxy solo all'avvio può restare obsoleto dopo un cambio di rete o di posizione. Per una sottoscrizione macOS SystemConfiguration, mantieni esplicito questo ciclo di vita:

  1. Crea una sessione SCDynamicStore con una callback.
  2. Registra chiavi o pattern esatti con SCDynamicStoreSetNotificationKeys. Sono array separati. La chiave proxy globale è State:/Network/Global/Proxies; aggiungi input specifici del servizio solo dove il transport li utilizza.
  3. Organizza la consegna della callback tramite SCDynamicStoreSetDispatchQueue o la sorgente run-loop appropriata. Registrare solo i nomi non esegue la callback.
  4. Alla notifica, rileggi la configurazione effettiva e aggiorna il lavoro successivo. L'elenco delle chiavi modificate non è di per sé la nuova politica completa.
  5. Allo spegnimento, disabilita la consegna con una coda nulla prima di rilasciare le risorse possedute. Mantieni vivi l'archivio e il contesto della callback fino ad allora.

L'header di Apple definisce un elenco vuoto di chiavi modificate come un riavvio del server dell'archivio dinamico. Anche in quel caso, aggiorna lo stato pertinente e scarta le ipotesi basate sul contenuto precedente.

Questo è un approccio API macOS pubblico. Gli header di Apple contrassegnano le funzioni corrispondenti come SPI privato per iOS, quindi la stessa sottoscrizione non è un'interfaccia pubblica per applicazioni iOS.

Articoli correlati