]> git.proxmox.com Git - mirror_edk2.git/blobdiff - NetworkPkg/HttpBootDxe/HttpBootDhcp6.c
NetworkPkg: Apply uncrustify changes
[mirror_edk2.git] / NetworkPkg / HttpBootDxe / HttpBootDhcp6.c
index 4905bca4ad19e64d7e7a88cb32f8c03f315ebefe..b22cef4ff58743898c3ff863ab2a52f995b2dd2b 100644 (file)
@@ -20,70 +20,70 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
 **/\r
 UINT32\r
 HttpBootBuildDhcp6Options (\r
-  IN  HTTP_BOOT_PRIVATE_DATA       *Private,\r
-  OUT EFI_DHCP6_PACKET_OPTION      **OptList,\r
-  IN  UINT8                        *Buffer\r
+  IN  HTTP_BOOT_PRIVATE_DATA   *Private,\r
+  OUT EFI_DHCP6_PACKET_OPTION  **OptList,\r
+  IN  UINT8                    *Buffer\r
   )\r
 {\r
-  HTTP_BOOT_DHCP6_OPTION_ENTRY     OptEnt;\r
-  UINT16                           Value;\r
-  UINT32                           Index;\r
+  HTTP_BOOT_DHCP6_OPTION_ENTRY  OptEnt;\r
+  UINT16                        Value;\r
+  UINT32                        Index;\r
 \r
   Index      = 0;\r
-  OptList[0] = (EFI_DHCP6_PACKET_OPTION *) Buffer;\r
+  OptList[0] = (EFI_DHCP6_PACKET_OPTION *)Buffer;\r
 \r
   //\r
   // Append client option request option\r
   //\r
-  OptList[Index]->OpCode     = HTONS (DHCP6_OPT_ORO);\r
-  OptList[Index]->OpLen      = HTONS (8);\r
-  OptEnt.Oro                 = (HTTP_BOOT_DHCP6_OPTION_ORO *) OptList[Index]->Data;\r
-  OptEnt.Oro->OpCode[0]      = HTONS(DHCP6_OPT_BOOT_FILE_URL);\r
-  OptEnt.Oro->OpCode[1]      = HTONS(DHCP6_OPT_BOOT_FILE_PARAM);\r
-  OptEnt.Oro->OpCode[2]      = HTONS(DHCP6_OPT_DNS_SERVERS);\r
-  OptEnt.Oro->OpCode[3]      = HTONS(DHCP6_OPT_VENDOR_CLASS);\r
+  OptList[Index]->OpCode = HTONS (DHCP6_OPT_ORO);\r
+  OptList[Index]->OpLen  = HTONS (8);\r
+  OptEnt.Oro             = (HTTP_BOOT_DHCP6_OPTION_ORO *)OptList[Index]->Data;\r
+  OptEnt.Oro->OpCode[0]  = HTONS (DHCP6_OPT_BOOT_FILE_URL);\r
+  OptEnt.Oro->OpCode[1]  = HTONS (DHCP6_OPT_BOOT_FILE_PARAM);\r
+  OptEnt.Oro->OpCode[2]  = HTONS (DHCP6_OPT_DNS_SERVERS);\r
+  OptEnt.Oro->OpCode[3]  = HTONS (DHCP6_OPT_VENDOR_CLASS);\r
   Index++;\r
-  OptList[Index]             = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]);\r
+  OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]);\r
 \r
   //\r
   // Append client network device interface option\r
   //\r
-  OptList[Index]->OpCode     = HTONS (DHCP6_OPT_UNDI);\r
-  OptList[Index]->OpLen      = HTONS ((UINT16)3);\r
-  OptEnt.Undi                = (HTTP_BOOT_DHCP6_OPTION_UNDI *) OptList[Index]->Data;\r
+  OptList[Index]->OpCode = HTONS (DHCP6_OPT_UNDI);\r
+  OptList[Index]->OpLen  = HTONS ((UINT16)3);\r
+  OptEnt.Undi            = (HTTP_BOOT_DHCP6_OPTION_UNDI *)OptList[Index]->Data;\r
 \r
   if (Private->Nii != NULL) {\r
-    OptEnt.Undi->Type        = Private->Nii->Type;\r
-    OptEnt.Undi->MajorVer    = Private->Nii->MajorVer;\r
-    OptEnt.Undi->MinorVer    = Private->Nii->MinorVer;\r
+    OptEnt.Undi->Type     = Private->Nii->Type;\r
+    OptEnt.Undi->MajorVer = Private->Nii->MajorVer;\r
+    OptEnt.Undi->MinorVer = Private->Nii->MinorVer;\r
   } else {\r
-    OptEnt.Undi->Type        = DEFAULT_UNDI_TYPE;\r
-    OptEnt.Undi->MajorVer    = DEFAULT_UNDI_MAJOR;\r
-    OptEnt.Undi->MinorVer    = DEFAULT_UNDI_MINOR;\r
+    OptEnt.Undi->Type     = DEFAULT_UNDI_TYPE;\r
+    OptEnt.Undi->MajorVer = DEFAULT_UNDI_MAJOR;\r
+    OptEnt.Undi->MinorVer = DEFAULT_UNDI_MINOR;\r
   }\r
 \r
   Index++;\r
-  OptList[Index]             = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]);\r
+  OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]);\r
 \r
   //\r
   // Append client system architecture option\r
   //\r
