On Friday, 23 de December de 2011 11.29.34, Thiago Macieira wrote: > https://qt.gitorious.org/~thiago-intel/qt/thiago-intels- > qtbase/commits/ipaddress-parser
This series of commits does the following: 24976c8 Add a function to parse IPv4 addresses in QtCore There are two kinds of IPv4 address parsers in the wild: inet_aton-style inet_pton-style The inet_aton is the oldest implementation, which allows IP addresses like 127.1 or 10.0.257. Those types of addresses are not usually considered valid and inet_pton will not accept them. The old implementation we had in qhostaddress.cpp was compliant with inet_pton. And we had a different implementation in qurl.cpp following the grammar set forth in RFC 3986. The new implementation I wrote is actually more lax and accepts IP addresses like inet_aton. The unit test will compare the results between the two to ensure we're following it. The reason I did so was because URL parsing very often deals with very broken URLs. The unit tests in WebKit in fact do attempt such broken addresses. 013a083 Add support for IPv6 parsing and reconstructing the address Unlike the IPv4 implementation, the IPv6 one is strict. It's in fact stricter than the previous one in QHostAddress because it doesn't accept a double-colon (::) where none is necessary. The following IP address was previously accepted but no longer is: 2222:2222:2222:2222::3333:3333:3333:3333 It parses v4-compat and v4-mapped addresses but requires strict IPv4 addresses (inet_pton style, not inet_aton style). It also reconstructs those mapped addresses properly, which the old QUrl didn't. c5c1650 Port QHostAddress to use the new IP utilities in QtCore Replace the old IP-address parsing in QHostAddress with the one in QtCore, which is way more efficient. I didn't benchmark by how much, but anyone doing a cursory comparison can tell. 63e0c52 Optimise QHostAddress a little Some extra work to make it faster, avoiding parsing of constant strings. Instead, simply use the known binary form. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center Intel Sweden AB - Registration Number: 556189-6027 Knarrarnäsgatan 15, 164 40 Kista, Stockholm, Sweden
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development