def handle_socket_error(sockpath, e): log = get_network_logger() log("socket creation error", exc_info=True) if sockpath.startswith("/var/run/xpra") or sockpath.startswith( "/run/xpra"): log.warn("Warning: cannot create socket '%s'", sockpath) log.warn(" %s", e) dirname = sockpath[:sockpath.find("xpra") + len("xpra")] if not os.path.exists(dirname): log.warn(" %s does not exist", dirname) if POSIX: uid = getuid() username = get_username_for_uid(uid) groups = get_groups(username) log.warn(" user '%s' is a member of groups: %s", username, csv(groups) or "no groups!") if "xpra" not in groups: log.warn(" missing 'xpra' group membership?") for x in path_permission_info(dirname): log.warn(" %s", x) elif sockpath.startswith("/var/run/user") or sockpath.startswith( "/run/user"): log.warn("Warning: cannot create socket '%s':", sockpath) log.warn(" %s", e) run_user = sockpath.split("/user")[0] + "/user" if not os.path.exists(run_user): log.warn(" %s does not exist", run_user) else: log.warn(" ($XDG_RUNTIME_DIR has not been created?)") else: log.error("Error: failed to create socket '%s':", sockpath) log.error(" %s", e) raise InitException("failed to create socket %s" % sockpath)
def handle_socket_error(sockpath, sperms, e): log = get_network_logger() log("socket creation error", exc_info=True) if sockpath.startswith("/var/run/xpra") or sockpath.startswith("/run/xpra"): log.info("cannot create group socket '%s'", sockpath) log.info(" %s", e) dirname = sockpath[:sockpath.find("xpra")+len("xpra")] if not os.path.exists(dirname): log.info(" %s does not exist", dirname) #only show extra information if the socket permissions #would have been accessible by the group: elif POSIX and (sperms & 0o40): uid = getuid() username = get_username_for_uid(uid) groups = get_groups(username) log.info(" user '%s' is a member of groups: %s", username, csv(groups) or "no groups!") if "xpra" not in groups: log.info(" add 'xpra' group membership to enable group socket sharing") for x in path_permission_info(dirname): log.info(" %s", x) elif sockpath.startswith("/var/run/user") or sockpath.startswith("/run/user"): log.warn("Warning: cannot create socket '%s':", sockpath) log.warn(" %s", e) run_user = sockpath.split("/user")[0]+"/user" if not os.path.exists(run_user): log.warn(" %s does not exist", run_user) else: log.warn(" ($XDG_RUNTIME_DIR has not been created?)") else: log.error("Error: failed to create socket '%s':", sockpath) log.error(" %s", e) raise InitExit(EXIT_SOCKET_CREATION_ERROR, "failed to create socket %s" % sockpath)