Example #1
0
 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()
Example #2
0
 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
Example #3
0
    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
Example #4
0
 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()
Example #5
0
 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()
Example #6
0
    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()
Example #7
0
 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
Example #8
0
 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
Example #9
0
 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()
Example #10
0
 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()
Example #11
0
 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()
Example #12
0
 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()
Example #13
0
 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
Example #14
0
 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
Example #15
0
 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
Example #16
0
 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
Example #17
0
 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