Browse Source

Store detected external ips to separate variable

shortcutme 5 years ago
parent
commit
f706f7508e

+ 1 - 1
plugins/AnnounceShare/AnnounceSharePlugin.py

@@ -173,7 +173,7 @@ class FileServerPlugin(object):
     def portCheck(self, *args, **kwargs):
         res = super(FileServerPlugin, self).portCheck(*args, **kwargs)
         if res and not config.tor == "always" and "Bootstrapper" in PluginManager.plugin_manager.plugin_names:
-            for ip in config.ip_external:
+            for ip in self.ip_external_list:
                 my_tracker_address = "zero://%s:%s" % (ip, config.fileserver_port)
                 tracker_storage.onTrackerFound(my_tracker_address, my=True)
         return res

+ 1 - 1
plugins/Sidebar/SidebarPlugin.py

@@ -667,7 +667,7 @@ class UiWebsocketPlugin(object):
             peer_locations.append(peer_location)
 
         # Append myself
-        for ip in config.ip_external:
+        for ip in self.site.connection_server.ip_external_list:
             my_loc = self.getLoc(geodb, ip)
             if my_loc:
                 my_loc["ping"] = 0

+ 1 - 1
plugins/Stats/StatsPlugin.py

@@ -67,7 +67,7 @@ class UiRequestPlugin(object):
 
         # Memory
         yield "rev%s | " % config.rev
-        yield "%s | " % config.ip_external
+        yield "%s | " % main.file_server.ip_external_list
         yield "Port: %s | " % main.file_server.port
         yield "IP Network: %s | " % main.file_server.supported_ip_types
         yield "Opened: %s | " % main.file_server.port_opened

+ 2 - 2
plugins/Trayicon/TrayiconPlugin.py

@@ -83,8 +83,8 @@ class ActionsPlugin(object):
         webbrowser.open(url, new=0)
 
     def titleIp(self):
-        title = "!IP: %s " % config.ip_external
-        if self.main.file_server.port_opened:
+        title = "!IP: %s " % ", ".join(self.main.file_server.ip_external_list)
+        if any(self.main.file_server.port_opened):
             title += _["(active)"]
         else:
             title += _["(passive)"]

+ 5 - 3
src/File/FileServer.py

@@ -26,6 +26,7 @@ class FileServer(ConnectionServer):
         self.portchecker = PeerPortchecker.PeerPortchecker(self)
         self.log = logging.getLogger("FileServer")
         self.ip_type = ip_type
+        self.ip_external_list = []
 
         self.supported_ip_types = ["ipv4"]  # Outgoing ip_type support
         if helper.getIpType(ip) == "ipv6" or self.isIpv6Supported():
@@ -156,6 +157,7 @@ class FileServer(ConnectionServer):
                 "ipv4": "ipv4" in ip_external_types,
                 "ipv6": "ipv6" in ip_external_types
             }
+            self.ip_external_list = config.ip_external
             self.port_opened.update(res)
             self.log.info("Server port opened based on configuration ipv4: %s, ipv6: %s" % (res["ipv4"], res["ipv6"]))
             return res
@@ -182,10 +184,10 @@ class FileServer(ConnectionServer):
                 self.log.info("Invalid IPv6 address from port check: %s" % res_ipv6["ip"])
                 res_ipv6["opened"] = False
 
-        config.ip_external = []
+        self.ip_external_list = []
         for res_ip in [res_ipv4, res_ipv6]:
-            if res_ip["ip"] and res_ip["ip"] not in config.ip_external:
-                config.ip_external.append(res_ip["ip"])
+            if res_ip["ip"] and res_ip["ip"] not in self.ip_external_list:
+                self.ip_external_list.append(res_ip["ip"])
                 SiteManager.peer_blacklist.append((res_ip["ip"], self.port))
 
         self.log.info("Server port opened ipv4: %s, ipv6: %s" % (res_ipv4["opened"], res_ipv6["opened"]))