def slotComar(self, sock): reply = self.comar.read_cmd() if reply[0] == self.comar.RESULT: if reply[1] == 1: if reply[2] == "": self.comar.call_package("Net.Link.deviceList", reply[3], id=5) else: for conn in reply[2].split("\n"): Connection(self.links, self.comar, conn, reply[3]) elif reply[1] == 2: name, dev, devname = reply[2].split("\n") conn = self.findConn(name) if conn: conn.device = dev conn.device_name = devname self.links.updateItem(conn) return elif reply[1] == 3: name, mode, rest = reply[2].split("\n", 2) if "\n" in rest: addr, gate = rest.split("\n", 1) else: addr = rest conn = self.findConn(name) if conn: conn.address = addr self.links.updateItem(conn) return elif reply[1] == 4: name, state = reply[2].split("\n") conn = self.findConn(name) if conn: if state == "up": conn.online = state self.links.updateItem(conn) return elif reply[1] == 5: if reply[2] == '': return uid, dev = reply[2].split(" ", 1) name = self.uniqueName() self.comar.call_package("Net.Link.setConnection", reply[3], [ "name", name, "device", uid ]) elif reply[1] > 42: links.slotComar(reply) elif reply[0] == self.comar.NOTIFY: noti, script, data = reply[2].split("\n", 2) if noti == "Net.Link.stateChanged": name, state = data.split("\n", 1) conn = self.findConn(name) if conn: conn.online = state self.links.updateItem(conn) return elif noti == "Net.Link.connectionChanged": mode, name = data.split(" ", 1) if mode == "added": if not self.findConn(name): Connection(self.links, self.comar, name, script) elif mode == "deleted": conn = self.findConn(name) if conn: self.links.removeItem(self.links.index(conn)) elif noti == "Net.Link.deviceChanged": type, nettype, uid, info = data.split(" ", 3) if type != "new": return name = self.uniqueName() self.comar.call_package("Net.Link.setConnection", script, [ "name", name, "device", uid ])
def handleComar(self, reply): if reply.command == "result": if reply.id == 1: if reply[2] == "": self.comar.call_package("Net.Link.deviceList", reply[3], id=5) else: for name in reply[2].split("\n"): self.comar.call_package("Net.Link.connectionInfo", reply.script, [ "name", name ], id=2) elif reply.id == 2: self.view.add(reply.script, reply.data) elif reply.id == 3: name, mode, rest = reply.data.split("\n", 2) if "\n" in rest: addr, gate = rest.split("\n", 1) else: addr = rest conn = self.view.find(reply.script, name) if conn: if mode == "manual": conn.address = addr else: conn.address = None if addr != "": conn.got_address = addr conn.update() elif reply.id == 4: name, state = reply.data.split("\n") conn = self.view.find(reply.script, name) if conn: if state == "up": conn.active = True else: conn.active = False conn.updateState(state) elif reply.id == 5: return #FIXME if reply[2] == '' or reply[3] == "ppp": return devs = reply[2].split("\n") for dev in devs: uid, rest = dev.split(" ", 1) name = self.uniqueName() self.comar.call_package("Net.Link.setConnection", reply[3], [ "name", name, "device", uid ]) Connection(self.links, self.comar, name, reply[3]) elif reply.id == 42: links.slotComar(reply) elif reply.id > 42: self.stack.slotComar(reply) elif reply.command == "notify": if reply.notify == "Net.Link.stateChanged": name, state = reply.data.split("\n", 1) conn = self.view.find(reply.script, name) if conn: conn.updateState(state) elif reply.notify == "Net.Link.connectionChanged": mode, name = reply.data.split(" ", 1) if mode == "added": self.comar.call_package("Net.Link.connectionInfo", reply.script, [ "name", name ], id=2) elif mode == "deleted": self.view.remove(reply.script, name) elif mode == "gotaddress": name, addr = name.split("\n", 1) conn = self.view.find(reply.script, name) if conn: conn.got_address = addr conn.update() elif mode == "configured": type, name = name.split(" ", 1) if type == "device": self.comar.call_package("Net.Link.connectionInfo", reply.script, [ "name", name ], id=2) elif type == "address": self.comar.call_package("Net.Link.getAddress", reply.script, [ "name", name ], id=3) elif type == "state": self.comar.call_package("Net.Link.getState", reply.script, [ "name", name ], id=4) elif noti == "Net.Link.deviceChanged": # FIXME return type, rest = data.split(" ", 1) if type != "new": return nettype, uid, info = rest.split(" ", 2) name = self.uniqueName() self.comar.call_package("Net.Link.setConnection", script, [ "name", name, "device", uid ])
def handleComar(self, reply): if reply[0] == self.comar.RESULT: if reply[1] == 1: if reply[2] == "": self.comar.call_package("Net.Link.deviceList", reply[3], id=5) else: for conn in reply[2].split("\n"): Connection(self.links, self.comar, conn, reply[3]) self.links.sort(True) elif reply[1] == 2: name, dev, devname = reply[2].split("\n") conn = self.findConn(name) if conn: conn.device = dev conn.device_name = devname self.links.updateItem(conn) return elif reply[1] == 3: name, mode, rest = reply[2].split("\n", 2) if "\n" in rest: addr, gate = rest.split("\n", 1) else: addr = rest conn = self.findConn(name) if conn: conn.address = addr self.links.updateItem(conn) return elif reply[1] == 4: name, state = reply[2].split("\n") conn = self.findConn(name) if conn: conn.state = state if state == "up": conn.online = state self.links.updateItem(conn) return elif reply[1] == 5: if reply[2] == '' or reply[3] == "ppp": return devs = reply[2].split("\n") for dev in devs: uid, rest = reply[2].split(" ", 1) name = self.uniqueName() self.comar.call_package("Net.Link.setConnection", reply[3], [ "name", name, "device", uid ]) elif reply[1] == 42: links.slotComar(reply) elif reply[1] > 42: self.stack.slotComar(reply) elif reply[0] == self.comar.NOTIFY: noti, script, data = reply[2].split("\n", 2) if noti == "Net.Link.stateChanged": name, state = data.split("\n", 1) conn = self.findConn(name) if conn: conn.online = state self.links.updateItem(conn) return elif noti == "Net.Link.connectionChanged": mode, name = data.split(" ", 1) if mode == "added": if not self.findConn(name): Connection(self.links, self.comar, name, script) self.links.sort(True) elif mode == "deleted": conn = self.findConn(name) if conn: self.links.removeItem(self.links.index(conn)) elif mode == "configured": type, name = name.split(" ", 1) if type == "device": self.comar.call_package("Net.Link.connectionInfo", script, [ "name", name ], id=2) elif type == "address": self.comar.call_package("Net.Link.getAddress", script, [ "name", name ], id=3) elif type == "state": self.comar.call_package("Net.Link.getState", script, [ "name", name ], id=4) elif noti == "Net.Link.deviceChanged": type, rest = data.split(" ", 1) if type != "new": return nettype, uid, info = rest.split(" ", 2) name = self.uniqueName() self.comar.call_package("Net.Link.setConnection", script, [ "name", name, "device", uid ])