summaryrefslogtreecommitdiffstats
path: root/abs/core-testing/LinHES-config/mv_network.py
diff options
context:
space:
mode:
authorJames Meyer <james.meyer@operamail.com>2009-06-14 17:21:08 (GMT)
committerJames Meyer <james.meyer@operamail.com>2009-06-14 17:21:08 (GMT)
commit55162685e6bc46ba6ab048a1b69cffbab82a4354 (patch)
tree445105b71da24f36948a2d40534d9b2b3d0cc47e /abs/core-testing/LinHES-config/mv_network.py
parent1f1a531059fcee08f76660abd29a140de8b2b144 (diff)
downloadlinhes_pkgbuild-55162685e6bc46ba6ab048a1b69cffbab82a4354.zip
linhes_pkgbuild-55162685e6bc46ba6ab048a1b69cffbab82a4354.tar.gz
linhes_pkgbuild-55162685e6bc46ba6ab048a1b69cffbab82a4354.tar.bz2
linhes-config: add support for WPA/WEP/NONE using wpa_supplicant.
Currently it only works when using dhcp, but this is an upstream problem with etcnet. new mythvantage
Diffstat (limited to 'abs/core-testing/LinHES-config/mv_network.py')
-rwxr-xr-xabs/core-testing/LinHES-config/mv_network.py103
1 files changed, 91 insertions, 12 deletions
diff --git a/abs/core-testing/LinHES-config/mv_network.py b/abs/core-testing/LinHES-config/mv_network.py
index ca29c7d..3978f95 100755
--- a/abs/core-testing/LinHES-config/mv_network.py
+++ b/abs/core-testing/LinHES-config/mv_network.py
@@ -82,6 +82,64 @@ def setup_hostname(systemconfig):
cmd = '''cat /tmp/hosts >> /etc/hosts '''
mv_common.runcmd(cmd)
+
+def write_wpafile(line,netdev):
+ logging.debug(" writing out wpa_supplicant.conf file")
+ logging.debug(line)
+ wpafile = etcnetdir+"/"+netdev+"/wpa_supplicant.conf"
+ try:
+ f = open(wpafile,'w')
+ f.write(line)
+ f.close()
+ except:
+ logging.debug(" Couldn't write to %s",wpafile)
+
+def setup_wpa(netinfo,netdev):
+ logging.info(" %s will use wpa for encryption",netdev)
+ line = '''
+#This file was automaticly generated, any changes may be lost
+ctrl_interface=/var/run/wpa_supplicant
+network={
+ ssid="%s"
+ # Preshared key as an ASCII passphrase
+ psk="%s"
+ scan_ssid=1
+ key_mgmt=WPA-EAP WPA-PSK NONE
+ pairwise=CCMP TKIP
+ proto=WPA RSN
+}''' %(netinfo["ESSID"],netinfo["KEY"])
+ write_wpafile(line,netdev)
+
+def setup_wep(netinfo,netdev):
+ logging.info(" %s will use wep for encryption",netdev)
+ logging.debug(" When a packet comes along, you must wep it")
+ line='''
+#This file was automaticly generated, any changes may be lost
+ctrl_interface=/var/run/wpa_supplicant
+network={
+ ssid="%s"
+ key_mgmt=NONE
+ wep_key0=%s
+ wep_tx_keyidx=0
+ scan_ssid=1
+ auth_alg=SHARED
+}
+''' %(netinfo["ESSID"],netinfo["KEY"])
+ write_wpafile(line,netdev)
+
+
+def setup_none(netinfo,netdev):
+ logging.info(" %s will not use encryption",netdev)
+ line = '''
+#This file was automaticly generated, any changes may be lost
+ctrl_interface=/var/run/wpa_supplicant
+network={
+ ssid="%s"
+ key_mgmt=NONE
+}
+''' %netinfo["ESSID"]
+ write_wpafile(line,netdev)
+
def setup_interface(netdev,systemconfig):
logging.debug(" _Start of setup_interface for %s",netdev)
nettrans = {'Hostip':'ip',
@@ -93,7 +151,7 @@ def setup_interface(netdev,systemconfig):
'HostMTU':'mtu',
'HOST_iswireless':"wireless",
'HostESSID':'ESSID',
- 'HostKey':'key',
+ 'HostKey':'KEY',
'HostUseEncryption':'ENCRYPT'}
netinfo = {}
#populate the netinfo dict
@@ -120,20 +178,26 @@ def setup_interface(netdev,systemconfig):
change_iface_state(netdev,"disabled")
if netinfo["wireless"] == "1" :
+
logging.info(" Enabling wireless extensions")
cmd = ''' sed -i -e 's/^CONFIG_WIRELESS=.*$/CONFIG_WIRLESS=yes/g' %s/%s/options''' %(etcnetdir,netdev)
mv_common.runcmd(cmd)
- #set the key and essid
- cmd = ''' echo "essid %s" > %s/%s/iwconfig ''' %(netinfo["ESSID"], etcnetdir, netdev)
- mv_common.runcmd(cmd)
- if netinfo["ENCRYPT"] == "1":
- logging.info(" Enabling encryption")
- cmd = '''echo "key %s" >> %s/%s/iwconfig ''' %(netinfo["KEY"], etcnetdir, netdev)
- mv_common.runcmd(cmd)
+ if netinfo["ENCRYPT"] == "WEP":
+ setup_wep(netinfo,netdev)
+ elif netinfo["ENCRYPT"] == "WPA":
+ setup_wpa(netinfo,netdev)
+ elif netinfo["ENCRYPT"] == "none":
+ setup_none(netinfo,netdev)
+
else:
logging.info(" Disabling wireless extensions")
cmd = '''sed -i -e 's/^CONFIG_WIRLESS=.*$/CONFIG_WIRLESS=no/g' %s/%s/options''' %(etcnetdir, netdev)
mv_common.runcmd(cmd)
+ try:
+ wpafile=etcnetdir+"/"+netdev+"/wpa_supplicant.conf"
+ os.remove(wpafile)
+ except:
+ logging.debug(" Couldn't remove %s",wpafile)
if netinfo["UseDHCP"] == "0" :
logging.info(" Enabling DHCP support")
@@ -179,8 +243,16 @@ def change_iface_state(netdev, state):
cmd = "ip address flush %s" %netdev
mv_common.runcmd(cmd)
+def devcheck(netdev):
+ cmd = ''' /sbin/ifconfig %s''' %netdev
+ rc = mv_common.runcmd(cmd)
+ if rc == 0 :
+ return True
+ else:
+ return False
+
def find_active(systemconfig):
- interfacelist=('eth0', 'eth1', 'wlan0', 'wlan1')
+ interfacelist=('eth0', 'eth1', 'wlan0', 'wlan1', 'ath0')
logging.debug(" _Start of find_active")
if systemconfig["mythdhcp"] == "1":
@@ -199,9 +271,15 @@ def find_active(systemconfig):
systemconfig[currentnet]
except:
logging.debug(" %s is not defined",currentnet)
+ change_iface_state(netdev, "disabled")
continue
if systemconfig[currentnet] == "1" :
- setup_interface(netdev,systemconfig)
+ #check if device is present
+ if devcheck(netdev) :
+ setup_interface(netdev,systemconfig)
+ else:
+ logging.debug(" Interface %s not found in config", netdev)
+ #change_iface_state(netdev, "disabled")
else:
change_iface_state(netdev, "disabled")
@@ -232,7 +310,7 @@ def start_network():
logging.info(" Restarting network")
cmd ="/etc/net/scripts/network.init reload"
mv_common.runcmd(cmd)
- cmd ="/etc/net/scripts/network.init reload"
+ cmd ="/etc/net/scripts/network.init restart"
mv_common.runcmd(cmd)
else:
logging.info(" Will not restart network due to netboot/vnc")
@@ -244,7 +322,7 @@ def stop_network():
cmd ="/etc/net/scripts/network.init stop"
mv_common.runcmd(cmd)
kill_dhcp("")
- interfacelist=('eth0', 'eth1', 'wlan0', 'wlan1')
+ interfacelist=('eth0', 'eth1', 'wlan0', 'wlan1', 'ath0')
for i in interfacelist:
flush(i)
else:
@@ -258,6 +336,7 @@ def setup_network (systemconfig):
logging.info(" Setting up the network")
setup_hostname(systemconfig)
find_active(systemconfig)
+ start_network()
logging.info("__End of network\n")