示例#1
0
文件: mainwin.py 项目: Tayyib/uludag
    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 ])
示例#2
0
文件: mainwin.py 项目: Tayyib/uludag
 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 ])
示例#3
0
文件: mainwin.py 项目: Tayyib/uludag
    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 ])