From 3d9e0eb02ce2b2e153e25deb0fc4b27b45f5026a Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 12 Mar 2014 14:26:41 +0100 Subject: [PATCH] http: Add a flag to the URL parser indicating a literal v6 address. * common/http.h (struct parsed_uri_t): Add field v6lit. * common/http.c (do_parse_uri): Set v6lit. --- common/http.c | 2 ++ common/http.h | 1 + 2 files changed, 3 insertions(+) diff --git a/common/http.c b/common/http.c index d2f13e498..d95a2fba9 100644 --- a/common/http.c +++ b/common/http.c @@ -781,6 +781,7 @@ do_parse_uri (parsed_uri_t uri, int only_local_part, int no_scheme_check) uri->use_tls = 0; uri->is_http = 0; uri->opaque = 0; + uri->v6lit = 0; /* A quick validity check. */ if (strspn (p, VALID_URI_CHARS) != n) @@ -841,6 +842,7 @@ do_parse_uri (parsed_uri_t uri, int only_local_part, int no_scheme_check) *p3++ = '\0'; /* worst case, uri->host should have length 0, points to \0 */ uri->host = p + 1; + uri->v6lit = 1; p = p3; } else diff --git a/common/http.h b/common/http.h index 75d64d146..bea9f07f1 100644 --- a/common/http.h +++ b/common/http.h @@ -51,6 +51,7 @@ struct parsed_uri_s unsigned int is_http:1; /* This is a HTTP style URI. */ unsigned int use_tls:1; /* Whether TLS should be used. */ unsigned int opaque:1;/* Unknown scheme; PATH has the rest. */ + unsigned int v6lit:1; /* Host was given as a literal v6 address. */ char *auth; /* username/password for basic auth. */ char *host; /* Host (converted to lowercase). */ unsigned short port; /* Port (always set if the host is set). */