-
- ifaces = {}
- currif = ""
- for i in interfaces:
- split = i.strip().split(' ')
- if (split[0] == "iface"):
- currif = split[1]
- ifaces[currif] = {}
- if (len(split) == 4 and split[3] == "dhcp"):
- ifaces[currif]["dhcp"] = "yes"
- else:
- ifaces[currif]["dhcp"] = "no"
- if (currif != ""):
- if (split[0] == "address"):
- ifaces[currif]["address"] = map(int, split[1].split('.'))
- if (split[0] == "netmask"):
- ifaces[currif]["netmask"] = map(int, split[1].split('.'))
- if (split[0] == "gateway"):
- ifaces[currif]["gateway"] = map(int, split[1].split('.'))
-
- # parse the resolv.conf-file
+ except:
+ print "[Network.py] interfaces - opening failed"
+
+ ifaces = {}
+ currif = ""
+ for i in interfaces:
+ split = i.strip().split(' ')
+ if (split[0] == "iface"):
+ currif = split[1]
+ ifaces[currif] = {}
+ if (len(split) == 4 and split[3] == "dhcp"):
+ ifaces[currif]["dhcp"] = True
+ else:
+ ifaces[currif]["dhcp"] = False
+ if (currif != ""):
+ if (split[0] == "address"):
+ ifaces[currif]["address"] = map(int, split[1].split('.'))
+ if self.ifaces[currif].has_key("ip"):
+ if self.ifaces[currif]["ip"] != ifaces[currif]["address"] and ifaces[currif]["dhcp"] == False:
+ self.ifaces[currif]["ip"] = map(int, split[1].split('.'))
+ if (split[0] == "netmask"):
+ ifaces[currif]["netmask"] = map(int, split[1].split('.'))
+ if self.ifaces[currif].has_key("netmask"):
+ if self.ifaces[currif]["netmask"] != ifaces[currif]["netmask"] and ifaces[currif]["dhcp"] == False:
+ self.ifaces[currif]["netmask"] = map(int, split[1].split('.'))
+ if (split[0] == "gateway"):
+ ifaces[currif]["gateway"] = map(int, split[1].split('.'))
+ if self.ifaces[currif].has_key("gateway"):
+ if self.ifaces[currif]["gateway"] != ifaces[currif]["gateway"] and ifaces[currif]["dhcp"] == False:
+ self.ifaces[currif]["gateway"] = map(int, split[1].split('.'))
+ if (split[0] == "pre-up"):
+ if self.ifaces[currif].has_key("preup"):
+ self.ifaces[currif]["preup"] = i
+ if (split[0] == "post-down"):
+ if self.ifaces[currif].has_key("postdown"):
+ self.ifaces[currif]["postdown"] = i
+
+ print "read interfaces:", ifaces
+ for ifacename, iface in ifaces.items():
+ if self.ifaces.has_key(ifacename):
+ self.ifaces[ifacename]["dhcp"] = iface["dhcp"]
+ print "self.ifaces after loading:", self.ifaces
+
+ def loadNameserverConfig(self):
+ ipRegexp = "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}"
+ nameserverPattern = re_compile("nameserver +" + ipRegexp)
+ ipPattern = re_compile(ipRegexp)
+
+ resolv = []
+ try: