Um transporte que usa um instantâneo de proxy apenas na inicialização pode ficar desatualizado após uma mudança de rede ou local. Para uma assinatura macOS SystemConfiguration, mantenha este ciclo de vida explícito:

  1. Crie uma sessão SCDynamicStore com um callback.
  2. Registre chaves ou padrões exatos com SCDynamicStoreSetNotificationKeys. São arrays separados. A chave global de proxy é State:/Network/Global/Proxies; adicione entradas específicas de serviço apenas onde o transporte as consome.
  3. Organize a entrega do callback por SCDynamicStoreSetDispatchQueue ou pela fonte de run-loop apropriada. Registrar apenas nomes não executa o callback.
  4. Na notificação, releia a configuração efetiva e atualize o trabalho seguinte. A lista de chaves alteradas não é, por si só, a nova política completa.
  5. No encerramento, desative a entrega com uma fila nula antes de liberar os recursos próprios. Mantenha o armazenamento e o contexto do callback vivos até então.

O cabeçalho da Apple define uma lista vazia de chaves alteradas como uma reinicialização do servidor do armazenamento dinâmico. Nesse caso também, atualize o estado relevante e descarte suposições baseadas no conteúdo anterior.

Esta é uma abordagem de API pública do macOS. Os cabeçalhos da Apple marcam as funções correspondentes como SPI privado para iOS, então a mesma assinatura não é uma interface pública de aplicativos iOS.

Artigos relacionados