# These functions are for parsing /etc/network/interface # files, they will be used inside torouter to visualize # and edit configuration import os, re from tui import config class interfaces: def __init__(self,filename): self.filename = filename try: self.fp = open(filename, "r") except: # this will happen on our first run or at reboot self.fp = open("/etc/tor/torrc", "r") self.wifi = {} self.eth1 = {} self.eth0 = {} def exclude_output(self, iexclude): iface = None output = "" self.fp = open(self.filename, "r") for line in self.fp.readlines(): if line.lstrip().startswith("iface"): iface = line.split(" ")[1] if iface == iexclude: continue else: output += line return output def parse_line(self, line, iface): name = line.split(" ")[0] values = " ".join(line.split(" ")[1:]).rstrip() if iface == config.network_interfaces[0]: if self.wifi.has_key(name): if type(self.wifi[name]) is list: self.wifi[name].append(values) else: self.wifi[name] = [self.wifi[name],values] else: self.wifi.update({name : values}) elif iface == config.network_interfaces[2]: if self.eth1.has_key(name): if type(self.eth1[name]) is list: self.eth1[name].append(values) else: self.eth1[name] = [self.eth1[name],values] else: self.eth1.update({name : values}) elif iface == config.network_interfaces[1]: if self.eth0.has_key(name): if type(self.eth0[name]) is list: self.eth0[name].append(values) else: self.eth0[name] = [self.eth0[name],values] else: self.eth0.update({name : values}) def parse(self): iface = None for line in self.fp.readlines(): line = line.lstrip() if line.startswith("#") or line == "": continue if line.startswith("iface"): iface = line.split(" ")[1] if iface: self.parse_line(line, iface) def html_output(self, data): output = "
%s | %s |
%s | %s |