S'abonner aux changements de configuration du proxy macOS
Surveillez les clés pertinentes du magasin dynamique SystemConfiguration et actualisez la politique de proxy d'un transport personnalisé lorsque macOS signale des changements.
Un transport qui utilise un instantané du proxy uniquement au démarrage peut rester obsolète après un changement de réseau ou de lieu. Pour un abonnement macOS SystemConfiguration, gardez ce cycle de vie explicite :
- Créez une session SCDynamicStore avec une fonction de rappel.
- Enregistrez des clés ou des motifs exacts avec
SCDynamicStoreSetNotificationKeys. Ce sont des tableaux distincts. La clé globale du proxy estState:/Network/Global/Proxies; n'ajoutez des entrées propres à un service que là où le transport les consomme. - Organisez la livraison du rappel via
SCDynamicStoreSetDispatchQueueou la source run-loop appropriée. Enregistrer seulement des noms n'exécute pas le rappel. - À la notification, relisez la configuration effective et mettez à jour le travail suivant. La liste des clés modifiées n'est pas à elle seule la nouvelle politique complète.
- À l'arrêt, désactivez la livraison avec une file nulle avant de libérer les ressources possédées. Gardez le magasin et le contexte de rappel vivants jusque-là.
L'en-tête d'Apple définit une liste vide de clés modifiées comme un redémarrage du serveur du magasin dynamique. Dans ce cas aussi, actualisez l'état pertinent et écartez les hypothèses fondées sur le contenu précédent.
Il s'agit d'une approche d'API macOS publique. Les en-têtes d'Apple marquent les fonctions correspondantes comme SPI privé pour iOS, donc le même abonnement n'est pas une interface publique d'application iOS.