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
def run(self): # get pid and send to master pid = os_getpid() self.queue_w2m.put(pid) # begin working self.work()
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()
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()
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)
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()