Bind file server to ipv6 interfaces according to fileserver_ip_type config value

This commit is contained in:
shortcutme 2019-01-20 03:15:21 +01:00
parent 1c5b5e3621
commit c7a468eb14
No known key found for this signature in database
GPG Key ID: 5B63BAE6CB9613AE
2 changed files with 12 additions and 4 deletions

View File

@ -18,8 +18,11 @@ class Config(object):
self.action = None
self.pending_changes = {}
self.need_restart = False
self.keys_api_change_allowed = set(["tor", "fileserver_port", "language", "tor_use_bridges", "trackers_proxy", "trackers", "trackers_file", "open_browser", "log_level"])
self.keys_restart_need = set(["tor", "fileserver_port"])
self.keys_api_change_allowed = set([
"tor", "fileserver_port", "language", "tor_use_bridges", "trackers_proxy", "trackers",
"trackers_file", "open_browser", "log_level", "fileserver_ip_type"
])
self.keys_restart_need = set(["tor", "fileserver_port", "fileserver_ip_type"])
self.start_dir = self.getStartDir()
self.config_file = "zeronet.conf"
@ -232,6 +235,7 @@ class Config(object):
self.parser.add_argument('--fileserver_ip', help='FileServer bind address', default="*", metavar='ip')
self.parser.add_argument('--fileserver_port', help='FileServer bind port (0: randomize)', default=0, type=int, metavar='port')
self.parser.add_argument('--fileserver_port_range', help='FileServer randomization range', default="10000-40000", metavar='port')
self.parser.add_argument('--fileserver_ip_type', help='FileServer ip type', default="ipv4", choices=["ipv4", "ipv6"])
self.parser.add_argument('--ip_local', help='My local ips', default=ip_local, type=int, metavar='ip', nargs='*')
self.parser.add_argument('--disable_udp', help='Disable UDP connections', action='store_true')

View File

@ -18,11 +18,15 @@ from Plugin import PluginManager
@PluginManager.acceptPlugins
class FileServer(ConnectionServer):
def __init__(self, ip=config.fileserver_ip, port=config.fileserver_port):
def __init__(self, ip=config.fileserver_ip, port=config.fileserver_port, ip_type=config.fileserver_ip_type):
self.site_manager = SiteManager.site_manager
self.portchecker = PeerPortchecker.PeerPortchecker(self)
self.log = logging.getLogger("FileServer")
ip = ip.replace("*", "0.0.0.0")
self.ip_type = ip_type
if ip_type == "ipv6":
ip = ip.replace("*", "::")
else:
ip = ip.replace("*", "0.0.0.0")
if config.tor == "always":
port = config.tor_hs_port