Index: remoting/tools/me2me_virtual_host.py |
diff --git a/remoting/tools/me2me_virtual_host.py b/remoting/tools/me2me_virtual_host.py |
index 19987b2576b477f97a97436d7695815e191fd49b..7a9567233d44245802e3b5921230297a557040cc 100755 |
--- a/remoting/tools/me2me_virtual_host.py |
+++ b/remoting/tools/me2me_virtual_host.py |
@@ -11,6 +11,7 @@ |
import atexit |
import getpass |
+import hashlib |
import json |
import logging |
import os |
@@ -29,6 +30,9 @@ import keygen |
REMOTING_COMMAND = "remoting_me2me_host" |
+# Command-line switch for passing the config path to remoting_me2me_host. |
+HOST_CONFIG_SWITCH_NAME = "host-config" |
+ |
SCRIPT_PATH = os.path.dirname(sys.argv[0]) |
if not SCRIPT_PATH: |
SCRIPT_PATH = os.getcwd() |
@@ -260,10 +264,11 @@ class Desktop: |
if not session_proc.pid: |
raise Exception("Could not start X session") |
- def launch_host(self): |
+ def launch_host(self, host): |
# Start remoting host |
- command = locate_executable(REMOTING_COMMAND) |
- self.host_proc = subprocess.Popen(command, env=self.child_env) |
+ args = [locate_executable(REMOTING_COMMAND), |
+ "--%s=%s" % (HOST_CONFIG_SWITCH_NAME, host.config_file)] |
+ self.host_proc = subprocess.Popen(args, env=self.child_env) |
if not self.host_proc.pid: |
raise Exception("Could not start remoting host") |
@@ -287,7 +292,8 @@ def main(): |
return 1 |
auth.save_config() |
- host = Host(os.path.join(CONFIG_DIR, "host.json")) |
+ host_hash = hashlib.md5(socket.gethostname()).hexdigest() |
+ host = Host(os.path.join(CONFIG_DIR, "host#%s.json" % host_hash)) |
if not host.load_config(): |
host.create_config(auth) |
@@ -298,7 +304,7 @@ def main(): |
desktop = Desktop() |
desktop.launch_x_server() |
desktop.launch_x_session() |
- desktop.launch_host() |
+ desktop.launch_host(host) |
while True: |
pid, status = os.wait() |
@@ -310,7 +316,7 @@ def main(): |
if pid == desktop.host_proc.pid: |
logging.info("Host process terminated, relaunching") |
- desktop.launch_host() |
+ desktop.launch_host(host) |
if __name__ == "__main__": |
logging.basicConfig(level=logging.DEBUG) |