diff options
| author | Richard Walters <rwalters@digitalstirling.com> | 2018-07-04 19:58:54 -0700 | 
|---|---|---|
| committer | Richard Walters <rwalters@digitalstirling.com> | 2018-07-04 19:58:54 -0700 | 
| commit | a3e4a2f10afaccab17d9d74a6d4ee3f1265208fc (patch) | |
| tree | bf89bbd46f2c348fef98f38ee345b061ba2fa486 | |
| parent | af8ff1ec7bc115f714bc332263c379bf9d6c650e (diff) | |
Normalize IPv6 addresses when generating URI strings
| -rw-r--r-- | src/Uri.cpp | 2 | ||||
| -rw-r--r-- | test/src/UriTests.cpp | 3 | 
2 files changed, 4 insertions, 1 deletions
| diff --git a/src/Uri.cpp b/src/Uri.cpp index 3091b89..30c9671 100644 --- a/src/Uri.cpp +++ b/src/Uri.cpp @@ -1393,7 +1393,7 @@ namespace Uri {              }              if (!impl_->host.empty()) {                  if (ValidateIpv6Address(impl_->host)) { -                    buffer << '[' << impl_->host << ']'; +                    buffer << '[' << NormalizeCaseInsensitiveString(impl_->host) << ']';                  } else {                      buffer << EncodeElement(impl_->host, REG_NAME_NOT_PCT_ENCODED);                  } diff --git a/test/src/UriTests.cpp b/test/src/UriTests.cpp index 2e5f2d6..106aade 100644 --- a/test/src/UriTests.cpp +++ b/test/src/UriTests.cpp @@ -803,6 +803,9 @@ TEST(UriTests, GenerateString) {          {"http", "bob", "www.example.com", true,  8080, {"", "a c", "def"}, true,  "foobar", true,  "ch2", "http://bob@www.example.com:8080/a%20c/def?foobar#ch2"},          {"http", "bob", "www.example.com", true,  8080, {"", "abc", "def"}, true,  "foo ar", true,  "ch2", "http://bob@www.example.com:8080/abc/def?foo%20ar#ch2"},          {"http", "bob", "www.example.com", true,  8080, {"", "abc", "def"}, true,  "foobar", true,  "c 2", "http://bob@www.example.com:8080/abc/def?foobar#c%202"}, + +        // normalization of IPv6 address hex digits +        {"http", "bob", "fFfF::1", true,  8080, {"", "abc", "def"}, true,  "foobar", true,  "c 2", "http://bob@[ffff::1]:8080/abc/def?foobar#c%202"},      };      size_t index = 0;      for (const auto& testVector : testVectors) { | 
