now declining more wrong ipv6 addresses and cleaning up code

This commit is contained in:
Jesko 2018-08-08 17:53:14 +02:00
parent 4ce5d99b24
commit 484a22f111
2 changed files with 8 additions and 4 deletions

View File

@ -29,9 +29,10 @@ import ipaddress
import fnmatch
import urllib.parse
from qutebrowser.utils import utils, qtutils
from PyQt5.QtCore import QUrl
from qutebrowser.utils import utils, qtutils
class ParseError(Exception):
@ -178,10 +179,12 @@ class UrlPattern:
assert self._host is None
return
if not utils.raises(ValueError, ipaddress.IPv6Address, parsed.netloc[1:-1]):
if parsed.netloc.startswith('['):
# Using QUrl parsing to minimize ipv6 addresses
url = QUrl()
url.setHost(parsed.hostname)
url.setHost("[" + parsed.hostname + "]")
if url.host() == "":
raise ParseError("Invalid IPv6 URL"+parsed.hostname)
self._host = url.host()
return

View File

@ -84,7 +84,8 @@ from qutebrowser.utils import urlmatch
# Additional tests
("http://[", "Invalid IPv6 URL"),
("http://[fc2e::bb88::edac]:", "Invalid port: Port is empty"),
("http://[fc2e:bb88::edac]:", "Invalid port: Port is empty"),
("http://[fc2e::bb88::edac]", "Invalid IPv6 URL"),
("http://[fc2e:0e35:bb88::edac:fc2e:0e35:bb88:edac]", "Invalid IPv6 URL"),
("http://[fc2e:0e35:bb88:af:edac:fc2e:0e35:bb88:edac]", "Invalid IPv6 URL"),
("http://[127.0.0.1:fc2e::bb88:edac]", "Invalid IPv6 URL"),