URI: 
       tinterface: fix connecting to raw IPv6 (as hostname) on Windows - electrum - Electrum Bitcoin wallet
  HTML git clone https://git.parazyd.org/electrum
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
       ---
   DIR commit a13344938f0f8308651612efc86921a0e9b97602
   DIR parent cee208313494ed5978e7a6c62c3b13c9583c6c93
  HTML Author: SomberNight <somber.night@protonmail.com>
       Date:   Wed, 27 Nov 2019 13:08:22 +0100
       
       interface: fix connecting to raw IPv6 (as hostname) on Windows
       
       Changed cert pinning filename as on Windows paths cannot contain a colon ':'.
       
       Diffstat:
         M electrum/interface.py               |      15 ++++++++++++++-
       
       1 file changed, 14 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/electrum/interface.py b/electrum/interface.py
       t@@ -55,6 +55,7 @@ from .logging import Logger
        
        if TYPE_CHECKING:
            from .network import Network
       +    from .simple_config import SimpleConfig
        
        
        ca_path = certifi.where()
       t@@ -206,6 +207,18 @@ def serialize_server(host: str, port: Union[str, int], protocol: str) -> str:
            return str(':'.join([host, str(port), protocol]))
        
        
       +def _get_cert_path_for_host(*, config: 'SimpleConfig', host: str) -> str:
       +    filename = host
       +    try:
       +        ip = ip_address(host)
       +    except ValueError:
       +        pass
       +    else:
       +        if isinstance(ip, IPv6Address):
       +            filename = f"ipv6_{ip.packed.hex()}"
       +    return os.path.join(config.path, 'certs', filename)
       +
       +
        class Interface(Logger):
        
            LOGGING_SHORTCUT = 'i'
       t@@ -218,7 +231,7 @@ class Interface(Logger):
                self.port = int(self.port)
                Logger.__init__(self)
                assert network.config.path
       -        self.cert_path = os.path.join(network.config.path, 'certs', self.host)
       +        self.cert_path = _get_cert_path_for_host(config=network.config, host=self.host)
                self.blockchain = None  # type: Optional[Blockchain]
                self._requested_chunks = set()
                self.network = network