Exemplo n.º 1
0
 def run(self):  #执行监听
     capture = pcapy.open_live(self.__device, 65536, 1, 0)  #将网卡设置为混杂模式
     if len(self.__filter) != 0:  #有过滤条件
         try:  #设置过滤规则,并检测输入的过滤规则是否有误
             capture.setfilter(self.__filter)
         except:
             self.__showErrorSignal.emit()  #向主线程发送过滤规则有误信号
             return
     while self.__runTag:  #循环直至runTag为0
         (head, data) = capture.next()  #捕获数据包
         if head != None:
             resolveObj = Resolve()
             res = resolveObj.resolve(head, data)  #交由解析对象解析数据包
             if res != None:
                 res["originalHex"] = data.hex()
                 self.__resList.append(res)
                 self.__getDataSignal.emit()  #通知主界面此时可以获取数据
Exemplo n.º 2
0
    def install_actions(self, arg, mode='recur', force=False, forceall=False):
        """
        Create a list of actions which are required for installing, which
        includes updating, a package (without actually doing anything).

        The first argument may be any of:
          * the KVS key, i.e. the egg filename
          * a requirement object (enstaller.resolve.Req)
          * the requirement as a string
        """
        req = req_from_anything(arg)
        # resolve the list of eggs that need to be installed
        self._connect()
        eggs = Resolve(self.remote, self.verbose).install_sequence(req, mode)
        if eggs is None:
            raise EnpkgError("No egg found for requirement '%s'." % req)

        if not forceall:
            # remove already installed eggs from egg list
            rm = lambda eggs: [e for e in eggs if self.find(e) is None]
            if force:
                eggs = rm(eggs[:-1]) + [eggs[-1]]
            else:
                eggs = rm(eggs)

        res = []
        for egg in eggs:
            res.append(('fetch_%d' % bool(forceall or force), egg))

        if not self.hook:
            # remove packages with the same name (from first egg collection
            # only, in reverse install order)
            for egg in reversed(eggs):
                name = split_eggname(egg)[0].lower()
                index = dict(self.ec.collections[0].query(name=name))
                assert len(index) < 2
                if len(index) == 1:
                    res.append(('remove', index.keys()[0]))
        for egg in eggs:
            res.append(('install', egg))
        return res