node.py: ensure that client and introducer nodes record their port number and use...
authordavid-sarah <david-sarah@jacaranda.org>
Sat, 6 Aug 2011 22:19:34 +0000 (15:19 -0700)
committerdavid-sarah <david-sarah@jacaranda.org>
Sat, 6 Aug 2011 22:19:34 +0000 (15:19 -0700)
src/allmydata/node.py

index 793729b51fe3dfa93bc5212a365344b571dce375..eefce3d6a9d98ae50ec35b715bff52eef3bd987f 100644 (file)
@@ -121,6 +121,18 @@ class Node(service.MultiService):
         self.config = ConfigParser.SafeConfigParser()
         self.config.read([os.path.join(self.basedir, "tahoe.cfg")])
 
+        cfg_tubport = self.get_config("node", "tub.port", "")
+        if not cfg_tubport:
+            # For 'tub.port', tahoe.cfg overrides the individual file on
+            # disk. So only read self._portnumfile if tahoe.cfg doesn't
+            # provide a value.
+            try:
+                file_tubport = fileutil.read(self._portnumfile).strip()
+                self.set_config("node", "tub.port", file_tubport)
+            except EnvironmentError:
+                if os.path.exists(self._portnumfile):
+                    raise
+
     def error_about_old_config_files(self):
         """ If any old configuration files are detected, raise OldConfigError. """