|
|
@@ -63,12 +63,19 @@ class ToggleProxy(NSObject): |
|
|
|
return SCDynamicStoreCopyValue(self.store, 'State:/Network/Global/IPv4')['PrimaryInterface'] |
|
|
|
|
|
|
|
def loadNetworkServices(self): |
|
|
|
""" load list of network services """ |
|
|
|
""" Load and store a list of network services indexed by their BSDName """ |
|
|
|
self.services = {} |
|
|
|
for interface in SCNetworkInterfaceCopyAll(): |
|
|
|
device = SCNetworkInterfaceGetBSDName(interface) |
|
|
|
servicename = SCNetworkInterfaceGetLocalizedDisplayName(interface) |
|
|
|
self.services[device] = servicename |
|
|
|
# Create a dummy preference reference |
|
|
|
prefs = SCPreferencesCreate(kCFAllocatorDefault, 'PRG', None) |
|
|
|
# Fetch the list of services |
|
|
|
for service in SCNetworkServiceCopyAll(prefs): |
|
|
|
# This is what we're after, the user-defined service name e.g., "Built-in Ethernet" |
|
|
|
name = SCNetworkServiceGetName(service) |
|
|
|
# Interface reference |
|
|
|
interface = SCNetworkServiceGetInterface(service) |
|
|
|
# The BSDName of the interface, E.g., "en1", this will be the index of our list |
|
|
|
bsdname = SCNetworkInterfaceGetBSDName(interface) |
|
|
|
self.services[bsdname] = name |
|
|
|
|
|
|
|
def watchForProxyChanges(self): |
|
|
|
""" install a watcher for proxy changes """ |
|
|
|