Exemple #1
0
def getpid():
    """Protect pid from being too large but keep it deterministically the same"""
    """This is the Workaround patching the original pycomm 1.0.8"""
    pid = os_getpid()
    while pid >= 65535:
        pid = int(pid / 2)
    return pid
Exemple #2
0
    def run(self):

        # get pid and send to master
        pid = os_getpid()
        self.queue_w2m.put(pid)

        # begin working
        self.work()
Exemple #3
0
    def getGstreamerVer(self, arg=None):
        printDBG(
            "IPTVSetupImpl.getGstreamerVer >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [%s]"
            % os_getpid())
        self.setInfo(_("Detection of the gstreamer version."), None)

        def _verValidator(code, data):
            if 'libgstbase-' in data:
                return True, False
            elif 'GStreamer Core Library version ' in data:
                return True, False
            else:
                return False, True

        verCmdTab = []
        verCmdTab.append('cat /proc/%s/maps | grep libgst' % os_getpid())
        verCmdTab.append('gst-launch-1.0 --gst-version')
        verCmdTab.append('gst-launch --gst-version')
        self.workingObj = CCmdValidator(self.getGstreamerVerFinished,
                                        _verValidator, verCmdTab)
        self.workingObj.start()
Exemple #4
0
def pytest_configure(config):
    config.ctlogger = loggers.module_logger("conftest")
    if config.option.logdir is not None:
        # Set file name of pytest log.
        if config.option.resultlog is None:
            log_suffix = "-".join([
                config.option.markexpr.replace(" ", "_"),
                config.option.keyword.replace(" ", "_")
            ])
            self_pid = str(os_getpid())
            resultlog_name = ".".join(["pytest", log_suffix, self_pid, "log"])
            config.option.resultlog = os_path.join(
                os_path.expandvars(os_path.expanduser(config.option.logdir)),
                resultlog_name)
 def getGstreamerVer(self, arg=None):
     printDBG("IPTVSetupImpl.getGstreamerVer >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> [%s]" % os_getpid())
     self.setInfo(_("Detection of the gstreamer version."), None)
     def _verValidator(code, data):
         if 'libgstbase-' in data: 
             return True,False
         elif 'GStreamer Core Library version ' in data: 
             return True,False
         else: 
             return False,True
     verCmdTab = []
     verCmdTab.append('cat /proc/%s/maps | grep libgst' % os_getpid())
     verCmdTab.append('gst-launch-1.0 --gst-version')
     verCmdTab.append('gst-launch --gst-version')
     self.workingObj = CCmdValidator(self.getGstreamerVerFinished, _verValidator, verCmdTab)
     self.workingObj.start()
Exemple #6
0
    def check_revocation(self, netloc, port):
        """
        check if one of the chain certs is revoked
        :param netloc: target netloc
        :param port: target port
        :return:
        """
        if self.crlDistributionPoints is not None and self.pem_cert is not None:
            pid = os_getpid()
            temp_cert_path = os_path_join(SQLITE_TEMP_DIR,
                                          'temp_cert_{}.pem'.format(pid))
            try:
                temp_cert_file = open(
                    temp_cert_path, 'w')  # file containing cert in PEM format
            except OSError:
                return None
            else:
                temp_cert_file.write(self.pem_cert)
                temp_cert_file.close()

            for crl_url in self.crlDistributionPoints:  # for each crl given
                _split = urlsplit(crl_url)
                der_path = os_path_join(
                    SQLITE_TEMP_DIR,
                    '{}{}'.format(_split.netloc,
                                  _split.path.replace('/', self._url_sep)))
                pem_path = '{}_{}.pem'.format(der_path, pid)

                if not os_path_exists(
                        der_path
                ):  # create crl in DER format if does not exist
                    opener = build_opener(HTTPSHandler)
                    install_opener(opener)
                    try:
                        req = urlopen(url=crl_url)
                    except:
                        continue
                    data = req.read(10000000)
                    if data is None:
                        continue
                    try:
                        der_file = open(der_path, 'wb')
                    except OSError:
                        continue
                    else:
                        der_file.write(data)
                        der_file.close()

                try:  # PEM file which will contain crl + chain certs
                    pem_file = open(pem_path, 'w')
                except OSError:
                    continue
                else:
                    cmd = [
                        self.openssl_cmd, 'crl', '-inform', 'DER', '-in',
                        der_path, '-outform', 'PEM'
                    ]
                    # print(' '.join(cmd))      # debug
                    sp_call(cmd, stdout=pem_file, stderr=SP_DEVNULL)

                    with sp_Popen([self.echo_cmd],
                                  stdout=SP_PIPE,
                                  stderr=SP_DEVNULL) as proc_echo:
                        cmd = [
                            self.openssl_cmd, 's_client', '-connect',
                            '{}:{}'.format(netloc, port), '-showcerts'
                        ]
                        with sp_Popen(cmd,
                                      stdin=proc_echo.stdout,
                                      stdout=SP_PIPE,
                                      stderr=SP_DEVNULL) as proc_certs:
                            data = proc_certs.stdout.read()
                            ddata = data.decode('utf-8')
                            if ddata is not None:
                                reg = re_compile(
                                    '-+BEGIN CERTIFICATE-+[^-]+-+END CERTIFICATE-+\n'
                                )
                                for res in reg.finditer(ddata):
                                    pem_file.write(res.group(0))
                    pem_file.close()

                    # finally verify if cert is revoked
                    cmd = [
                        self.openssl_cmd, 'verify', '-crl_check', '-CAfile',
                        pem_path, temp_cert_path
                    ]
                    # print(' '.join(cmd))      # debug
                    with sp_Popen(cmd, stdout=SP_PIPE,
                                  stderr=SP_DEVNULL) as proc_verify:
                        data = proc_verify.stdout.read()
                        ddata = data.decode('utf-8')
                        if ddata is not None:
                            reg = re_compile('lookup:([^\n]+)')
                            for res in reg.finditer(ddata):
                                if 'revoked' in res.group(1):
                                    self.add_error(NameError(res.group(1)))
                    os_remove(pem_path)
            os_remove(temp_cert_path)
Exemple #7
0
            pass
        try:
            self.connection.close()
        except:
            pass
        try:
            connections_handler.pop(connections_handler.index(self))
        except:
            pass


threading.Thread(target=db_cleaner).start()
while True:
    try:
        connection, address = server_socket.accept()
    except KeyboardInterrupt:
        print("\nStopped listening. Bye!")
        os_kill(os_getpid(), SIGTERM)
    address = address[0]
    connection.settimeout(5.0)
    connections_ip = [
        connection_handler.ip for connection_handler in connections_handler
    ]
    if connections_ip.count(
            address) < 2:  # No more than 2 connections for 1 ip
        handler = ConnectionHandler(connection, address)
        connections_handler.append(handler)
        threading.Thread(target=handler.connection_handler).start()
    else:
        connection.close()