+ def ifconfigFinished(self, result, retval, iface):
+ data = { 'up': False, 'dhcp': False, 'preup' : False, 'postdown' : False }
+ ipRegexp = '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}'
+ ipLinePattern = re_compile('inet addr:' + ipRegexp)
+ netmaskLinePattern = re_compile('Mask:' + ipRegexp)
+ bcastLinePattern = re_compile('Bcast:' + ipRegexp)
+ ipPattern = re_compile(ipRegexp)
+ upPattern = re_compile('UP ')
+ macPattern = re_compile('[0-9]{2}\:[0-9]{2}\:[0-9]{2}\:[0-9]{2}\:[0-9]{2}\:[0-9]{2}')
+
+ for line in result.splitlines():
+ ip = self.regExpMatch(ipPattern, self.regExpMatch(ipLinePattern, line))
+ netmask = self.regExpMatch(ipPattern, self.regExpMatch(netmaskLinePattern, line))
+ bcast = self.regExpMatch(ipPattern, self.regExpMatch(bcastLinePattern, line))
+ up = self.regExpMatch(upPattern, line)
+ mac = self.regExpMatch(macPattern, line)
+ if ip is not None:
+ data['ip'] = self.convertIP(ip)
+ if netmask is not None:
+ data['netmask'] = self.convertIP(netmask)
+ if bcast is not None:
+ data['bcast'] = self.convertIP(bcast)
+ if up is not None:
+ data['up'] = True
+ if iface is not 'lo':
+ self.configuredInterfaces.append(iface)
+ if mac is not None:
+ data['mac'] = mac
+ if not data.has_key('ip'):
+ data['dhcp'] = True
+ data['ip'] = [0, 0, 0, 0]
+ data['netmask'] = [0, 0, 0, 0]
+ data['gateway'] = [0, 0, 0, 0]
+
+ cmd = "route -n | grep " + iface
+ self.Console.ePopen(cmd,self.routeFinished,[iface,data,ipPattern])
+
+ def routeFinished(self, result, retval, extra_args):
+ (iface, data, ipPattern) = extra_args
+
+ for line in result.splitlines():
+ print line[0:7]
+ if line[0:7] == "0.0.0.0":
+ gateway = self.regExpMatch(ipPattern, line[16:31])
+ if gateway is not None:
+ data['gateway'] = self.convertIP(gateway)
+ self.ifaces[iface] = data
+ if len(self.Console.appContainers) == 0:
+ self.loadNetworkConfig()
+