def defaults_init(self): self.exit_code = None self.compression_level = 0 self.display = None self.username = None self.password_file = None self.password_sent = False self.encryption = None self.encryption_keyfile = None self.quality = -1 self.min_quality = 0 self.speed = 0 self.min_speed = -1 #protocol stuff: self._protocol = None self._priority_packets = [] self._ordinary_packets = [] self._mouse_position = None self._aliases = {} self._reverse_aliases = {} #server state and caps: self.server_capabilities = None self._remote_machine_id = None self._remote_uuid = None self._remote_version = None self._remote_revision = None self._remote_platform = None self._remote_platform_release = None self._remote_platform_platform = None self._remote_platform_linux_distribution = None self.uuid = get_user_uuid() self.init_packet_handlers()
def audio_loop_check(self, mode="speaker"): from xpra.sound.gstreamer_util import ALLOW_SOUND_LOOP, loop_warning_messages if ALLOW_SOUND_LOOP: return True if self._remote_machine_id: if self._remote_machine_id != get_machine_id(): #not the same machine, so OK return True if self._remote_uuid != get_user_uuid(): #different user, assume different pulseaudio server return True #check pulseaudio id if we have it pulseaudio_id = self.sound_properties.get("pulseaudio", {}).get("id") if not pulseaudio_id or not self.server_pulseaudio_id: #not available, assume no pulseaudio so no loop? return True if self.server_pulseaudio_id != pulseaudio_id: #different pulseaudio server return True msgs = loop_warning_messages(mode) summary = msgs[0] body = "\n".join(msgs[1:]) self.may_notify_audio(summary, body) log.warn("Warning: %s", summary) for x in msgs[1:]: log.warn(" %s", x) return False
def __init__(self): StubClientMixin.__init__(self) self.uuid = get_user_uuid() self.server_start_time = -1 #setting: self.pings = False #bandwidth self.server_bandwidth_limit_change = False self.server_bandwidth_limit = 0 self.server_session_name = None #info requests self.server_last_info = None self.info_request_pending = False #network state: self.server_ping_latency = deque(maxlen=1000) self.server_load = None self.client_ping_latency = deque(maxlen=1000) self._server_ok = True self.last_ping_echoed_time = 0 self.ping_timer = None self.ping_echo_timers = {} self.ping_echo_timeout_timer = None
def __init__(self): self.exit_code = None self.compression_level = 0 self.display = None self.username = None self.password_file = None self.password_sent = False self.encryption = None self.encryption_keyfile = None self.quality = -1 self.min_quality = 0 self.speed = 0 self.min_speed = -1 #protocol stuff: self._protocol = None self._priority_packets = [] self._ordinary_packets = [] self._mouse_position = None self._aliases = {} self._reverse_aliases = {} #server state and caps: self.server_capabilities = None self._remote_machine_id = None self._remote_uuid = None self._remote_version = None self._remote_revision = None self._remote_platform = None self._remote_platform_release = None self._remote_platform_platform = None self._remote_platform_linux_distribution = None self.uuid = get_user_uuid() self.init_packet_handlers()
def defaults_init(self): #skip warning when running the client from xpra import child_reaper child_reaper.POLL_WARNING = False getChildReaper() log("XpraClientBase.defaults_init() os.environ:") for k,v in os.environ.items(): log(" %s=%s", k, nonl(v)) #client state: self.exit_code = None self.exit_on_signal = False self.display_desc = {} #connection attributes: self.hello_extra = {} self.compression_level = 0 self.display = None self.username = None self.password = None self.password_file = None self.password_sent = False self.bandwidth_limit = 0 self.encryption = None self.encryption_keyfile = None self.server_padding_options = [DEFAULT_PADDING] self.quality = -1 self.min_quality = 0 self.speed = 0 self.min_speed = -1 self.printer_attributes = [] self.send_printers_timer = None self.exported_printers = None self.can_shutdown_server = True #protocol stuff: self._protocol = None self._priority_packets = [] self._ordinary_packets = [] self._mouse_position = None self._aliases = {} self._reverse_aliases = {} #server state and caps: self.server_capabilities = None self.completed_startup = False self._remote_machine_id = None self._remote_uuid = None self._remote_version = None self._remote_revision = None self._remote_platform = None self._remote_platform_release = None self._remote_platform_platform = None self._remote_platform_linux_distribution = None self.uuid = get_user_uuid() self.init_packet_handlers() sanity_checks()
def defaults_init(self): # skip warning when running the client from xpra import child_reaper child_reaper.POLL_WARNING = False getChildReaper() log("XpraClientBase.defaults_init() os.environ:") for k, v in os.environ.items(): log(" %s=%s", k, nonl(v)) # client state: self.exit_code = None self.exit_on_signal = False self.display_desc = {} # connection attributes: self.hello_extra = {} self.compression_level = 0 self.display = None self.username = None self.password = None self.password_file = None self.password_sent = False self.encryption = None self.encryption_keyfile = None self.server_padding_options = [DEFAULT_PADDING] self.quality = -1 self.min_quality = 0 self.speed = 0 self.min_speed = -1 self.printer_attributes = [] self.send_printers_timer = None self.exported_printers = None # protocol stuff: self._protocol = None self._priority_packets = [] self._ordinary_packets = [] self._mouse_position = None self._aliases = {} self._reverse_aliases = {} # server state and caps: self.server_capabilities = None self._remote_machine_id = None self._remote_uuid = None self._remote_version = None self._remote_revision = None self._remote_platform = None self._remote_platform_release = None self._remote_platform_platform = None self._remote_platform_linux_distribution = None self.uuid = get_user_uuid() self.init_packet_handlers() sanity_checks()
def defaults_init(self): #skip warning when running the client from xpra import child_reaper child_reaper.POLL_WARNING = False getChildReaper() log("XpraClientBase.defaults_init() os.environ:") for k,v in os.environ.items(): log(" %s=%r", k, v) #client state: self.exit_code = None self.exit_on_signal = False self.display_desc = {} self.progress_process = None self.progress_timer = None #connection attributes: self.hello_extra = {} self.compression_level = 0 self.display = None self.challenge_handlers = [] self.username = None self.password = None self.password_file = () self.password_index = 0 self.password_sent = False self.encryption = None self.encryption_keyfile = None self.server_padding_options = [DEFAULT_PADDING] self.server_client_shutdown = True self.server_compressors = [] #protocol stuff: self._protocol = None self._priority_packets = [] self._ordinary_packets = [] self._mouse_position = None self._mouse_position_pending = None self._mouse_position_send_time = 0 self._mouse_position_delay = MOUSE_DELAY self._mouse_position_timer = 0 self._aliases = {} #server state and caps: self.connection_established = False self.completed_startup = False self.uuid = get_user_uuid() self.session_id = uuid.uuid4().hex self.init_packet_handlers() def noop(): """ until we hook up the real protocol instance, do nothing when have_more() is called """ self.have_more = noop
def audio_loop_check(self, mode="speaker") -> bool: log("audio_loop_check(%s)", mode) from xpra.sound.gstreamer_util import ALLOW_SOUND_LOOP, loop_warning_messages if ALLOW_SOUND_LOOP: return True machine_id = get_machine_id() uuid = get_user_uuid() #these attributes belong in a different mixin, #so we can't assume that they exist: client_machine_id = getattr(self, "machine_id", None) client_uuid = getattr(self, "uuid", None) log( "audio_loop_check(%s) machine_id=%s client machine_id=%s, uuid=%s, client uuid=%s", mode, machine_id, client_machine_id, uuid, client_uuid) if client_machine_id: if client_machine_id != machine_id: #not the same machine, so OK return True if client_uuid != uuid: #different user, assume different pulseaudio server return True #check pulseaudio id if we have it pulseaudio_id = self.sound_properties.get("pulseaudio", {}).get("id") pulseaudio_cookie_hash = self.sound_properties.get( "pulseaudio", {}).get("cookie-hash") log("audio_loop_check(%s) pulseaudio id=%s, client pulseaudio id=%s", mode, pulseaudio_id, self.pulseaudio_id) log( "audio_loop_check(%s) pulseaudio cookie hash=%s, client pulseaudio cookie hash=%s", mode, pulseaudio_cookie_hash, self.pulseaudio_cookie_hash) if pulseaudio_id and self.pulseaudio_id: if self.pulseaudio_id != pulseaudio_id: return True elif pulseaudio_cookie_hash and self.pulseaudio_cookie_hash: if self.pulseaudio_cookie_hash != pulseaudio_cookie_hash: return True else: #no cookie or id, so probably not a pulseaudio setup, #hope for the best: return True msgs = loop_warning_messages(mode) summary = msgs[0] body = "\n".join(msgs[1:]) nid = XPRA_AUDIO_NOTIFICATION_ID self.may_notify(nid, summary, body, icon_name=mode) log.warn("Warning: %s", summary) for x in msgs[1:]: log.warn(" %s", x) return False
def defaults_init(self): #skip warning when running the client from xpra import child_reaper child_reaper.POLL_WARNING = False getChildReaper() log("XpraClientBase.defaults_init() os.environ:") for k,v in os.environ.items(): log(" %s=%s", k, nonl(v)) #client state: self.exit_code = None self.exit_on_signal = False self.display_desc = {} #connection attributes: self.hello_extra = {} self.compression_level = 0 self.display = None self.challenge_handlers = OrderedDict() self.username = None self.password = None self.password_file = () self.password_index = 0 self.password_sent = False self.encryption = None self.encryption_keyfile = None self.server_padding_options = [DEFAULT_PADDING] self.server_client_shutdown = True self.server_compressors = [] #protocol stuff: self._protocol = None self._priority_packets = [] self._ordinary_packets = [] self._mouse_position = None self._mouse_position_pending = None self._mouse_position_send_time = 0 self._mouse_position_delay = MOUSE_DELAY self._mouse_position_timer = 0 self._aliases = {} self._reverse_aliases = {} #server state and caps: self.server_capabilities = None self.completed_startup = False self.uuid = get_user_uuid() self.init_packet_handlers() sanity_checks()
def defaults_init(self): getChildReaper() log("XpraClientBase.defaults_init() os.environ:") for k, v in os.environ.items(): log(" %s=%s", k, nonl(v)) #client state: self.exit_code = None self.exit_on_signal = False #connection attributes: self.compression_level = 0 self.display = None self.username = None self.password_file = None self.password_sent = False self.encryption = None self.encryption_keyfile = None self.server_padding_options = [DEFAULT_PADDING] self.quality = -1 self.min_quality = 0 self.speed = 0 self.min_speed = -1 self.printer_attributes = [] self.send_printers_pending = False self.exported_printers = None #protocol stuff: self._protocol = None self._priority_packets = [] self._ordinary_packets = [] self._mouse_position = None self._aliases = {} self._reverse_aliases = {} #server state and caps: self.server_capabilities = None self._remote_machine_id = None self._remote_uuid = None self._remote_version = None self._remote_revision = None self._remote_platform = None self._remote_platform_release = None self._remote_platform_platform = None self._remote_platform_linux_distribution = None self.uuid = get_user_uuid() self.init_packet_handlers() sanity_checks()
def defaults_init(self): self.exit_code = None self.compression_level = 0 self.display = None self.username = None self.password_file = None self.password_sent = False self.encryption = None self.encryption_keyfile = None self.quality = -1 self.min_quality = 0 self.speed = 0 self.min_speed = -1 self.file_transfer = False self.file_size_limit = 10 self.printing = False self.printer_attributes = [] self.send_printers_pending = False self.exported_printers = None self.open_files = False self.open_command = None #protocol stuff: self._protocol = None self._priority_packets = [] self._ordinary_packets = [] self._mouse_position = None self._aliases = {} self._reverse_aliases = {} #server state and caps: self.server_capabilities = None self._remote_machine_id = None self._remote_uuid = None self._remote_version = None self._remote_revision = None self._remote_platform = None self._remote_platform_release = None self._remote_platform_platform = None self._remote_platform_linux_distribution = None self.uuid = get_user_uuid() self.init_packet_handlers() sanity_checks()
def make_hello(self): now = time.time() capabilities = get_network_caps() capabilities.update(get_server_info()) capabilities.update({ "start_time": int(self.start_time), "current_time": int(now), "elapsed_time": int(now - self.start_time), "server_type": "core", "info-request": True, "uuid": get_user_uuid(), }) mid = get_machine_id() if mid: capabilities["machine_id"] = mid if self.session_name: capabilities["session_name"] = self.session_name if self._reverse_aliases: capabilities["aliases"] = self._reverse_aliases add_version_info(capabilities) return capabilities
def make_hello(self): now = time.time() capabilities = get_network_caps() capabilities.update(get_server_info()) capabilities.update({ "start_time" : int(self.start_time), "current_time" : int(now), "elapsed_time" : int(now - self.start_time), "server_type" : "core", "info-request" : True, "uuid" : get_user_uuid(), }) mid = get_machine_id() if mid: capabilities["machine_id"] = mid if self.session_name: capabilities["session_name"] = self.session_name if self._reverse_aliases: capabilities["aliases"] = self._reverse_aliases add_version_info(capabilities) return capabilities
def make_hello(self, source): now = time.time() capabilities = get_network_caps() if source.wants_versions: capabilities.update(get_server_info()) capabilities.update({ "version" : xpra.__version__, "start_time" : int(self.start_time), "current_time" : int(now), "elapsed_time" : int(now - self.start_time), "server_type" : "core", }) if source.wants_features: capabilities["info-request"] = True if source.wants_versions: capabilities["uuid"] = get_user_uuid() mid = get_machine_id() if mid: capabilities["machine_id"] = mid if self.session_name: capabilities["session_name"] = self.session_name return capabilities
def make_hello(self, source): now = time.time() capabilities = get_network_caps() if source.wants_versions: capabilities.update(get_server_info()) capabilities.update({ "version": xpra.__version__, "start_time": int(self.start_time), "current_time": int(now), "elapsed_time": int(now - self.start_time), "server_type": "core", }) if source.wants_features: capabilities["info-request"] = True if source.wants_versions: capabilities["uuid"] = get_user_uuid() mid = get_machine_id() if mid: capabilities["machine_id"] = mid if self.session_name: capabilities["session_name"] = self.session_name return capabilities
def test_uuid(self): assert len(get_hex_uuid()) == 32 assert isinstance(get_int_uuid(), int) assert get_int_uuid() != 0 assert get_user_uuid() != 0