now declining more wrong ipv6 addresses and cleaning up code
This commit is contained in:
parent
4ce5d99b24
commit
484a22f111
@ -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
|
||||
|
||||
|
@ -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"),
|
||||
|
Loading…
Reference in New Issue
Block a user