mirror of
				https://git.proxmox.com/git/mirror_edk2
				synced 2025-10-27 10:50:43 +00:00 
			
		
		
		
	 e2d662c313
			
		
	
	
		e2d662c313
		
	
	
	
	
		
			
			UINTN is unsigned integer, so it's pointless to compare it with zero. Cc: Bi Dandan <dandan.bi@intel.com> Cc: Zhang Lubo <lubo.zhang@intel.com> Cc: Ye Ting <ting.ye@intel.com> Cc: Fu Siyuan <siyuan.fu@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Wu Jiaxin <jiaxin.wu@intel.com> Reviewed-by: Zhang Lubo <lubo.zhang@intel.com>
		
			
				
	
	
		
			92 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			92 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
| Header file for HttpLib.
 | |
| 
 | |
|   Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.<BR>
 | |
|   (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
 | |
| 
 | |
|   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.
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _DXE_HTTP_LIB_H_
 | |
| #define _DXE_HTTP_LIB_H_
 | |
| 
 | |
| #include <Uefi.h>
 | |
| #include <Library/NetLib.h>
 | |
| #include <Library/HttpLib.h>
 | |
| #include <Library/BaseLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| #include <Library/MemoryAllocationLib.h>
 | |
| #include <Library/UefiBootServicesTableLib.h>
 | |
| #include <IndustryStandard/Http11.h>
 | |
| #include <Protocol/HttpUtilities.h>
 | |
| 
 | |
| #define BIT(x)  (1 << x)
 | |
| 
 | |
| #define HTTP_VERSION_CRLF_STR  " HTTP/1.1\r\n"
 | |
| #define EMPTY_SPACE            " "
 | |
| 
 | |
| #define NET_IS_HEX_CHAR(Ch)   \
 | |
|   ((('0' <= (Ch)) && ((Ch) <= '9')) ||  \
 | |
|    (('A' <= (Ch)) && ((Ch) <= 'F')) ||  \
 | |
|    (('a' <= (Ch)) && ((Ch) <= 'f')))
 | |
| 
 | |
| //
 | |
| // Field index of the HTTP URL parse result.
 | |
| //
 | |
| #define   HTTP_URI_FIELD_SCHEME           0
 | |
| #define   HTTP_URI_FIELD_AUTHORITY        1
 | |
| #define   HTTP_URI_FIELD_PATH             2
 | |
| #define   HTTP_URI_FIELD_QUERY            3
 | |
| #define   HTTP_URI_FIELD_FRAGMENT         4
 | |
| #define   HTTP_URI_FIELD_USERINFO         5
 | |
| #define   HTTP_URI_FIELD_HOST             6
 | |
| #define   HTTP_URI_FIELD_PORT             7
 | |
| #define   HTTP_URI_FIELD_MAX              8
 | |
| 
 | |
| #define   HTTP_URI_PORT_MAX_NUM           65535
 | |
| 
 | |
| //
 | |
| // Structure to store the parse result of a HTTP URL.
 | |
| //
 | |
| typedef struct {
 | |
|   UINT32      Offset;
 | |
|   UINT32      Length;
 | |
| } HTTP_URL_FILED_DATA;
 | |
| 
 | |
| typedef struct {
 | |
|   UINT16                  FieldBitMap;
 | |
|   HTTP_URL_FILED_DATA     FieldData[HTTP_URI_FIELD_MAX];
 | |
| } HTTP_URL_PARSER;
 | |
| 
 | |
| typedef enum {
 | |
|   UrlParserUrlStart,
 | |
|   UrlParserScheme,
 | |
|   UrlParserSchemeColon,            // ":"
 | |
|   UrlParserSchemeColonSlash,       // ":/"
 | |
|   UrlParserSchemeColonSlashSlash,  // "://"
 | |
|   UrlParserAuthority,
 | |
|   UrlParserAtInAuthority,
 | |
|   UrlParserPath,
 | |
|   UrlParserQueryStart,    // "?"
 | |
|   UrlParserQuery,
 | |
|   UrlParserFragmentStart, // "#"
 | |
|   UrlParserFragment,
 | |
|   UrlParserUserInfo,
 | |
|   UrlParserHostStart,     // "@"
 | |
|   UrlParserHost,
 | |
|   UrlParserHostIpv6,      // "["(Ipv6 address) "]"
 | |
|   UrlParserPortStart,     // ":"
 | |
|   UrlParserPort,
 | |
|   UrlParserStateMax
 | |
| } HTTP_URL_PARSE_STATE;
 | |
| 
 | |
| #endif
 | |
| 
 |