summaryrefslogtreecommitdiffstats
path: root/src-wireless/wireless-dbus
diff options
context:
space:
mode:
authorJim Pryor <profjim@jimpryor.net>2009-08-11 14:05:10 +0200
committerJames Rayner <james@archlinux.org>2009-08-15 04:28:29 +0200
commit9578dda45b86acf3bd25def5de8f1d51f2ec22b2 (patch)
tree214394f032dc086c0c63befc8e22fffc80d16403 /src-wireless/wireless-dbus
parentc37f2081157b15be719ce8afb0e8e15afbf24253 (diff)
downloadnetctl-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-dbus15
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)