83 IN EFI_HTTP_BOOT_CALLBACK_PROTOCOL *This,
84 IN EFI_HTTP_BOOT_CALLBACK_DATA_TYPE DataType,
87 IN VOID *Data OPTIONAL
91 EFI_HTTP_MESSAGE *HttpMessage;
93 STATIC BOOLEAN HasDmgExtension = FALSE;
109 case HttpBootHttpRequest:
111 HttpMessage = (EFI_HTTP_MESSAGE *)Data;
112 if (HttpMessage->Data.Request->Url != NULL) {
120 HttpMessage->Data.Request->Url,
121 HttpMessage->Data.Request->Method == HttpMethodHead,
124 if (EFI_ERROR (Status)) {
140 case HttpBootHttpResponse:
141 if ((Data != NULL) && HasDmgExtension) {
145 HasDmgExtension = FALSE;
147 HttpMessage = (EFI_HTTP_MESSAGE *)Data;
148 Header = HttpFindHeader (HttpMessage->HeaderCount, HttpMessage->Headers, HTTP_HEADER_CONTENT_TYPE);
151 Header = HttpMessage->Headers;
152 ++HttpMessage->HeaderCount;
153 HttpMessage->Headers = AllocatePool (HttpMessage->HeaderCount * sizeof (HttpMessage->Headers[0]));
154 if (HttpMessage->Headers == NULL) {
155 return EFI_OUT_OF_RESOURCES;
158 CopyMem (HttpMessage->Headers,
Header, HttpMessage->HeaderCount * sizeof (HttpMessage->Headers[0]));
159 Header = &HttpMessage->Headers[HttpMessage->HeaderCount - 1];
160 Header->FieldValue = NULL;
161 Header->FieldName = AllocateCopyPool (
L_STR_SIZE (HTTP_HEADER_CONTENT_TYPE), HTTP_HEADER_CONTENT_TYPE);
162 if (
Header->FieldName == NULL) {
163 return EFI_OUT_OF_RESOURCES;
168 FreePool (
Header->FieldValue);
169 Header->FieldValue = NULL;
173 if (
Header->FieldValue == NULL) {
175 if (
Header->FieldValue == NULL) {
176 return EFI_OUT_OF_RESOURCES;
205 EFI_HANDLE LoadFileHandle;
206 EFI_HTTP_BOOT_CALLBACK_PROTOCOL *HttpBootCallback;
208 LoadFileHandle = Context;
210 Status =
gBS->HandleProtocol (
212 &gEfiHttpBootCallbackProtocolGuid,
213 (VOID **)&HttpBootCallback
216 if (!EFI_ERROR (Status)) {
STATIC EFI_STATUS EFIAPI OpenNetworkBootHttpBootCallback(IN EFI_HTTP_BOOT_CALLBACK_PROTOCOL *This, IN EFI_HTTP_BOOT_CALLBACK_DATA_TYPE DataType, IN BOOLEAN Received, IN UINT32 DataLength, IN VOID *Data OPTIONAL)