XenevaOS
Loading...
Searching...
No Matches
Classes | Macros | Typedefs | Variables
HttpUtilities.h File Reference
#include <Protocol/Http.h>
Include dependency graph for HttpUtilities.h:

Go to the source code of this file.

Classes

struct  _EFI_HTTP_UTILITIES_PROTOCOL
 

Macros

#define EFI_HTTP_UTILITIES_PROTOCOL_GUID
 

Typedefs

typedef struct _EFI_HTTP_UTILITIES_PROTOCOL EFI_HTTP_UTILITIES_PROTOCOL
 
typedef EFI_STATUS(EFIAPIEFI_HTTP_UTILS_BUILD) (IN EFI_HTTP_UTILITIES_PROTOCOL *This, IN UINTN SeedMessageSize, IN VOID *SeedMessage, OPTIONAL IN UINTN DeleteCount, IN CHAR8 *DeleteList[], OPTIONAL IN UINTN AppendCount, IN EFI_HTTP_HEADER *AppendList[], OPTIONAL OUT UINTN *NewMessageSize, OUT VOID **NewMessage)
 
typedef EFI_STATUS(EFIAPIEFI_HTTP_UTILS_PARSE) (IN EFI_HTTP_UTILITIES_PROTOCOL *This, IN CHAR8 *HttpMessage, IN UINTN HttpMessageSize, OUT EFI_HTTP_HEADER **HeaderFields, OUT UINTN *FieldCount)
 

Variables

EFI_GUID gEfiHttpUtilitiesProtocolGuid
 

Detailed Description

EFI HTTP Utilities protocol provides a platform independent abstraction for HTTP message comprehension.

Copyright (c) 2015, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Revision Reference:
This Protocol is introduced in UEFI Specification 2.5

Macro Definition Documentation

◆ EFI_HTTP_UTILITIES_PROTOCOL_GUID

#define EFI_HTTP_UTILITIES_PROTOCOL_GUID
Value:
{ \
0x3e35c163, 0x4074, 0x45dd, {0x43, 0x1e, 0x23, 0x98, 0x9d, 0xd8, 0x6b, 0x32 } \
}

Typedef Documentation

◆ EFI_HTTP_UTILITIES_PROTOCOL

◆ EFI_HTTP_UTILS_BUILD

typedef EFI_STATUS(EFIAPI * EFI_HTTP_UTILS_BUILD) (IN EFI_HTTP_UTILITIES_PROTOCOL *This, IN UINTN SeedMessageSize, IN VOID *SeedMessage, OPTIONAL IN UINTN DeleteCount, IN CHAR8 *DeleteList[], OPTIONAL IN UINTN AppendCount, IN EFI_HTTP_HEADER *AppendList[], OPTIONAL OUT UINTN *NewMessageSize, OUT VOID **NewMessage)

Create HTTP header based on a combination of seed header, fields to delete, and fields to append.

The Build() function is used to manage the headers portion of an HTTP message by providing the ability to add, remove, or replace HTTP headers.

Parameters
[in]ThisPointer to EFI_HTTP_UTILITIES_PROTOCOL instance.
[in]SeedMessageSizeSize of the initial HTTP header. This can be zero.
[in]SeedMessageInitial HTTP header to be used as a base for building a new HTTP header. If NULL, SeedMessageSize is ignored.
[in]DeleteCountNumber of null-terminated HTTP header field names in DeleteList.
[in]DeleteListList of null-terminated HTTP header field names to remove from SeedMessage. Only the field names are in this list because the field values are irrelevant to this operation.
[in]AppendCountNumber of header fields in AppendList.
[in]AppendListList of HTTP headers to populate NewMessage with. If SeedMessage is not NULL, AppendList will be appended to the existing list from SeedMessage in NewMessage.
[out]NewMessageSizePointer to number of header fields in NewMessage.
[out]NewMessagePointer to a new list of HTTP headers based on.
Return values
EFI_SUCCESSAdd, remove, and replace operations succeeded.
EFI_OUT_OF_RESOURCESCould not allocate memory for NewMessage.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: This is NULL.

◆ EFI_HTTP_UTILS_PARSE

typedef EFI_STATUS(EFIAPI * EFI_HTTP_UTILS_PARSE) (IN EFI_HTTP_UTILITIES_PROTOCOL *This, IN CHAR8 *HttpMessage, IN UINTN HttpMessageSize, OUT EFI_HTTP_HEADER **HeaderFields, OUT UINTN *FieldCount)

Parses HTTP header and produces an array of key/value pairs.

The Parse() function is used to transform data stored in HttpHeader into a list of fields paired with their corresponding values.

Parameters
[in]ThisPointer to EFI_HTTP_UTILITIES_PROTOCOL instance.
[in]HttpMessageContains raw unformatted HTTP header string.
[in]HttpMessageSizeSize of HTTP header.
[out]HeaderFieldsArray of key/value header pairs.
[out]FieldCountNumber of headers in HeaderFields.
Return values
EFI_SUCCESSAllocation succeeded.
EFI_NOT_STARTEDThis EFI HTTP Protocol instance has not been initialized.
EFI_INVALID_PARAMETEROne or more of the following conditions is TRUE: This is NULL. HttpMessage is NULL. HeaderFields is NULL. FieldCount is NULL.

Variable Documentation

◆ gEfiHttpUtilitiesProtocolGuid

EFI_GUID gEfiHttpUtilitiesProtocolGuid
extern