-  OptList[Index]->OpCode     = HTONS (DHCP6_OPT_ARCH);\r
-  OptList[Index]->OpLen      = HTONS ((UINT16) sizeof (HTTP_BOOT_DHCP6_OPTION_ARCH));\r
-  OptEnt.Arch                = (HTTP_BOOT_DHCP6_OPTION_ARCH *) OptList[Index]->Data;\r
-  Value                      = HTONS (EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE);\r
+  OptList[Index]->OpCode = HTONS (DHCP6_OPT_ARCH);\r
+  OptList[Index]->OpLen  = HTONS ((UINT16)sizeof (HTTP_BOOT_DHCP6_OPTION_ARCH));\r
+  OptEnt.Arch            = (HTTP_BOOT_DHCP6_OPTION_ARCH *)OptList[Index]->Data;\r
+  Value                  = HTONS (EFI_HTTP_BOOT_CLIENT_SYSTEM_ARCHITECTURE);\r
   CopyMem (&OptEnt.Arch->Type, &Value, sizeof (UINT16));\r
   Index++;\r
-  OptList[Index]             = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]);\r
+  OptList[Index] = GET_NEXT_DHCP6_OPTION (OptList[Index - 1]);\r
 \r
   //\r
   // Append vendor class identify option.\r
   //\r
   OptList[Index]->OpCode       = HTONS (DHCP6_OPT_VENDOR_CLASS);\r
-  OptList[Index]->OpLen        = HTONS ((UINT16) sizeof (HTTP_BOOT_DHCP6_OPTION_VENDOR_CLASS));\r
-  OptEnt.VendorClass           = (HTTP_BOOT_DHCP6_OPTION_VENDOR_CLASS *) OptList[Index]->Data;\r
+  OptList[Index]->OpLen        = HTONS ((UINT16)sizeof (HTTP_BOOT_DHCP6_OPTION_VENDOR_CLASS));\r
+  OptEnt.VendorClass           = (HTTP_BOOT_DHCP6_OPTION_VENDOR_CLASS *)OptList[Index]->Data;\r
   OptEnt.VendorClass->Vendor   = HTONL (HTTP_BOOT_DHCP6_ENTERPRISE_NUM);\r
