Support multiple external ips

This commit is contained in:
shortcutme 2019-01-24 15:20:08 +01:00
parent 0a03c30e8a
commit 37979b4f9c
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE
4 changed files with 12 additions and 9 deletions

View file

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

View file

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

View file

@ -243,7 +243,7 @@ class Config(object):
self.parser.add_argument('--disable_udp', help='Disable UDP connections', action='store_true') self.parser.add_argument('--disable_udp', help='Disable UDP connections', action='store_true')
self.parser.add_argument('--proxy', help='Socks proxy address', metavar='ip:port') self.parser.add_argument('--proxy', help='Socks proxy address', metavar='ip:port')
self.parser.add_argument('--bind', help='Bind outgoing sockets to this address', metavar='ip') self.parser.add_argument('--bind', help='Bind outgoing sockets to this address', metavar='ip')
self.parser.add_argument('--ip_external', help='Set reported external ip (tested on start if None)', metavar='ip') self.parser.add_argument('--ip_external', help='Set reported external ip (tested on start if None)', metavar='ip', nargs='*')
self.parser.add_argument('--trackers', help='Bootstraping torrent trackers', default=trackers, metavar='protocol://address', nargs='*') self.parser.add_argument('--trackers', help='Bootstraping torrent trackers', default=trackers, metavar='protocol://address', nargs='*')
self.parser.add_argument('--trackers_file', help='Load torrent trackers dynamically from a file', default=False, metavar='path') self.parser.add_argument('--trackers_file', help='Load torrent trackers dynamically from a file', default=False, metavar='path')
self.parser.add_argument('--trackers_proxy', help='Force use proxy to connect to trackers (disable, tor, ip:port)', default="disable") self.parser.add_argument('--trackers_proxy', help='Force use proxy to connect to trackers (disable, tor, ip:port)', default="disable")

View file

@ -63,8 +63,9 @@ class FileServer(ConnectionServer):
self.port_opened = {} self.port_opened = {}
if config.ip_external: # Ip external defined in arguments if config.ip_external: # Ip external defined in arguments
self.port_opened[helper.getIpType(config.ip_external)] = True for ip_external in config.ip_external:
SiteManager.peer_blacklist.append((config.ip_external, self.port)) # Add myself to peer blacklist self.port_opened[helper.getIpType(ip_external)] = True
SiteManager.peer_blacklist.append((ip_external, self.port)) # Add myself to peer blacklist
self.sites = {} self.sites = {}
self.last_request = time.time() self.last_request = time.time()