def enter_secure_desktop(self): """function ran when entering a secure desktop.""" if self.control_connector is None: return if not os.path.exists(self.temp_location): os.makedirs(self.temp_location) channel = str(uuid.uuid4()) self.sd_server = server.Server(port=0, password=channel, bind_host='127.0.0.1') port = self.sd_server.server_socket.getsockname()[1] server_thread = threading.Thread(target=self.sd_server.run) server_thread.daemon = True server_thread.start() self.sd_relay = RelayTransport(address=('127.0.0.1', port), serializer=serializer.JSONSerializer(), channel=channel) self.sd_bridge = bridge.BridgeTransport(self.control_connector, self.sd_relay) relay_thread = threading.Thread(target=self.sd_relay.run) relay_thread.daemon = True relay_thread.start() data = [port, channel] with open(self.ipc_file, 'wb') as fp: json.dump(data, fp)
def enter_secure_desktop(self): """function ran when entering a secure desktop.""" if self.slave_transport is None: return if not os.path.exists(self.temp_location): os.makedirs(self.temp_location) channel = str(uuid.uuid4()) self.sd_server = server.Server(port=0, password=channel, bind_host='127.0.0.1') port = self.sd_server.server_socket.getsockname()[1] server_thread = threading.Thread(target=self.sd_server.run) server_thread.daemon = True server_thread.start() self.sd_relay = RelayTransport(address=('127.0.0.1', port), serializer=serializer.JSONSerializer(), channel=channel) self.sd_relay.callback_manager.register_callback( 'msg_client_joined', self.on_master_display_change) self.slave_transport.callback_manager.register_callback( 'msg_set_braille_info', self.on_master_display_change) self.sd_bridge = bridge.BridgeTransport(self.slave_transport, self.sd_relay) relay_thread = threading.Thread(target=self.sd_relay.run) relay_thread.daemon = True relay_thread.start() data = [port, channel] with open(self.ipc_file, 'wb') as fp: json.dump(data, fp)
def enter_secure_desktop(self): """function ran when entering a secure desktop. So far as I can tell, this function does a few things: * checks if any connections are active. If not, returns * If a temp directory doesn't exist, makes one, starts a local relay with a random (4 character?) id and writes that info to a file. I assume that this is somehow connecting back to the client running in a non-secure environment """ if self.control_connector is None: # No connections are open return if not os.path.exists(self.temp_location): os.makedirs(self.temp_location) channel = str(uuid.uuid4()) self.sd_server = server.Server(port=0, password=channel, bind_host='127.0.0.1') port = self.sd_server.server_socket.getsockname()[1] server_thread = threading.Thread(target=self.sd_server.run) server_thread.daemon = True server_thread.start() self.sd_relay = RelayTransport(address=('127.0.0.1', port), serializer=serializer.JSONSerializer(), channel=channel) self.sd_bridge = bridge.BridgeTransport(self.control_connector, self.sd_relay) relay_thread = threading.Thread(target=self.sd_relay.run) relay_thread.daemon = True relay_thread.start() data = [port, channel] with open(self.ipc_file, 'wb') as fp: json.dump(data, fp)