diff options
author | Jim Pryor <profjim@jimpryor.net> | 2009-08-11 14:05:10 +0200 |
---|---|---|
committer | James Rayner <james@archlinux.org> | 2009-08-15 04:28:29 +0200 |
commit | 9578dda45b86acf3bd25def5de8f1d51f2ec22b2 (patch) | |
tree | 214394f032dc086c0c63befc8e22fffc80d16403 /src-wireless/wireless-dbus | |
parent | c37f2081157b15be719ce8afb0e8e15afbf24253 (diff) | |
download | netctl-9578dda45b86acf3bd25def5de8f1d51f2ec22b2.tar.gz netctl-9578dda45b86acf3bd25def5de8f1d51f2ec22b2.tar.xz |
Add AP argument to profile, also let ESSID arguments be regexps
* AP= arguments in profiles take precedence over ESSID= arguments
* ESSID= arguments regexps instead of literals. To avoid screwing up
any currently working profiles, I restricted the interpretation as a
regexp to just the new wireless-dbus connection types.
* But a global change involved in implementing this is that the
connection up/down calls will be passed a literal ESSID (which of the
local networks matches the regexp) as an additional argument.
Signed-off-by: Jim Pryor <profjim@jimpryor.net>
Diffstat (limited to 'src-wireless/wireless-dbus')
-rw-r--r-- | src-wireless/wireless-dbus | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src-wireless/wireless-dbus b/src-wireless/wireless-dbus index d30eb21..838609d 100644 --- a/src-wireless/wireless-dbus +++ b/src-wireless/wireless-dbus @@ -61,7 +61,7 @@ def fail(msg=None, report_type="fail"): sys.exit(1) -def start(profile): +def start(profile, essid): # TODO: Add check if it's even a wireless interface # Interface up - probably redundant, should be 'ip' instead. #try: @@ -128,9 +128,11 @@ def start(profile): rnet = dbus.Interface(net_obj, WPAS_DBUS_NETWORKS_INTERFACE) iface.selectNetwork(rnet) + if not essid: + essid = profile["ESSID"] if profile['SECURITY'] == "wpa": - opts = dbus.Dictionary({"ssid": dbus.ByteArray(profile['ESSID']), + opts = dbus.Dictionary({"ssid": dbus.ByteArray(essid), "psk": dbus.String(profile['KEY'])}, signature="sv") report('debug', 'wireless_dbus', 'connect to network with security=wpa') @@ -145,7 +147,7 @@ def start(profile): for l in key: keydbus+=chr(l) - opts = dbus.Dictionary({"ssid": dbus.ByteArray(profile['ESSID']), + opts = dbus.Dictionary({"ssid": dbus.ByteArray(essid), "key_mgmt": dbus.String("NONE"), "wep_tx_keyidx": dbus.Int32(1), "wep_key0": dbus.ByteArray(keydbus)}, @@ -153,7 +155,7 @@ def start(profile): report('debug', 'wireless_dbus', 'connect to network with security=wep') rnet.set(opts) elif profile['SECURITY'] == "none": - opts = dbus.Dictionary({"ssid": dbus.ByteArray(profile['ESSID'])}, + opts = dbus.Dictionary({"ssid": dbus.ByteArray(essid)}, signature="sv") report('debug', 'wireless_dbus', 'connect to network with security=none') rnet.set(opts) @@ -201,9 +203,10 @@ if __name__ == "__main__": try: profile_name = sys.argv[2] profile = read_config("/etc/network.d/"+profile_name) - + + essid = sys.argv[3] if len(sys.argv)>3 else "" # JP: pass literal ESSID as an argument, so that we can have entry in profile be a regexp if sys.argv[1] == "up": - start(profile) + start(profile, essid) elif sys.argv[1] == "down": stop(profile) |