Một transport chỉ dùng ảnh chụp proxy lúc khởi động có thể bị lỗi thời sau khi mạng hoặc vị trí thay đổi. Với đăng ký macOS SystemConfiguration, hãy giữ vòng đời này rõ ràng:

  1. Tạo một phiên SCDynamicStore với callback.
  2. Đăng ký các khóa hoặc mẫu chính xác bằng SCDynamicStoreSetNotificationKeys. Đây là các mảng riêng biệt. Khóa proxy toàn cục là State:/Network/Global/Proxies; chỉ thêm đầu vào dành riêng cho dịch vụ ở nơi transport sử dụng chúng.
  3. Sắp xếp việc gửi callback qua SCDynamicStoreSetDispatchQueue hoặc nguồn run-loop phù hợp. Chỉ đăng ký tên không chạy callback.
  4. Khi có thông báo, đọc lại cấu hình hiệu lực và cập nhật công việc tiếp theo. Danh sách khóa thay đổi tự nó không phải là chính sách mới đầy đủ.
  5. Khi tắt, vô hiệu hóa việc gửi bằng hàng đợi rỗng trước khi giải phóng tài nguyên sở hữu. Giữ kho và ngữ cảnh callback sống cho đến lúc đó.

Tiêu đề của Apple định nghĩa danh sách khóa thay đổi rỗng là một lần khởi động lại máy chủ kho động. Trong trường hợp đó cũng vậy, hãy làm mới trạng thái liên quan và bỏ các giả định dựa trên nội dung trước đó.

Đây là cách tiếp cận API macOS công khai. Tiêu đề của Apple đánh dấu các hàm tương ứng là SPI riêng cho iOS, vì vậy cùng một đăng ký không phải là giao diện ứng dụng iOS công khai.

Bài viết liên quan