\r
#include "Http.h"\r
\r
-#define IP4_CONFIG2_INTERFACE_INFO_NAME_LENGTH 32\r
+#define IP4_CONFIG2_INTERFACE_INFO_NAME_LENGTH 32\r
\r
//\r
// Constant strings and definitions related to the message\r
//\r
// Buffer size. Note that larger buffer does not mean better speed.\r
//\r
-#define DEFAULT_BUF_SIZE SIZE_32KB\r
-#define MAX_BUF_SIZE SIZE_4MB\r
+#define DEFAULT_BUF_SIZE SIZE_32KB\r
+#define MAX_BUF_SIZE SIZE_4MB\r
\r
-#define MIN_PARAM_COUNT 2\r
-#define MAX_PARAM_COUNT 4\r
+#define MIN_PARAM_COUNT 2\r
+#define MAX_PARAM_COUNT 4\r
#define NEED_REDIRECTION(Code) \\r
(((Code >= HTTP_STATUS_300_MULTIPLE_CHOICES) \\r
&& (Code <= HTTP_STATUS_307_TEMPORARY_REDIRECT)) \\r
|| (Code == HTTP_STATUS_308_PERMANENT_REDIRECT))\r
\r
-#define CLOSE_HTTP_HANDLE(ControllerHandle,HttpChildHandle) \\r
+#define CLOSE_HTTP_HANDLE(ControllerHandle, HttpChildHandle) \\r
do { \\r
if (HttpChildHandle) { \\r
CloseProtocolAndDestroyServiceChild ( \\r
\r
#define USER_AGENT_HDR "Mozilla/5.0 (EDK2; Linux) Gecko/20100101 Firefox/79.0"\r
\r
-#define TIMER_MAX_TIMEOUT_S 10\r
+#define TIMER_MAX_TIMEOUT_S 10\r
\r
//\r
// File name to use when Uri ends with "/".\r
//\r
-#define DEFAULT_HTML_FILE L"index.html"\r
-#define DEFAULT_HTTP_PROTO L"http"\r
+#define DEFAULT_HTML_FILE L"index.html"\r
+#define DEFAULT_HTTP_PROTO L"http"\r
\r
//\r
// String to delete the HTTP progress message to be able to update it :\r
L"\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\\r
\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b"\r
\r
-#define HTTP_KB L"\b\b\b\b\b\b\b\b\b\b"\r
+#define HTTP_KB L"\b\b\b\b\b\b\b\b\b\b"\r
//\r
// Frame for the progression slider.\r
//\r
-#define HTTP_PROGR_FRAME L"[ ]"\r
+#define HTTP_PROGR_FRAME L"[ ]"\r
\r
//\r
// Improve readability by using these macros.\r
//\r
-#define PRINT_HII(token,...) \\r
+#define PRINT_HII(token, ...) \\r
ShellPrintHiiEx (\\r
-1, -1, NULL, token, mHttpHiiHandle, __VA_ARGS__)\r
\r
-#define PRINT_HII_APP(token,value) \\r
+#define PRINT_HII_APP(token, value) \\r
PRINT_HII (token, HTTP_APP_NAME, value)\r
\r
//\r
//\r
// Define EPOCH (1970-JANUARY-01) in the Julian Date representation.\r
//\r
-#define EPOCH_JULIAN_DATE 2440588\r
+#define EPOCH_JULIAN_DATE 2440588\r
\r
//\r
// Seconds per unit.\r
//\r
-#define SEC_PER_MIN ((UINTN) 60)\r
-#define SEC_PER_HOUR ((UINTN) 3600)\r
-#define SEC_PER_DAY ((UINTN) 86400)\r
+#define SEC_PER_MIN ((UINTN) 60)\r
+#define SEC_PER_HOUR ((UINTN) 3600)\r
+#define SEC_PER_DAY ((UINTN) 86400)\r
\r
//\r
// String descriptions for server errors.\r
//\r
-STATIC CONST CHAR16 *ErrStatusDesc[] =\r
+STATIC CONST CHAR16 *ErrStatusDesc[] =\r
{\r
L"400 Bad Request",\r
L"401 Unauthorized",\r
L"505 HTTP version not supported"\r
};\r
\r
-STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
- {L"-i", TypeValue},\r
- {L"-k", TypeFlag},\r
- {L"-l", TypeValue},\r
- {L"-m", TypeFlag},\r
- {L"-s", TypeValue},\r
- {L"-t", TypeValue},\r
- {NULL , TypeMax}\r
+STATIC CONST SHELL_PARAM_ITEM ParamList[] = {\r
+ { L"-i", TypeValue },\r
+ { L"-k", TypeFlag },\r
+ { L"-l", TypeValue },\r
+ { L"-m", TypeFlag },\r
+ { L"-s", TypeValue },\r
+ { L"-t", TypeValue },\r
+ { NULL, TypeMax }\r
};\r
\r
//\r
// Local File Handle.\r
//\r
-STATIC SHELL_FILE_HANDLE mFileHandle = NULL;\r
+STATIC SHELL_FILE_HANDLE mFileHandle = NULL;\r
\r
//\r
// Path of the local file, Unicode encoded.\r
//\r
-STATIC CONST CHAR16 *mLocalFilePath;\r
+STATIC CONST CHAR16 *mLocalFilePath;\r
\r
-STATIC BOOLEAN gRequestCallbackComplete = FALSE;\r
-STATIC BOOLEAN gResponseCallbackComplete = FALSE;\r
+STATIC BOOLEAN gRequestCallbackComplete = FALSE;\r
+STATIC BOOLEAN gResponseCallbackComplete = FALSE;\r
\r
-STATIC BOOLEAN gHttpError;\r
+STATIC BOOLEAN gHttpError;\r
\r
-EFI_HII_HANDLE mHttpHiiHandle;\r
+EFI_HII_HANDLE mHttpHiiHandle;\r
\r
//\r
// Functions declarations.\r
STATIC\r
EFI_STATUS\r
DownloadFile (\r
- IN HTTP_DOWNLOAD_CONTEXT *Context,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN CHAR16 *NicName\r
+ IN HTTP_DOWNLOAD_CONTEXT *Context,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN CHAR16 *NicName\r
);\r
\r
/**\r
STATIC\r
EFI_STATUS\r
TrimSpaces (\r
- IN CHAR16 *String\r
+ IN CHAR16 *String\r
)\r
{\r
- CHAR16 *Str;\r
- UINTN Len;\r
+ CHAR16 *Str;\r
+ UINTN Len;\r
\r
ASSERT (String != NULL);\r
\r
//\r
do {\r
Len = StrLen (Str);\r
- if (!Len || (Str[Len - 1] != L' ' && Str[Len - 1] != '\t')) {\r
+ if (!Len || ((Str[Len - 1] != L' ') && (Str[Len - 1] != '\t'))) {\r
break;\r
}\r
\r
VOID\r
EFIAPI\r
RequestCallback (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
gRequestCallbackComplete = TRUE;\r
VOID\r
EFIAPI\r
ResponseCallback (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
gResponseCallbackComplete = TRUE;\r
IN EFI_TIME *Time\r
)\r
{\r
- UINTN a;\r
- UINTN y;\r
- UINTN m;\r
+ UINTN a;\r
+ UINTN y;\r
+ UINTN m;\r
//\r
// Absolute Julian Date representation of the supplied Time.\r
//\r
- UINTN JulianDate;\r
+ UINTN JulianDate;\r
//\r
// Number of days elapsed since EPOCH_JULIAN_DAY.\r
//\r
- UINTN EpochDays;\r
+ UINTN EpochDays;\r
\r
- a = (14 - Time->Month) / 12 ;\r
+ a = (14 - Time->Month) / 12;\r
y = Time->Year + 4800 - a;\r
m = Time->Month + (12 * a) - 3;\r
\r
//\r
// Number of days elapsed since EPOCH_JULIAN_DAY.\r
//\r
- UINTN EpochDays;\r
- UINTN EpochSeconds;\r
+ UINTN EpochDays;\r
+ UINTN EpochSeconds;\r
\r
EpochDays = EfiGetEpochDays (Time);\r
\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
- LIST_ENTRY *CheckPackage;\r
- UINTN ParamCount;\r
- UINTN HandleCount;\r
- UINTN NicNumber;\r
- UINTN InitialSize;\r
- UINTN ParamOffset;\r
- UINTN StartSize;\r
- CHAR16 *ProblemParam;\r
- CHAR16 NicName[IP4_CONFIG2_INTERFACE_INFO_NAME_LENGTH];\r
- CHAR16 *Walker1;\r
- CHAR16 *VStr;\r
- CONST CHAR16 *UserNicName;\r
- CONST CHAR16 *ValueStr;\r
- CONST CHAR16 *RemoteFilePath;\r
- CONST CHAR16 *Walker;\r
- EFI_HTTPv4_ACCESS_POINT IPv4Node;\r
- EFI_HANDLE *Handles;\r
- EFI_HANDLE ControllerHandle;\r
- HTTP_DOWNLOAD_CONTEXT Context;\r
- BOOLEAN NicFound;\r
-\r
- ProblemParam = NULL;\r
- RemoteFilePath = NULL;\r
- NicFound = FALSE;\r
- Handles = NULL;\r
+ EFI_STATUS Status;\r
+ LIST_ENTRY *CheckPackage;\r
+ UINTN ParamCount;\r
+ UINTN HandleCount;\r
+ UINTN NicNumber;\r
+ UINTN InitialSize;\r
+ UINTN ParamOffset;\r
+ UINTN StartSize;\r
+ CHAR16 *ProblemParam;\r
+ CHAR16 NicName[IP4_CONFIG2_INTERFACE_INFO_NAME_LENGTH];\r
+ CHAR16 *Walker1;\r
+ CHAR16 *VStr;\r
+ CONST CHAR16 *UserNicName;\r
+ CONST CHAR16 *ValueStr;\r
+ CONST CHAR16 *RemoteFilePath;\r
+ CONST CHAR16 *Walker;\r
+ EFI_HTTPv4_ACCESS_POINT IPv4Node;\r
+ EFI_HANDLE *Handles;\r
+ EFI_HANDLE ControllerHandle;\r
+ HTTP_DOWNLOAD_CONTEXT Context;\r
+ BOOLEAN NicFound;\r
+\r
+ ProblemParam = NULL;\r
+ RemoteFilePath = NULL;\r
+ NicFound = FALSE;\r
+ Handles = NULL;\r
\r
//\r
// Initialize the Shell library (we must be in non-auto-init...).\r
TRUE\r
);\r
if (EFI_ERROR (Status)) {\r
- if ((Status == EFI_VOLUME_CORRUPTED)\r
- && (ProblemParam != NULL))\r
+ if ( (Status == EFI_VOLUME_CORRUPTED)\r
+ && (ProblemParam != NULL))\r
{\r
PRINT_HII_APP (STRING_TOKEN (STR_GEN_PROBLEM), ProblemParam);\r
SHELL_FREE_NON_NULL (ProblemParam);\r
ZeroMem (&IPv4Node, sizeof (IPv4Node));\r
IPv4Node.UseDefaultAddress = TRUE;\r
\r
- Context.HttpConfigData.HttpVersion = HttpVersion11;\r
+ Context.HttpConfigData.HttpVersion = HttpVersion11;\r
Context.HttpConfigData.AccessPoint.IPv4Node = &IPv4Node;\r
\r
//\r
}\r
\r
if (*Walker1 == L'/') {\r
- ParamOffset = 1;\r
+ ParamOffset = 1;\r
RemoteFilePath = Walker1;\r
}\r
\r
Walker = RemoteFilePath + StrLen (RemoteFilePath);\r
while ((--Walker) >= RemoteFilePath) {\r
if ((*Walker == L'\\') ||\r
- (*Walker == L'/' ) ) {\r
+ (*Walker == L'/'))\r
+ {\r
break;\r
}\r
}\r
UserNicName = ShellCommandLineGetValue (CheckPackage, L"-i");\r
\r
ValueStr = ShellCommandLineGetValue (CheckPackage, L"-l");\r
- if ((ValueStr != NULL)\r
- && (!StringToUint16 (\r
- ValueStr,\r
- &Context.HttpConfigData.AccessPoint.IPv4Node->LocalPort\r
- )\r
- ))\r
+ if ( (ValueStr != NULL)\r
+ && (!StringToUint16 (\r
+ ValueStr,\r
+ &Context.HttpConfigData.AccessPoint.IPv4Node->LocalPort\r
+ )\r
+ ))\r
{\r
goto Error;\r
}\r
ValueStr = ShellCommandLineGetValue (CheckPackage, L"-s");\r
if (ValueStr != NULL) {\r
Context.BufferSize = ShellStrToUintn (ValueStr);\r
- if (!Context.BufferSize || Context.BufferSize > MAX_BUF_SIZE) {\r
+ if (!Context.BufferSize || (Context.BufferSize > MAX_BUF_SIZE)) {\r
PRINT_HII_APP (STRING_TOKEN (STR_GEN_PARAM_INV), ValueStr);\r
goto Error;\r
}\r
}\r
\r
if (gHttpError) {\r
- //\r
- // This is not related to connection, so no need to repeat with\r
- // another interface.\r
- //\r
+ //\r
+ // This is not related to connection, so no need to repeat with\r
+ // another interface.\r
+ //\r
break;\r
}\r
}\r
&gEfiManagedNetworkServiceBindingProtocolGuid,\r
&gEfiManagedNetworkProtocolGuid,\r
&MnpHandle,\r
- (VOID**)&Mnp\r
+ (VOID **)&Mnp\r
);\r
if (EFI_ERROR (Status)) {\r
goto Error;\r
EFI_STATUS Status;\r
\r
*ChildHandle = NULL;\r
- Status = NetLibCreateServiceChild (\r
- ControllerHandle,\r
- gImageHandle,\r
- ServiceBindingProtocolGuid,\r
- ChildHandle\r
- );\r
+ Status = NetLibCreateServiceChild (\r
+ ControllerHandle,\r
+ gImageHandle,\r
+ ServiceBindingProtocolGuid,\r
+ ChildHandle\r
+ );\r
if (!EFI_ERROR (Status)) {\r
Status = gBS->OpenProtocol (\r
*ChildHandle,\r
IN OUT BOOLEAN *CallBackComplete\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_EVENT WaitEvt;\r
+ EFI_STATUS Status;\r
+ EFI_EVENT WaitEvt;\r
\r
Status = EFI_SUCCESS;\r
\r
NULL,\r
&WaitEvt\r
);\r
- ASSERT_EFI_ERROR (Status);\r
+ ASSERT_EFI_ERROR (Status);\r
\r
- if (!EFI_ERROR (Status)) {\r
- Status = gBS->SetTimer (\r
- WaitEvt,\r
- TimerRelative,\r
- EFI_TIMER_PERIOD_SECONDS (TIMER_MAX_TIMEOUT_S)\r
- );\r
+ if (!EFI_ERROR (Status)) {\r
+ Status = gBS->SetTimer (\r
+ WaitEvt,\r
+ TimerRelative,\r
+ EFI_TIMER_PERIOD_SECONDS (TIMER_MAX_TIMEOUT_S)\r
+ );\r
\r
- ASSERT_EFI_ERROR (Status);\r
- }\r
+ ASSERT_EFI_ERROR (Status);\r
+ }\r
\r
- while (! *CallBackComplete\r
- && (!EFI_ERROR (Status))\r
- && EFI_ERROR (gBS->CheckEvent (WaitEvt)))\r
+ while ( !*CallBackComplete\r
+ && (!EFI_ERROR (Status))\r
+ && EFI_ERROR (gBS->CheckEvent (WaitEvt)))\r
{\r
Status = Context->Http->Poll (Context->Http);\r
- if (!Context->ContentDownloaded\r
- && CallBackComplete == &gResponseCallbackComplete)\r
+ if ( !Context->ContentDownloaded\r
+ && (CallBackComplete == &gResponseCallbackComplete))\r
{\r
//\r
// An HTTP server may just send a response redirection header.\r
// Note that at this point Response may not has been populated,\r
// so it needs to be checked first.\r
//\r
- if (Context->ResponseToken.Message\r
- && Context->ResponseToken.Message->Data.Response\r
- && (NEED_REDIRECTION (\r
- Context->ResponseToken.Message->Data.Response->StatusCode\r
- )\r
- ))\r
+ if ( Context->ResponseToken.Message\r
+ && Context->ResponseToken.Message->Data.Response\r
+ && (NEED_REDIRECTION (\r
+ Context->ResponseToken.Message->Data.Response->StatusCode\r
+ )\r
+ ))\r
{\r
break;\r
}\r
IN CHAR16 *DownloadUrl\r
)\r
{\r
- EFI_HTTP_REQUEST_DATA RequestData;\r
- EFI_HTTP_HEADER RequestHeader[HdrMax];\r
- EFI_HTTP_MESSAGE RequestMessage;\r
- EFI_STATUS Status;\r
- CHAR16 *Host;\r
- UINTN StringSize;\r
+ EFI_HTTP_REQUEST_DATA RequestData;\r
+ EFI_HTTP_HEADER RequestHeader[HdrMax];\r
+ EFI_HTTP_MESSAGE RequestMessage;\r
+ EFI_STATUS Status;\r
+ CHAR16 *Host;\r
+ UINTN StringSize;\r
\r
ZeroMem (&RequestData, sizeof (RequestData));\r
ZeroMem (&RequestHeader, sizeof (RequestHeader));\r
ZeroMem (&RequestMessage, sizeof (RequestMessage));\r
ZeroMem (&Context->RequestToken, sizeof (Context->RequestToken));\r
\r
- RequestHeader[HdrHost].FieldName = "Host";\r
- RequestHeader[HdrConn].FieldName = "Connection";\r
+ RequestHeader[HdrHost].FieldName = "Host";\r
+ RequestHeader[HdrConn].FieldName = "Connection";\r
RequestHeader[HdrAgent].FieldName = "User-Agent";\r
\r
Host = (CHAR16 *)Context->ServerAddrAndProto;\r
//\r
Host++;\r
\r
- StringSize = StrLen (Host) + 1;\r
+ StringSize = StrLen (Host) + 1;\r
RequestHeader[HdrHost].FieldValue = AllocatePool (StringSize);\r
if (!RequestHeader[HdrHost].FieldValue) {\r
return EFI_OUT_OF_RESOURCES;\r
StringSize\r
);\r
\r
- RequestHeader[HdrConn].FieldValue = "close";\r
+ RequestHeader[HdrConn].FieldValue = "close";\r
RequestHeader[HdrAgent].FieldValue = USER_AGENT_HDR;\r
- RequestMessage.HeaderCount = HdrMax;\r
+ RequestMessage.HeaderCount = HdrMax;\r
\r
RequestData.Method = HttpMethodGet;\r
- RequestData.Url = DownloadUrl;\r
+ RequestData.Url = DownloadUrl;\r
\r
RequestMessage.Data.Request = &RequestData;\r
- RequestMessage.Headers = RequestHeader;\r
- RequestMessage.BodyLength = 0;\r
- RequestMessage.Body = NULL;\r
+ RequestMessage.Headers = RequestHeader;\r
+ RequestMessage.BodyLength = 0;\r
+ RequestMessage.Body = NULL;\r
Context->RequestToken.Event = NULL;\r
\r
//\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
- Context->RequestToken.Status = EFI_SUCCESS;\r
+ Context->RequestToken.Status = EFI_SUCCESS;\r
Context->RequestToken.Message = &RequestMessage;\r
- gRequestCallbackComplete = FALSE;\r
- Status = Context->Http->Request (Context->Http, &Context->RequestToken);\r
+ gRequestCallbackComplete = FALSE;\r
+ Status = Context->Http->Request (Context->Http, &Context->RequestToken);\r
if (EFI_ERROR (Status)) {\r
goto Error;\r
}\r
IN CHAR8 *Buffer\r
)\r
{\r
- CHAR16 Progress[HTTP_PROGRESS_MESSAGE_SIZE];\r
- UINTN NbOfKb;\r
- UINTN Index;\r
- UINTN LastStep;\r
- UINTN Step;\r
- EFI_STATUS Status;\r
+ CHAR16 Progress[HTTP_PROGRESS_MESSAGE_SIZE];\r
+ UINTN NbOfKb;\r
+ UINTN Index;\r
+ UINTN LastStep;\r
+ UINTN Step;\r
+ EFI_STATUS Status;\r
\r
LastStep = 0;\r
- Step = 0;\r
+ Step = 0;\r
\r
ShellSetFilePosition (mFileHandle, Context->LastReportedNbOfBytes);\r
Status = ShellWriteFile (mFileHandle, &DownloadLen, Buffer);\r
}\r
\r
Context->ContentDownloaded += DownloadLen;\r
- NbOfKb = Context->ContentDownloaded >> 10;\r
+ NbOfKb = Context->ContentDownloaded >> 10;\r
\r
Progress[0] = L'\0';\r
if (Context->ContentLength) {\r
- LastStep = (Context->LastReportedNbOfBytes * HTTP_PROGRESS_SLIDER_STEPS) /\r
- Context->ContentLength;\r
- Step = (Context->ContentDownloaded * HTTP_PROGRESS_SLIDER_STEPS) /\r
- Context->ContentLength;\r
+ LastStep = (Context->LastReportedNbOfBytes * HTTP_PROGRESS_SLIDER_STEPS) /\r
+ Context->ContentLength;\r
+ Step = (Context->ContentDownloaded * HTTP_PROGRESS_SLIDER_STEPS) /\r
+ Context->ContentLength;\r
}\r
\r
Context->LastReportedNbOfBytes = Context->ContentDownloaded;\r
NbOfKb\r
);\r
\r
-\r
ShellPrintEx (-1, -1, L"%s", Progress);\r
\r
return EFI_SUCCESS;\r
STATIC\r
EFI_STATUS\r
SetHostURI (\r
- IN CHAR8 *Location,\r
- IN HTTP_DOWNLOAD_CONTEXT *Context,\r
- IN CHAR16 *DownloadUrl\r
+ IN CHAR8 *Location,\r
+ IN HTTP_DOWNLOAD_CONTEXT *Context,\r
+ IN CHAR16 *DownloadUrl\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN StringSize;\r
- UINTN FirstStep;\r
- UINTN Idx;\r
- UINTN Step;\r
- CHAR8 *Walker;\r
- CHAR16 *Temp;\r
- CHAR8 *Tmp;\r
- CHAR16 *Url;\r
- BOOLEAN IsAbEmptyUrl;\r
-\r
- Tmp = NULL;\r
- Url = NULL;\r
+ EFI_STATUS Status;\r
+ UINTN StringSize;\r
+ UINTN FirstStep;\r
+ UINTN Idx;\r
+ UINTN Step;\r
+ CHAR8 *Walker;\r
+ CHAR16 *Temp;\r
+ CHAR8 *Tmp;\r
+ CHAR16 *Url;\r
+ BOOLEAN IsAbEmptyUrl;\r
+\r
+ Tmp = NULL;\r
+ Url = NULL;\r
IsAbEmptyUrl = FALSE;\r
- FirstStep = 0;\r
+ FirstStep = 0;\r
\r
StringSize = (AsciiStrSize (Location) * sizeof (CHAR16));\r
- Url = AllocateZeroPool (StringSize);\r
+ Url = AllocateZeroPool (StringSize);\r
if (!Url) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
);\r
\r
if (EFI_ERROR (Status)) {\r
- goto Error;\r
+ goto Error;\r
}\r
\r
//\r
}\r
\r
if (AsciiStrStr (Location, "://") || IsAbEmptyUrl) {\r
- Idx = 0;\r
+ Idx = 0;\r
Walker = Location;\r
\r
for (Step = FirstStep; Step < 2; Step++) {\r
- for (; *Walker != '/' && *Walker != '\0'; Walker++) {\r
+ for ( ; *Walker != '/' && *Walker != '\0'; Walker++) {\r
Idx++;\r
}\r
\r
//\r
// Skip "//"\r
//\r
- Idx += 2;\r
+ Idx += 2;\r
Walker += 2;\r
}\r
}\r
//\r
// Location now points to Uri\r
//\r
- Location += Idx;\r
+ Location += Idx;\r
StringSize = (Idx + 1) * sizeof (CHAR16);\r
\r
SHELL_FREE_NON_NULL (Context->ServerAddrAndProto);\r
\r
SHELL_FREE_NON_NULL (Context->Uri);\r
\r
- StringSize = AsciiStrSize (Location) * sizeof (CHAR16);\r
+ StringSize = AsciiStrSize (Location) * sizeof (CHAR16);\r
Context->Uri = AllocateZeroPool (StringSize);\r
if (!Context->Uri) {\r
Status = EFI_OUT_OF_RESOURCES;\r
EFI_STATUS\r
EFIAPI\r
ParseMsg (\r
- IN HTTP_BODY_PARSE_EVENT EventType,\r
- IN CHAR8 *Data,\r
- IN UINTN Length,\r
- IN VOID *Context\r
+ IN HTTP_BODY_PARSE_EVENT EventType,\r
+ IN CHAR8 *Data,\r
+ IN UINTN Length,\r
+ IN VOID *Context\r
)\r
{\r
- if ((Data == NULL)\r
- || (EventType == BodyParseEventOnComplete)\r
- || (Context == NULL))\r
+ if ( (Data == NULL)\r
+ || (EventType == BodyParseEventOnComplete)\r
+ || (Context == NULL))\r
{\r
return EFI_SUCCESS;\r
}\r
return SavePortion (Context, Length, Data);\r
}\r
\r
-\r
/**\r
Get HTTP server response and collect the whole body as a file.\r
Set appropriate status in Context (REQ_OK, REQ_REPEAT, REQ_ERROR).\r
STATIC\r
EFI_STATUS\r
GetResponse (\r
- IN HTTP_DOWNLOAD_CONTEXT *Context,\r
- IN CHAR16 *DownloadUrl\r
+ IN HTTP_DOWNLOAD_CONTEXT *Context,\r
+ IN CHAR16 *DownloadUrl\r
)\r
{\r
- EFI_HTTP_RESPONSE_DATA ResponseData;\r
- EFI_HTTP_MESSAGE ResponseMessage;\r
- EFI_HTTP_HEADER *Header;\r
- EFI_STATUS Status;\r
- VOID *MsgParser;\r
- EFI_TIME StartTime;\r
- EFI_TIME EndTime;\r
- CONST CHAR16 *Desc;\r
- UINTN ElapsedSeconds;\r
- BOOLEAN IsTrunked;\r
- BOOLEAN CanMeasureTime;\r
+ EFI_HTTP_RESPONSE_DATA ResponseData;\r
+ EFI_HTTP_MESSAGE ResponseMessage;\r
+ EFI_HTTP_HEADER *Header;\r
+ EFI_STATUS Status;\r
+ VOID *MsgParser;\r
+ EFI_TIME StartTime;\r
+ EFI_TIME EndTime;\r
+ CONST CHAR16 *Desc;\r
+ UINTN ElapsedSeconds;\r
+ BOOLEAN IsTrunked;\r
+ BOOLEAN CanMeasureTime;\r
\r
ZeroMem (&ResponseData, sizeof (ResponseData));\r
ZeroMem (&ResponseMessage, sizeof (ResponseMessage));\r
ZeroMem (&Context->ResponseToken, sizeof (Context->ResponseToken));\r
IsTrunked = FALSE;\r
\r
- ResponseMessage.Body = Context->Buffer;\r
- Context->ResponseToken.Status = EFI_SUCCESS;\r
+ ResponseMessage.Body = Context->Buffer;\r
+ Context->ResponseToken.Status = EFI_SUCCESS;\r
Context->ResponseToken.Message = &ResponseMessage;\r
- Context->ContentLength = 0;\r
- Context->Status = REQ_OK;\r
- Status = EFI_SUCCESS;\r
- MsgParser = NULL;\r
- ResponseData.StatusCode = HTTP_STATUS_UNSUPPORTED_STATUS;\r
- ResponseMessage.Data.Response = &ResponseData;\r
- Context->ResponseToken.Event = NULL;\r
- CanMeasureTime = FALSE;\r
+ Context->ContentLength = 0;\r
+ Context->Status = REQ_OK;\r
+ Status = EFI_SUCCESS;\r
+ MsgParser = NULL;\r
+ ResponseData.StatusCode = HTTP_STATUS_UNSUPPORTED_STATUS;\r
+ ResponseMessage.Data.Response = &ResponseData;\r
+ Context->ResponseToken.Event = NULL;\r
+ CanMeasureTime = FALSE;\r
if (Context->Flags & DL_FLAG_TIME) {\r
ZeroMem (&StartTime, sizeof (StartTime));\r
CanMeasureTime = !EFI_ERROR (gRT->GetTime (&StartTime, NULL));\r
do {\r
SHELL_FREE_NON_NULL (ResponseMessage.Headers);\r
ResponseMessage.HeaderCount = 0;\r
- gResponseCallbackComplete = FALSE;\r
- ResponseMessage.BodyLength = Context->BufferSize;\r
+ gResponseCallbackComplete = FALSE;\r
+ ResponseMessage.BodyLength = Context->BufferSize;\r
\r
if (ShellGetExecutionBreakFlag ()) {\r
Status = EFI_ABORTED;\r
\r
HttpGetEntityLength (MsgParser, &Context->ContentLength);\r
\r
- if (ResponseData.StatusCode >= HTTP_STATUS_400_BAD_REQUEST\r
- && (ResponseData.StatusCode != HTTP_STATUS_308_PERMANENT_REDIRECT))\r
+ if ( (ResponseData.StatusCode >= HTTP_STATUS_400_BAD_REQUEST)\r
+ && (ResponseData.StatusCode != HTTP_STATUS_308_PERMANENT_REDIRECT))\r
{\r
//\r
// Server reported an error via Response code.\r
// This gives an RFC HTTP error.\r
//\r
Context->Status = ShellStrToUintn (Desc);\r
- Status = ENCODE_ERROR (Context->Status);\r
+ Status = ENCODE_ERROR (Context->Status);\r
}\r
}\r
}\r
ResponseMessage.Body\r
);\r
}\r
- } while (!HttpIsMessageComplete (MsgParser)\r
- && !EFI_ERROR (Status)\r
- && ResponseMessage.BodyLength);\r
+ } while ( !HttpIsMessageComplete (MsgParser)\r
+ && !EFI_ERROR (Status)\r
+ && ResponseMessage.BodyLength);\r
\r
- if (Context->Status != REQ_NEED_REPEAT\r
- && Status == EFI_SUCCESS\r
- && CanMeasureTime)\r
+ if ( (Context->Status != REQ_NEED_REPEAT)\r
+ && (Status == EFI_SUCCESS)\r
+ && CanMeasureTime)\r
{\r
if (!EFI_ERROR (gRT->GetTime (&EndTime, NULL))) {\r
ElapsedSeconds = EfiTimeToEpoch (&EndTime) - EfiTimeToEpoch (&StartTime);\r
STATIC\r
EFI_STATUS\r
DownloadFile (\r
- IN HTTP_DOWNLOAD_CONTEXT *Context,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN CHAR16 *NicName\r
+ IN HTTP_DOWNLOAD_CONTEXT *Context,\r
+ IN EFI_HANDLE ControllerHandle,\r
+ IN CHAR16 *NicName\r
)\r
{\r
- EFI_STATUS Status;\r
- CHAR16 *DownloadUrl;\r
- UINTN UrlSize;\r
- EFI_HANDLE HttpChildHandle;\r
+ EFI_STATUS Status;\r
+ CHAR16 *DownloadUrl;\r
+ UINTN UrlSize;\r
+ EFI_HANDLE HttpChildHandle;\r
\r
ASSERT (Context);\r
if (Context == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- DownloadUrl = NULL;\r
+ DownloadUrl = NULL;\r
HttpChildHandle = NULL;\r
\r
Context->Buffer = AllocatePool (Context->BufferSize);\r
&gEfiHttpServiceBindingProtocolGuid,\r
&gEfiHttpProtocolGuid,\r
&HttpChildHandle,\r
- (VOID**)&Context->Http\r
+ (VOID **)&Context->Http\r
);\r
\r
if (EFI_ERROR (Status)) {\r
goto ON_EXIT;\r
}\r
\r
- UrlSize = 0;\r
+ UrlSize = 0;\r
DownloadUrl = StrnCatGrow (\r
&DownloadUrl,\r
&UrlSize,\r
&DownloadUrl,\r
&UrlSize,\r
Context->Uri,\r
- StrLen (Context->Uri));\r
+ StrLen (Context->Uri)\r
+ );\r
\r
PRINT_HII (STRING_TOKEN (STR_HTTP_DOWNLOADING), DownloadUrl);\r
\r
if (Status) {\r
goto ON_EXIT;\r
}\r
-\r
} while (Context->Status == REQ_NEED_REPEAT);\r
\r
if (Context->Status) {\r
**/\r
EFI_HII_HANDLE\r
InitializeHiiPackage (\r
- IN EFI_HANDLE ImageHandle\r
+ IN EFI_HANDLE ImageHandle\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_HII_PACKAGE_LIST_HEADER *PackageList;\r
- EFI_HII_HANDLE HiiHandle;\r
+ EFI_STATUS Status;\r
+ EFI_HII_PACKAGE_LIST_HEADER *PackageList;\r
+ EFI_HII_HANDLE HiiHandle;\r
\r
//\r
// Retrieve HII package list from ImageHandle.\r
// Publish HII package list to HII Database.\r
//\r
Status = gHiiDatabase->NewPackageList (\r
- gHiiDatabase,\r
- PackageList,\r
- NULL,\r
- &HiiHandle\r
- );\r
+ gHiiDatabase,\r
+ PackageList,\r
+ NULL,\r
+ &HiiHandle\r
+ );\r
ASSERT_EFI_ERROR (Status);\r
if (EFI_ERROR (Status)) {\r
return NULL;\r