summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhsoting.net>2015-11-01 18:59:02 +0100
committerJörg Frings-Fürst <debian@jff-webhsoting.net>2015-11-01 18:59:02 +0100
commitbb0fbadacbd603b1e8d258f75ff5ca8ee481feb4 (patch)
tree44969a203592f9fe55d8db7ecb20f3747002d6a7 /src
parentd4ba486cc6aacbbed2be1e71ea77410052a22ac1 (diff)
Imported Upstream version 0.8.4upstream/0.8.4
Diffstat (limited to 'src')
-rw-r--r--src/UriParse.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/UriParse.c b/src/UriParse.c
index 59a398b..e3cdc68 100644
--- a/src/UriParse.c
+++ b/src/UriParse.c
@@ -709,8 +709,20 @@ static const URI_CHAR * URI_FUNC(ParseIPv6address2)(URI_TYPE(ParserState) * stat
{
int setZipper = 0;
+ if (digitCount > 0) {
+ if (zipperEver) {
+ uriWriteQuadToDoubleByte(digitHistory, digitCount, quadsAfterZipper + 2 * quadsAfterZipperCount);
+ quadsAfterZipperCount++;
+ } else {
+ uriWriteQuadToDoubleByte(digitHistory, digitCount, state->uri->hostData.ip6->data + 2 * quadsDone);
+ }
+ quadsDone++;
+ digitCount = 0;
+ }
+ letterAmong = 0;
+
/* Too many quads? */
- if (quadsDone > 8 - zipperEver) {
+ if (quadsDone >= 8 - zipperEver) {
URI_FUNC(StopSyntax)(state, first);
return NULL;
}
@@ -743,17 +755,6 @@ static const URI_CHAR * URI_FUNC(ParseIPv6address2)(URI_TYPE(ParserState) * stat
return NULL; /* ":::+ "*/
}
}
- if (digitCount > 0) {
- if (zipperEver) {
- uriWriteQuadToDoubleByte(digitHistory, digitCount, quadsAfterZipper + 2 * quadsAfterZipperCount);
- quadsAfterZipperCount++;
- } else {
- uriWriteQuadToDoubleByte(digitHistory, digitCount, state->uri->hostData.ip6->data + 2 * quadsDone);
- }
- quadsDone++;
- digitCount = 0;
- }
- letterAmong = 0;
if (setZipper) {
zipperEver = 1;