-  OptEnt.VendorClass->ClassLen = HTONS ((UINT16) sizeof (HTTP_BOOT_CLASS_ID));\r
+  OptEnt.VendorClass->ClassLen = HTONS ((UINT16)sizeof (HTTP_BOOT_CLASS_ID));\r
   CopyMem (\r
     &OptEnt.VendorClass->ClassId,\r
     DEFAULT_CLASS_ID_DATA,\r
@@ -131,33 +131,30 @@ HttpBootBuildDhcp6Options (
 **/\r
 EFI_DHCP6_PACKET_OPTION *\r
 HttpBootParseDhcp6Options (\r
-  IN UINT8                       *Buffer,\r
-  IN UINT32                      Length,\r
-  IN UINT16                      OptTag\r
+  IN UINT8   *Buffer,\r
+  IN UINT32  Length,\r
+  IN UINT16  OptTag\r
   )\r
 {\r
-  EFI_DHCP6_PACKET_OPTION        *Option;\r
-  UINT32                         Offset;\r
+  EFI_DHCP6_PACKET_OPTION  *Option;\r
+  UINT32                   Offset;\r
 \r
-  Option  = (EFI_DHCP6_PACKET_OPTION *) Buffer;\r
-  Offset  = 0;\r
+  Option = (EFI_DHCP6_PACKET_OPTION *)Buffer;\r
+  Offset = 0;\r
 \r
   //\r
   // OpLen and OpCode here are both stored in network order.\r
   //\r
   while (Offset < Length) {\r
-\r
     if (NTOHS (Option->OpCode) == OptTag) {\r
-\r
       return Option;\r
     }\r
 \r
-    Offset += (NTOHS(Option->OpLen) + 4);\r
-    Option  = (EFI_DHCP6_PACKET_OPTION *) (Buffer + Offset);\r
+    Offset += (NTOHS (Option->OpLen) + 4);\r
+    Option  = (EFI_DHCP6_PACKET_OPTION *)(Buffer + Offset);\r
   }\r
 \r
   return NULL;\r
-\r
 }\r
 \r
 /**\r
@@ -171,40 +168,39 @@ HttpBootParseDhcp6Options (
 **/\r
 EFI_STATUS\r
 HttpBootParseDhcp6Packet (\r
-  IN  HTTP_BOOT_DHCP6_PACKET_CACHE    *Cache6\r
+  IN  HTTP_BOOT_DHCP6_PACKET_CACHE  *Cache6\r
   )\r
 {\r
-  EFI_DHCP6_PACKET               *Offer;\r
-  EFI_DHCP6_PACKET_OPTION        **Options;\r
-  EFI_DHCP6_PACKET_OPTION        *Option;\r
-  HTTP_BOOT_OFFER_TYPE           OfferType;\r
-  EFI_IPv6_ADDRESS               IpAddr;\r
-  BOOLEAN                        IsProxyOffer;\r
-  BOOLEAN                        IsHttpOffer;\r
-  BOOLEAN                        IsDnsOffer;\r
-  BOOLEAN                        IpExpressedUri;\r
-  EFI_STATUS                     Status;\r
-  UINT32                         Offset;\r
-  UINT32                         Length;\r
+  EFI_DHCP6_PACKET         *Offer;\r
+  EFI_DHCP6_PACKET_OPTION  **Options;\r
+  EFI_DHCP6_PACKET_OPTION  *Option;\r
+  HTTP_BOOT_OFFER_TYPE     OfferType;\r
+  EFI_IPv6_ADDRESS         IpAddr;\r
+  BOOLEAN                  IsProxyOffer;\r
+  BOOLEAN                  IsHttpOffer;\r
+  BOOLEAN                  IsDnsOffer;\r
+  BOOLEAN                  IpExpressedUri;\r
+  EFI_STATUS               Status;\r
+  UINT32                   Offset;\r
+  UINT32                   Length;\r
 \r
   IsDnsOffer     = FALSE;\r
   IpExpressedUri = FALSE;\r
   IsProxyOffer   = TRUE;\r
   IsHttpOffer    = FALSE;\r
-  Offer        = &Cache6->Packet.Offer;\r
-  Options      = Cache6->OptList;\r
+  Offer          = &Cache6->Packet.Offer;\r
+  Options        = Cache6->OptList;\r
 \r
   ZeroMem (Cache6->OptList, sizeof (Cache6->OptList));\r
 \r
-  Option  = (EFI_DHCP6_PACKET_OPTION *) (Offer->Dhcp6.Option);\r
-  Offset  = 0;\r
-  Length  = GET_DHCP6_OPTION_SIZE (Offer);\r
+  Option = (EFI_DHCP6_PACKET_OPTION *)(Offer->Dhcp6.Option);\r
+  Offset = 0;\r
+  Length = GET_DHCP6_OPTION_SIZE (Offer);\r
 \r
   //\r
   // OpLen and OpCode here are both stored in network order, since they are from original packet.\r
   //\r
   while (Offset < Length) {\r
-\r
     if (NTOHS (Option->OpCode) == DHCP6_OPT_IA_NA) {\r
       Options[HTTP_BOOT_DHCP6_IDX_IA_NA] = Option;\r
     } else if (NTOHS (Option->OpCode) == DHCP6_OPT_BOOT_FILE_URL) {\r
@@ -221,8 +217,9 @@ HttpBootParseDhcp6Packet (
     }\r
 \r
     Offset += (NTOHS (Option->OpLen) + 4);\r
-    Option  = (EFI_DHCP6_PACKET_OPTION *) (Offer->Dhcp6.Option + Offset);\r
+    Option  = (EFI_DHCP6_PACKET_OPTION *)(Offer->Dhcp6.Option + Offset);\r
   }\r
+\r
   //\r
   // The offer with assigned client address is NOT a proxy offer.\r
   // An ia_na option, embedded with valid ia_addr option and a status_code of success.\r
@@ -234,7 +231,7 @@ HttpBootParseDhcp6Packet (
                NTOHS (Option->OpLen),\r
                DHCP6_OPT_STATUS_CODE\r
                );\r
-    if ((Option != NULL && Option->Data[0] == 0) || (Option == NULL)) {\r
+    if (((Option != NULL) && (Option->Data[0] == 0)) || (Option == NULL)) {\r
       IsProxyOffer = FALSE;\r
     }\r
   }\r
@@ -244,10 +241,11 @@ HttpBootParseDhcp6Packet (
   //\r
   Option = Options[HTTP_BOOT_DHCP6_IDX_VENDOR_CLASS];\r
 \r
-  if (Option != NULL &&\r
-      NTOHS(Option->OpLen) >= 16 &&\r
-      CompareMem ((Option->Data + 6), DEFAULT_CLASS_ID_DATA, 10) == 0) {\r
-      IsHttpOffer = TRUE;\r
+  if ((Option != NULL) &&\r
+      (NTOHS (Option->OpLen) >= 16) &&\r
+      (CompareMem ((Option->Data + 6), DEFAULT_CLASS_ID_DATA, 10) == 0))\r
+  {\r
+    IsHttpOffer = TRUE;\r
   }\r
 \r
   //\r
@@ -261,7 +259,7 @@ HttpBootParseDhcp6Packet (
   //\r
   // Http offer must have a boot URI.\r
   //\r
-  if (IsHttpOffer && Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL] == NULL) {\r
+  if (IsHttpOffer && (Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL] == NULL)) {\r
     return EFI_DEVICE_ERROR;\r
   }\r
 \r
@@ -270,8 +268,8 @@ HttpBootParseDhcp6Packet (
   //\r
   if (IsHttpOffer) {\r
     Status = HttpParseUrl (\r
-               (CHAR8*) Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL]->Data,\r
-               (UINT32) AsciiStrLen ((CHAR8*) Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL]->Data),\r
+               (CHAR8 *)Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL]->Data,\r
+               (UINT32)AsciiStrLen ((CHAR8 *)Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL]->Data),\r
                FALSE,\r
                &Cache6->UriParser\r
                );\r
@@ -280,7 +278,7 @@ HttpBootParseDhcp6Packet (
     }\r
 \r
     Status = HttpUrlGetIp6 (\r
-               (CHAR8*) Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL]->Data,\r
+               (CHAR8 *)Options[HTTP_BOOT_DHCP6_IDX_BOOT_FILE_URL]->Data,\r
                Cache6->UriParser,\r
                &IpAddr\r
                );\r
@@ -304,7 +302,6 @@ HttpBootParseDhcp6Packet (
         OfferType = HttpOfferTypeProxyNameUri;\r
       }\r
     }\r
-\r
   } else {\r
     if (!IsProxyOffer) {\r
       OfferType = IsDnsOffer ? HttpOfferTypeDhcpDns : HttpOfferTypeDhcpOnly;\r
@@ -329,8 +326,8 @@ HttpBootParseDhcp6Packet (
 **/\r
 EFI_STATUS\r
 HttpBootCacheDhcp6Packet (\r
-  IN EFI_DHCP6_PACKET          *Dst,\r
-  IN EFI_DHCP6_PACKET          *Src\r
+  IN EFI_DHCP6_PACKET  *Dst,\r
+  IN EFI_DHCP6_PACKET  *Src\r
   )\r
 {\r
   if (Dst->Size < Src->Length) {\r
@@ -359,10 +356,10 @@ HttpBootCacheDhcp6Offer (
   IN EFI_DHCP6_PACKET        *RcvdOffer\r
   )\r
 {\r
-  HTTP_BOOT_DHCP6_PACKET_CACHE   *Cache6;\r
-  EFI_DHCP6_PACKET               *Offer;\r
-  HTTP_BOOT_OFFER_TYPE           OfferType;\r
-  EFI_STATUS                     Status;\r
+  HTTP_BOOT_DHCP6_PACKET_CACHE  *Cache6;\r
+  EFI_DHCP6_PACKET              *Offer;\r
+  HTTP_BOOT_OFFER_TYPE          OfferType;\r
+  EFI_STATUS                    Status;\r
 \r
   Cache6 = &Private->OfferBuffer[Private->OfferNum].Dhcp6;\r
   Offer  = &Cache6->Packet.Offer;\r
@@ -370,7 +367,7 @@ HttpBootCacheDhcp6Offer (
   //\r
   // Cache the content of DHCPv6 packet firstly.\r
   //\r
-  Status = HttpBootCacheDhcp6Packet(Offer, RcvdOffer);\r
+  Status = HttpBootCacheDhcp6Packet (Offer, RcvdOffer);\r
   if (EFI_ERROR (Status)) {\r
     return Status;\r
   }\r
@@ -417,86 +414,91 @@ HttpBootCacheDhcp6Offer (
 EFI_STATUS\r
 EFIAPI\r
 HttpBootDhcp6CallBack (\r
-  IN  EFI_DHCP6_PROTOCOL           *This,\r
-  IN  VOID                         *Context,\r
-  IN  EFI_DHCP6_STATE              CurrentState,\r
-  IN  EFI_DHCP6_EVENT              Dhcp6Event,\r
-  IN  EFI_DHCP6_PACKET             *Packet,\r
-  OUT EFI_DHCP6_PACKET             **NewPacket     OPTIONAL\r
+  IN  EFI_DHCP6_PROTOCOL  *This,\r
+  IN  VOID                *Context,\r
+  IN  EFI_DHCP6_STATE     CurrentState,\r
+  IN  EFI_DHCP6_EVENT     Dhcp6Event,\r
+  IN  EFI_DHCP6_PACKET    *Packet,\r
+  OUT EFI_DHCP6_PACKET    **NewPacket     OPTIONAL\r
   )\r
 {\r
-  HTTP_BOOT_PRIVATE_DATA          *Private;\r
-  EFI_DHCP6_PACKET                *SelectAd;\r
-  EFI_STATUS                      Status;\r
-  BOOLEAN                         Received;\r
+  HTTP_BOOT_PRIVATE_DATA  *Private;\r
+  EFI_DHCP6_PACKET        *SelectAd;\r
+  EFI_STATUS              Status;\r
+  BOOLEAN                 Received;\r
 \r
   if ((Dhcp6Event != Dhcp6SendSolicit) &&\r
-    (Dhcp6Event != Dhcp6RcvdAdvertise) &&\r
-    (Dhcp6Event != Dhcp6SendRequest) &&\r
-    (Dhcp6Event != Dhcp6RcvdReply) &&\r
-    (Dhcp6Event != Dhcp6SelectAdvertise)) {\r
+      (Dhcp6Event != Dhcp6RcvdAdvertise) &&\r
+      (Dhcp6Event != Dhcp6SendRequest) &&\r
+      (Dhcp6Event != Dhcp6RcvdReply) &&\r
+      (Dhcp6Event != Dhcp6SelectAdvertise))\r
+  {\r
     return EFI_SUCCESS;\r
   }\r
 \r
   ASSERT (Packet != NULL);\r
 \r
-  Private     = (HTTP_BOOT_PRIVATE_DATA *) Context;\r
-  Status = EFI_SUCCESS;\r
-  if (Private->HttpBootCallback != NULL && Dhcp6Event != Dhcp6SelectAdvertise) {\r
-    Received = (BOOLEAN) (Dhcp6Event == Dhcp6RcvdAdvertise || Dhcp6Event == Dhcp6RcvdReply);\r
-    Status = Private->HttpBootCallback->Callback (\r
-               Private->HttpBootCallback,\r
-               HttpBootDhcp6,\r
-               Received,\r
-               Packet->Length,\r
-               &Packet->Dhcp6\r
-               );\r
+  Private = (HTTP_BOOT_PRIVATE_DATA *)Context;\r
+  Status  = EFI_SUCCESS;\r
+  if ((Private->HttpBootCallback != NULL) && (Dhcp6Event != Dhcp6SelectAdvertise)) {\r
+    Received = (BOOLEAN)(Dhcp6Event == Dhcp6RcvdAdvertise || Dhcp6Event == Dhcp6RcvdReply);\r
+    Status   = Private->HttpBootCallback->Callback (\r
+                                            Private->HttpBootCallback,\r
+                                            HttpBootDhcp6,\r
+                                            Received,\r
+                                            Packet->Length,\r
+                                            &Packet->Dhcp6\r
+                                            );\r
     if (EFI_ERROR (Status)) {\r
       return EFI_ABORTED;\r
     }\r
   }\r
+\r
   switch (Dhcp6Event) {\r
+    case Dhcp6RcvdAdvertise:\r
+      Status = EFI_NOT_READY;\r
+      if (Packet->Length > HTTP_BOOT_DHCP6_PACKET_MAX_SIZE) {\r
+        //\r
+        // Ignore the incoming packets which exceed the maximum length.\r
+        //\r
+        break;\r
+      }\r
+\r
+      if (Private->OfferNum < HTTP_BOOT_OFFER_MAX_NUM) {\r
+        //\r
+        // Cache the dhcp offers to OfferBuffer[] for select later, and record\r
+        // the OfferIndex and OfferCount.\r
+        // If error happens, just ignore this packet and continue to wait more offer.\r
+        //\r
+        HttpBootCacheDhcp6Offer (Private, Packet);\r
+      }\r
 \r
-  case Dhcp6RcvdAdvertise:\r
-    Status = EFI_NOT_READY;\r
-    if (Packet->Length > HTTP_BOOT_DHCP6_PACKET_MAX_SIZE) {\r
-      //\r
-      // Ignore the incoming packets which exceed the maximum length.\r
-      //\r
       break;\r
-    }\r
-    if (Private->OfferNum < HTTP_BOOT_OFFER_MAX_NUM) {\r
+\r
+    case Dhcp6SelectAdvertise:\r
       //\r
-      // Cache the dhcp offers to OfferBuffer[] for select later, and record\r
-      // the OfferIndex and OfferCount.\r
-      // If error happens, just ignore this packet and continue to wait more offer.\r
+      // Select offer by the default policy or by order, and record the SelectIndex\r
+      // and SelectProxyType.\r
       //\r
-      HttpBootCacheDhcp6Offer (Private, Packet);\r
-    }\r
-    break;\r
-\r
-  case Dhcp6SelectAdvertise:\r
-    //\r
-    // Select offer by the default policy or by order, and record the SelectIndex\r
-    // and SelectProxyType.\r
-    //\r
-    HttpBootSelectDhcpOffer (Private);\r
+      HttpBootSelectDhcpOffer (Private);\r
 \r
-    if (Private->SelectIndex == 0) {\r
-      Status = EFI_ABORTED;\r
-    } else {\r
-      ASSERT (NewPacket != NULL);\r
-      SelectAd   = &Private->OfferBuffer[Private->SelectIndex - 1].Dhcp6.Packet.Offer;\r
-      *NewPacket = AllocateZeroPool (SelectAd->Size);\r
-      if (*NewPacket == NULL) {\r
-        return EFI_OUT_OF_RESOURCES;\r
+      if (Private->SelectIndex == 0) {\r
+        Status = EFI_ABORTED;\r
+      } else {\r
+        ASSERT (NewPacket != NULL);\r
+        SelectAd   = &Private->OfferBuffer[Private->SelectIndex - 1].Dhcp6.Packet.Offer;\r
+        *NewPacket = AllocateZeroPool (SelectAd->Size);\r
+        if (*NewPacket == NULL) {\r
+          return EFI_OUT_OF_RESOURCES;\r
+        }\r
+\r
+        CopyMem (*NewPacket, SelectAd, SelectAd->Size);\r
       }\r
-      CopyMem (*NewPacket, SelectAd, SelectAd->Size);\r
-    }\r
-    break;\r
 \r
-  default:\r
-    break;\r
+      break;\r
+\r
+    default:\r
+      break;\r
   }\r
 \r
   return Status;\r
@@ -519,18 +521,18 @@ HttpBootDhcp6CallBack (
 **/\r
 EFI_STATUS\r
 HttpBootCheckRouteTable (\r
-  IN  HTTP_BOOT_PRIVATE_DATA        *Private,\r
-  IN  UINTN                         TimeOutInSecond,\r
-  OUT EFI_IPv6_ADDRESS              *GatewayAddr\r
+  IN  HTTP_BOOT_PRIVATE_DATA  *Private,\r
+  IN  UINTN                   TimeOutInSecond,\r
+  OUT EFI_IPv6_ADDRESS        *GatewayAddr\r
   )\r
 {\r
-  EFI_STATUS                       Status;\r
-  EFI_IP6_PROTOCOL                 *Ip6;\r
-  EFI_IP6_MODE_DATA                Ip6ModeData;\r
-  UINTN                            Index;\r
-  EFI_EVENT                        TimeOutEvt;\r
-  UINTN                            RetryCount;\r
-  BOOLEAN                          GatewayIsFound;\r
+  EFI_STATUS         Status;\r
+  EFI_IP6_PROTOCOL   *Ip6;\r
+  EFI_IP6_MODE_DATA  Ip6ModeData;\r
+  UINTN              Index;\r
+  EFI_EVENT          TimeOutEvt;\r
+  UINTN              RetryCount;\r
+  BOOLEAN            GatewayIsFound;\r
 \r
   ASSERT (GatewayAddr != NULL);\r
   ASSERT (Private != NULL);\r
@@ -562,23 +564,28 @@ HttpBootCheckRouteTable (
     if (Ip6ModeData.AddressList != NULL) {\r
       FreePool (Ip6ModeData.AddressList);\r
     }\r
+\r
     if (Ip6ModeData.GroupTable != NULL) {\r
       FreePool (Ip6ModeData.GroupTable);\r
     }\r
+\r
     if (Ip6ModeData.RouteTable != NULL) {\r
       FreePool (Ip6ModeData.RouteTable);\r
     }\r
+\r
     if (Ip6ModeData.NeighborCache != NULL) {\r
       FreePool (Ip6ModeData.NeighborCache);\r
     }\r
+\r
     if (Ip6ModeData.PrefixTable != NULL) {\r
       FreePool (Ip6ModeData.PrefixTable);\r
     }\r
+\r
     if (Ip6ModeData.IcmpTypeList != NULL) {\r
       FreePool (Ip6ModeData.IcmpTypeList);\r
     }\r
 \r
-    if (GatewayIsFound || RetryCount == TimeOutInSecond) {\r
+    if (GatewayIsFound || (RetryCount == TimeOutInSecond)) {\r
       break;\r
     }\r
 \r
@@ -604,6 +611,7 @@ HttpBootCheckRouteTable (
     if (EFI_ERROR (Status)) {\r
       goto ON_EXIT;\r
     }\r
+\r
     while (EFI_ERROR (gBS->CheckEvent (TimeOutEvt))) {\r
       Ip6->Poll (Ip6);\r
     }\r
@@ -634,16 +642,16 @@ ON_EXIT:
 **/\r
 EFI_STATUS\r
 HttpBootSetIp6Policy (\r
-  IN HTTP_BOOT_PRIVATE_DATA        *Private\r
+  IN HTTP_BOOT_PRIVATE_DATA  *Private\r
   )\r
 {\r
-  EFI_IP6_CONFIG_POLICY            Policy;\r
-  EFI_IP6_CONFIG_PROTOCOL          *Ip6Config;\r
-  EFI_STATUS                       Status;\r
-  UINTN                            DataSize;\r
+  EFI_IP6_CONFIG_POLICY    Policy;\r
+  EFI_IP6_CONFIG_PROTOCOL  *Ip6Config;\r
+  EFI_STATUS               Status;\r
+  UINTN                    DataSize;\r
 \r
-  Ip6Config       = Private->Ip6Config;\r
-  DataSize        = sizeof (EFI_IP6_CONFIG_POLICY);\r
+  Ip6Config = Private->Ip6Config;\r
+  DataSize  = sizeof (EFI_IP6_CONFIG_POLICY);\r
 \r
   //\r
   // Get and store the current policy of IP6 driver.\r
@@ -663,13 +671,14 @@ HttpBootSetIp6Policy (
     Status = Ip6Config->SetData (\r
                           Ip6Config,\r
                           Ip6ConfigDataTypePolicy,\r
-                          sizeof(EFI_IP6_CONFIG_POLICY),\r
+                          sizeof (EFI_IP6_CONFIG_POLICY),\r
                           &Policy\r
                           );\r
     if (EFI_ERROR (Status)) {\r
       return Status;\r
     }\r
   }\r
+\r
   return EFI_SUCCESS;\r
 }\r
 \r
@@ -687,12 +696,12 @@ HttpBootSetIp6Policy (
 **/\r
 EFI_STATUS\r
 HttpBootSetIp6Dns (\r
-  IN HTTP_BOOT_PRIVATE_DATA         *Private,\r
-  IN UINTN                          DataLength,\r
-  IN VOID                           *DnsServerData\r
+  IN HTTP_BOOT_PRIVATE_DATA  *Private,\r
+  IN UINTN                   DataLength,\r
+  IN VOID                    *DnsServerData\r
   )\r
 {\r
-  EFI_IP6_CONFIG_PROTOCOL        *Ip6Config;\r
+  EFI_IP6_CONFIG_PROTOCOL  *Ip6Config;\r
 \r
   ASSERT (Private->UsingIpv6);\r
 \r
@@ -717,11 +726,11 @@ HttpBootSetIp6Dns (
 **/\r
 EFI_STATUS\r
 HttpBootSetIp6Gateway (\r
-  IN HTTP_BOOT_PRIVATE_DATA         *Private\r
+  IN HTTP_BOOT_PRIVATE_DATA  *Private\r
   )\r
 {\r
-  EFI_IP6_CONFIG_PROTOCOL           *Ip6Config;\r
-  EFI_STATUS                        Status;\r
+  EFI_IP6_CONFIG_PROTOCOL  *Ip6Config;\r
+  EFI_STATUS               Status;\r
 \r
   ASSERT (Private->UsingIpv6);\r
   Ip6Config = Private->Ip6Config;\r
@@ -736,7 +745,7 @@ HttpBootSetIp6Gateway (
                           sizeof (EFI_IPv6_ADDRESS),\r
                           &Private->GatewayIp.v6\r
                           );\r
-    if (EFI_ERROR(Status)) {\r
+    if (EFI_ERROR (Status)) {\r
       return Status;\r
     }\r
   }\r
@@ -755,21 +764,21 @@ HttpBootSetIp6Gateway (
 **/\r
 EFI_STATUS\r
 HttpBootSetIp6Address (\r
-  IN HTTP_BOOT_PRIVATE_DATA         *Private\r
-)\r
+  IN HTTP_BOOT_PRIVATE_DATA  *Private\r
+  )\r
 {\r
-  EFI_STATUS                         Status;\r
-  EFI_IP6_PROTOCOL                   *Ip6;\r
-  EFI_IP6_CONFIG_PROTOCOL            *Ip6Cfg;\r
-  EFI_IP6_CONFIG_POLICY              Policy;\r
-  EFI_IP6_CONFIG_MANUAL_ADDRESS      CfgAddr;\r
-  EFI_IPv6_ADDRESS                   *Ip6Addr;\r
-  EFI_IPv6_ADDRESS                   GatewayAddr;\r
-  EFI_IP6_CONFIG_DATA                Ip6CfgData;\r
-  EFI_EVENT                          MappedEvt;\r
-  UINTN                              DataSize;\r
-  BOOLEAN                            IsAddressOk;\r
-  UINTN                              Index;\r
+  EFI_STATUS                     Status;\r
+  EFI_IP6_PROTOCOL               *Ip6;\r
+  EFI_IP6_CONFIG_PROTOCOL        *Ip6Cfg;\r
+  EFI_IP6_CONFIG_POLICY          Policy;\r
+  EFI_IP6_CONFIG_MANUAL_ADDRESS  CfgAddr;\r
+  EFI_IPv6_ADDRESS               *Ip6Addr;\r
+  EFI_IPv6_ADDRESS               GatewayAddr;\r
+  EFI_IP6_CONFIG_DATA            Ip6CfgData;\r
+  EFI_EVENT                      MappedEvt;\r
+  UINTN                          DataSize;\r
+  BOOLEAN                        IsAddressOk;\r
+  UINTN                          Index;\r
 \r
   ASSERT (Private->UsingIpv6);\r
 \r
@@ -783,11 +792,11 @@ HttpBootSetIp6Address (
   CopyMem (&CfgAddr, &Private->StationIp.v6, sizeof (EFI_IPv6_ADDRESS));\r
   ZeroMem (&Ip6CfgData, sizeof (EFI_IP6_CONFIG_DATA));\r
 \r
-  Ip6CfgData.AcceptIcmpErrors    = TRUE;\r
-  Ip6CfgData.DefaultProtocol     = IP6_ICMP;\r
-  Ip6CfgData.HopLimit            = HTTP_BOOT_DEFAULT_HOPLIMIT;\r
-  Ip6CfgData.ReceiveTimeout      = HTTP_BOOT_DEFAULT_LIFETIME;\r
-  Ip6CfgData.TransmitTimeout     = HTTP_BOOT_DEFAULT_LIFETIME;\r
+  Ip6CfgData.AcceptIcmpErrors = TRUE;\r
+  Ip6CfgData.DefaultProtocol  = IP6_ICMP;\r
+  Ip6CfgData.HopLimit         = HTTP_BOOT_DEFAULT_HOPLIMIT;\r
+  Ip6CfgData.ReceiveTimeout   = HTTP_BOOT_DEFAULT_LIFETIME;\r
+  Ip6CfgData.TransmitTimeout  = HTTP_BOOT_DEFAULT_LIFETIME;\r
 \r
   Status = Ip6->Configure (Ip6, &Ip6CfgData);\r
   if (EFI_ERROR (Status)) {\r
@@ -811,7 +820,7 @@ HttpBootSetIp6Address (
   Status = Ip6Cfg->SetData (\r
                      Ip6Cfg,\r
                      Ip6ConfigDataTypePolicy,\r
-                     sizeof(EFI_IP6_CONFIG_POLICY),\r
+                     sizeof (EFI_IP6_CONFIG_POLICY),\r
                      &Policy\r
                      );\r
   if (EFI_ERROR (Status)) {\r
@@ -840,7 +849,7 @@ HttpBootSetIp6Address (
                      Ip6ConfigDataTypeManualAddress,\r
                      MappedEvt\r
                      );\r
-  if (EFI_ERROR(Status)) {\r
+  if (EFI_ERROR (Status)) {\r
     goto ON_EXIT;\r
   }\r
 \r
@@ -850,7 +859,7 @@ HttpBootSetIp6Address (
                      sizeof (EFI_IP6_CONFIG_MANUAL_ADDRESS),\r
                      &CfgAddr\r
                      );\r
-  if (EFI_ERROR (Status) && Status != EFI_NOT_READY) {\r
+  if (EFI_ERROR (Status) && (Status != EFI_NOT_READY)) {\r
     goto ON_EXIT;\r
   } else if (Status == EFI_NOT_READY) {\r
     //\r
@@ -859,17 +868,18 @@ HttpBootSetIp6Address (
     while (!IsAddressOk) {\r
       Ip6->Poll (Ip6);\r
     }\r
+\r
     //\r
     // Check whether the Ip6 Address setting is successed.\r
     //\r
     DataSize = 0;\r
-    Status = Ip6Cfg->GetData (\r
-                       Ip6Cfg,\r
-                       Ip6ConfigDataTypeManualAddress,\r
-                       &DataSize,\r
-                       NULL\r
-                       );\r
-    if (Status != EFI_BUFFER_TOO_SMALL || DataSize == 0) {\r
+    Status   = Ip6Cfg->GetData (\r
+                         Ip6Cfg,\r
+                         Ip6ConfigDataTypeManualAddress,\r
+                         &DataSize,\r
+                         NULL\r
+                         );\r
+    if ((Status != EFI_BUFFER_TOO_SMALL) || (DataSize == 0)) {\r
       Status = EFI_DEVICE_ERROR;\r
       goto ON_EXIT;\r
     }\r
@@ -878,22 +888,24 @@ HttpBootSetIp6Address (
     if (Ip6Addr == NULL) {\r
       return EFI_OUT_OF_RESOURCES;\r
     }\r
+\r
     Status = Ip6Cfg->GetData (\r
                        Ip6Cfg,\r
                        Ip6ConfigDataTypeManualAddress,\r
                        &DataSize,\r
-                       (VOID *) Ip6Addr\r
+                       (VOID *)Ip6Addr\r
                        );\r
     if (EFI_ERROR (Status)) {\r
       Status = EFI_DEVICE_ERROR;\r
       goto ON_EXIT;\r
     }\r
 \r
-    for (Index = 0; Index < DataSize / sizeof (EFI_IPv6_ADDRESS); Index ++) {\r
+    for (Index = 0; Index < DataSize / sizeof (EFI_IPv6_ADDRESS); Index++) {\r
       if (CompareMem (Ip6Addr + Index, &CfgAddr, sizeof (EFI_IPv6_ADDRESS)) == 0) {\r
         break;\r
       }\r
     }\r
+\r
     if (Index == DataSize / sizeof (EFI_IPv6_ADDRESS)) {\r
       Status = EFI_ABORTED;\r
       goto ON_EXIT;\r
@@ -928,17 +940,17 @@ ON_EXIT:
 **/\r
 EFI_STATUS\r
 HttpBootDhcp6Sarr (\r
-  IN HTTP_BOOT_PRIVATE_DATA         *Private\r
+  IN HTTP_BOOT_PRIVATE_DATA  *Private\r
   )\r
 {\r
-  EFI_DHCP6_PROTOCOL               *Dhcp6;\r
-  EFI_DHCP6_CONFIG_DATA            Config;\r
-  EFI_DHCP6_MODE_DATA              Mode;\r
-  EFI_DHCP6_RETRANSMISSION         *Retransmit;\r
-  EFI_DHCP6_PACKET_OPTION          *OptList[HTTP_BOOT_DHCP6_OPTION_MAX_NUM];\r
-  UINT32                           OptCount;\r
-  UINT8                            Buffer[HTTP_BOOT_DHCP6_OPTION_MAX_SIZE];\r
-  EFI_STATUS                       Status;\r
+  EFI_DHCP6_PROTOCOL        *Dhcp6;\r
+  EFI_DHCP6_CONFIG_DATA     Config;\r
+  EFI_DHCP6_MODE_DATA       Mode;\r
+  EFI_DHCP6_RETRANSMISSION  *Retransmit;\r
+  EFI_DHCP6_PACKET_OPTION   *OptList[HTTP_BOOT_DHCP6_OPTION_MAX_NUM];\r
+  UINT32                    OptCount;\r
+  UINT8                     Buffer[HTTP_BOOT_DHCP6_OPTION_MAX_SIZE];\r
+  EFI_STATUS                Status;\r
 \r
   Dhcp6 = Private->Dhcp6;\r
   ASSERT (Dhcp6 != NULL);\r
@@ -947,7 +959,7 @@ HttpBootDhcp6Sarr (
   // Build options list for the request packet.\r
   //\r
   OptCount = HttpBootBuildDhcp6Options (Private, OptList, Buffer);\r
-  ASSERT (OptCount >0);\r
+  ASSERT (OptCount > 0);\r
 \r
   Retransmit = AllocateZeroPool (sizeof (EFI_DHCP6_RETRANSMISSION));\r
   if (Retransmit == NULL) {\r
@@ -980,11 +992,12 @@ HttpBootDhcp6Sarr (
   if (EFI_ERROR (Status)) {\r
     goto ON_EXIT;\r
   }\r
+\r
   //\r
   // Initialize the record fields for DHCPv6 offer in private data.\r
   //\r
-  Private->OfferNum      = 0;\r
-  Private->SelectIndex   = 0;\r
+  Private->OfferNum    = 0;\r
+  Private->SelectIndex = 0;\r
   ZeroMem (Private->OfferCount, sizeof (Private->OfferCount));\r
   ZeroMem (Private->OfferIndex, sizeof (Private->OfferIndex));\r
 \r
@@ -1021,12 +1034,11 @@ ON_EXIT:
     if (Mode.ClientId != NULL) {\r
       FreePool (Mode.ClientId);\r
     }\r
+\r
     if (Mode.Ia != NULL) {\r
       FreePool (Mode.Ia);\r
     }\r
   }\r
 \r
   return Status;\r
-\r
 }\r
-\r