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

Attachment: 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

Reply via email to