def init_all(): for x in list(ALL_ENCODERS) + ["none"]: if not envbool("XPRA_%s" % (x.upper()), True): continue fn = globals().get("init_%s" % x) try: e = fn() assert e ENCODERS[x] = e except (ImportError, AttributeError): logger = Logger("network", "protocol") logger.debug("no %s", x, exc_info=True)
def init_compressors(*names): for x in names: if not envbool("XPRA_%s" % (x.upper()), True): continue fn = globals().get("init_%s" % x) try: c = fn() assert c COMPRESSION[x] = c except (TypeError, ImportError, AttributeError): from xpra.log import Logger logger = Logger("network", "protocol") logger.debug("no %s", x, exc_info=True)
def init_all(): for x in list(ALL_COMPRESSORS) + ["none"]: if not envbool("XPRA_%s" % (x.upper()), True): continue fn = globals().get("init_%s" % x) try: c = fn() assert c COMPRESSION[x] = c except (ImportError, AttributeError): from xpra.log import Logger logger = Logger("network", "protocol") logger.debug("no %s", x, exc_info=True)
def init_encoders(*names): for x in names: if x not in ALL_ENCODERS: logger = Logger("network", "protocol") logger.warn("Warning: invalid encoder '%s'", x) continue if not envbool("XPRA_%s" % (x.upper()), True): continue fn = globals().get("init_%s" % x) try: e = fn() assert e ENCODERS[x] = e except (ImportError, AttributeError): logger = Logger("network", "protocol") logger.debug("no %s", x, exc_info=True)
def platform_release(release): if sys.platform.startswith("darwin"): SYSTEMVERSION_PLIST = "/System/Library/CoreServices/SystemVersion.plist" try: import plistlib load = getattr(plistlib, "load", None) if load: with open(SYSTEMVERSION_PLIST, "rb") as f: pl = load(f) #@UndefinedVariable else: pl = plistlib.readPlist( '/System/Library/CoreServices/SystemVersion.plist') return pl['ProductUserVisibleVersion'] except Exception as e: from xpra.log import Logger log = Logger("util") log.debug("platform_release(%s)", release, exc_info=True) log.warn("Warning: failed to get release information") log.warn(" from '%s':", SYSTEMVERSION_PLIST) log.warn(" %s", e) return release
def do_wrap_socket(tcp_socket, context, **kwargs): wrap_socket = context.wrap_socket assert tcp_socket from xpra.log import Logger ssllog = Logger("ssl") ssllog("do_wrap_socket(%s, %s)", tcp_socket, context) import ssl if WIN32: #on win32, setting the tcp socket to blocking doesn't work? #we still hit the following errors that we need to retry: from xpra.net import bytestreams bytestreams.CAN_RETRY_EXCEPTIONS = (ssl.SSLWantReadError, ssl.SSLWantWriteError) else: tcp_socket.setblocking(True) try: ssl_sock = wrap_socket(tcp_socket, **kwargs) except Exception as e: ssllog.debug("wrap_socket(%s, %s)", tcp_socket, kwargs, exc_info=True) SSLEOFError = getattr(ssl, "SSLEOFError", None) if SSLEOFError and isinstance(e, SSLEOFError): return None raise InitExit(EXIT_SSL_FAILURE, "Cannot wrap socket %s: %s" % (tcp_socket, e)) from None return ssl_sock
def start_dbus(dbus_launch): if not dbus_launch or dbus_launch.lower() in FALSE_OPTIONS: return 0, {} try: def preexec(): assert POSIX os.setsid() close_fds() proc = Popen(dbus_launch, stdin=PIPE, stdout=PIPE, shell=True, preexec_fn=preexec) out = proc.communicate()[0] assert proc.poll() == 0, "exit code is %s" % proc.poll() #parse and add to global env: dbus_env = {} for l in bytestostr(out).splitlines(): parts = l.split("=", 1) if len(parts) != 2: continue k, v = parts if v.startswith("'") and v.endswith("';"): v = v[1:-2] dbus_env[k] = v dbus_pid = int(dbus_env.get("DBUS_SESSION_BUS_PID", 0)) return dbus_pid, dbus_env except Exception as e: from xpra.log import Logger log = Logger("dbus") log.debug("start_dbus(%s)", dbus_launch, exc_info=True) error("dbus-launch failed to start using command '%s':\n" % dbus_launch) error(" %s\n" % e) return 0, {}
def debug(msg, *args, **kwargs): from xpra.log import Logger logger = Logger("network", "protocol") logger.debug(msg, *args, **kwargs)
def debug(*msg): """ delay import of logger to prevent cycles """ from xpra.log import Logger log = Logger("util") log.debug(*msg) return None