From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=66.187.233.73; helo=mx1.redhat.com; envelope-from=lersek@redhat.com; receiver=edk2-devel@lists.01.org Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 4926421BADAB2 for ; Thu, 2 Aug 2018 06:48:06 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 55B37818B10B; Thu, 2 Aug 2018 13:48:05 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-123-32.rdu2.redhat.com [10.10.123.32]) by smtp.corp.redhat.com (Postfix) with ESMTP id 96A921C59D; Thu, 2 Aug 2018 13:48:04 +0000 (UTC) To: Jiaxin Wu , edk2-devel@lists.01.org Cc: Ye Ting , Fu Siyuan References: <20180802012043.15608-1-Jiaxin.wu@intel.com> From: Laszlo Ersek Message-ID: Date: Thu, 2 Aug 2018 15:48:03 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180802012043.15608-1-Jiaxin.wu@intel.com> X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Thu, 02 Aug 2018 13:48:05 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.8]); Thu, 02 Aug 2018 13:48:05 +0000 (UTC) for IP:'10.11.54.5' DOMAIN:'int-mx05.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'lersek@redhat.com' RCPT:'' Subject: Re: [PATCH v2] NetworkPkg/HttpDxe: Strip square brackets in IPv6 expressed HostName. X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 02 Aug 2018 13:48:06 -0000 Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit On 08/02/18 03:20, Jiaxin Wu wrote: > *v2: Optimize the patch by calculating AsciiStrSize() only once. > > In URI, the colon (:) is used to terminate the HostName path before > a port number. However, if HostName is expressed as IPv6 format, colon > characters in IPv6 addresses will conflict with the colon before port > number. To alleviate this conflict in URI, the IPv6 expressed HostName > are enclosed in square brackets ([]). To record the real IPv6 HostName, > square brackets should be stripped. > > Cc: Ye Ting > Cc: Fu Siyuan > Cc: Laszlo Ersek > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Wu Jiaxin > Reviewed-by: Fu Siyuan > Reviewed-by: Laszlo Ersek > --- > NetworkPkg/HttpDxe/HttpImpl.c | 18 +++++++++++++++--- > 1 file changed, 15 insertions(+), 3 deletions(-) > > diff --git a/NetworkPkg/HttpDxe/HttpImpl.c b/NetworkPkg/HttpDxe/HttpImpl.c > index 17deceb395..de48243982 100644 > --- a/NetworkPkg/HttpDxe/HttpImpl.c > +++ b/NetworkPkg/HttpDxe/HttpImpl.c > @@ -403,14 +403,26 @@ EfiHttpRequest ( > Status = HttpParseUrl (Url, (UINT32) AsciiStrLen (Url), FALSE, &UrlParser); > if (EFI_ERROR (Status)) { > goto Error1; > } > > - HostName = NULL; > - Status = HttpUrlGetHostName (Url, UrlParser, &HostName); > + Status = HttpUrlGetHostName (Url, UrlParser, &HostName); > if (EFI_ERROR (Status)) { > - goto Error1; > + goto Error1; > + } > + > + if (HttpInstance->LocalAddressIsIPv6) { > + HostNameSize = AsciiStrSize (HostName); > + > + if (HostNameSize > 2 && HostName[0] == '[' && HostName[HostNameSize - 2] == ']') { > + // > + // HostName format is expressed as IPv6, so, remove '[' and ']'. > + // > + HostNameSize -= 2; > + CopyMem (HostName, HostName + 1, HostNameSize - 1); > + HostName[HostNameSize - 1] = '\0'; > + } > } > > Status = HttpUrlGetPort (Url, UrlParser, &RemotePort); > if (EFI_ERROR (Status)) { > if (HttpInstance->UseHttps) { > Looks good to me. Thanks! Laszlo