![]() |
MHEG5
22.11.0
|
Manages the interface between HTTP component and curl library. More...
#include "http_platform.h"
#include <assert.h>
#include <string.h>
#include <curl/curl.h>
#include <openssl/ssl.h>
#include "dvb_misc.h"
#include "stb_memory.h"
#include "stb_os.h"
#include "glue_debug.h"
Classes | |
struct | AllocInfo_t |
struct | HttpClientInfo_tag |
struct | HttpCertList_tag |
Macros | |
#define | HTTP_IDLE_TIMEOUT 200 /* ms */ |
#define | MAX_USER_AGENT 256 |
#define | CHK_EASY(call) |
#define | DBG_ENTRY(x) |
#define | DBG_EXIT(x) |
Typedefs | |
typedef struct HttpClientInfo_tag * | HttpClientInfo_t |
typedef struct HttpCertList_tag * | HttpCertList_t |
Functions | |
E_HttpErr | HP_Initialise (void) |
Initialise the HTTP interface. More... | |
E_HttpErr | HP_SetUserAgent (U8BIT *user_agent) |
Set user agent for HTTP client. More... | |
E_HttpErr | HP_SetTimeout (U16BIT timeout) |
Set timeout (in seconds) for HTTP requests. The timeout applies to connections (i.e. the time it takes to connect to the server) as well as response time (i.e the time it takes to download the content). Between sending the request and receiving the first byte of the the response there is no timeout. More... | |
E_HttpErr | HP_CreateRequest (U8BIT *url, E_HttpRequestType type, void **handle) |
Create an HTTP request. The URL is provided, and is guaranteed to be either "http://..." or "https://..." The request type is also provided. Streaming request is the same as a GET request, except that a "Range:" header is also allowed for it. More... | |
E_HttpErr | HP_StartRequest (void *handle) |
Start an HTTP request. More... | |
E_HttpErr | HP_ResumeRequest (void *handle) |
Resume an HTTP request. More... | |
E_HttpErr | HP_StopRequest (void *handle) |
Stop an HTTP request. More... | |
E_HttpErr | HP_DestroyRequest (void *handle) |
Destroy an HTTP request. More... | |
E_HttpErr | HP_SetUserData (void *handle, void *userdata) |
Set user data associated with an HTTP request. More... | |
E_HttpErr | HP_AddHeader (void *handle, U8BIT *header) |
Add HTTP header to HTTP request. More... | |
E_HttpErr | HP_SetPostData (void *handle, U8BIT *postdata) |
Set POST data for an HTTP request. More... | |
E_HttpErr | HP_SetRange (void *handle, U8BIT *range) |
Set "Range:" header for an HTTP request. More... | |
E_HttpErr | HP_GetRedirectUrl (void *handle, U8BIT **url) |
Get redirection URL for HTTP request. More... | |
E_HttpErr | HP_AddTlsCertificate (U8BIT *cert, U32BIT len) |
Add a certificate for TLS connections. More... | |
E_HttpErr | HP_ClearTlsCertificates (void) |
Clear TLS certificates. More... | |
E_HttpErr | HP_WaitForAction (void) |
Wait until there is some activity on one (or more) of the HTTP requests, or until some other condition is met. The exact details depend on the HTTP client. More... | |
E_HttpErr | HP_Process (U16BIT *active_count) |
Process HTTP requests. This may cause request callbacks to be called. More... | |
E_HttpErr | HP_Terminate (void) |
Terminate the HTTP interface. More... | |
Manages the interface between HTTP component and curl library.
#define CHK_EASY | ( | call | ) |
E_HttpErr HP_AddHeader | ( | void * | handle, |
U8BIT * | header | ||
) |
Add HTTP header to HTTP request.
handle | The handle of the request |
header | Header to add (null-terminated string) |
E_HttpErr HP_AddTlsCertificate | ( | U8BIT * | cert, |
U32BIT | len | ||
) |
Add a certificate for TLS connections.
cert | Certificate data (X.509 DER format) |
len | Certificate length |
E_HttpErr HP_ClearTlsCertificates | ( | void | ) |
Clear TLS certificates.
E_HttpErr HP_CreateRequest | ( | U8BIT * | url, |
E_HttpRequestType | type, | ||
void ** | handle | ||
) |
Create an HTTP request. The URL is provided, and is guaranteed to be either "http://..." or "https://..." The request type is also provided. Streaming request is the same as a GET request, except that a "Range:" header is also allowed for it.
url | URL for request |
type | Request type |
handle | New request handle, or NULL if it cannot be created |
E_HttpErr HP_DestroyRequest | ( | void * | handle | ) |
Destroy an HTTP request.
handle | The handle of the request to destroy |
E_HttpErr HP_GetRedirectUrl | ( | void * | handle, |
U8BIT ** | url | ||
) |
Get redirection URL for HTTP request.
handle | The handle of the HTTP request |
url | Redirection URL |
E_HttpErr HP_Initialise | ( | void | ) |
Initialise the HTTP interface.
E_HttpErr HP_Process | ( | U16BIT * | active_count | ) |
Process HTTP requests. This may cause request callbacks to be called.
active_count | Number of active requests |
E_HttpErr HP_ResumeRequest | ( | void * | handle | ) |
Resume an HTTP request.
handle | The handle of the request to resume |
E_HttpErr HP_SetPostData | ( | void * | handle, |
U8BIT * | postdata | ||
) |
Set POST data for an HTTP request.
handle | The handle of the request |
postdata | Null-terminated string containing the POST data |
E_HttpErr HP_SetRange | ( | void * | handle, |
U8BIT * | range | ||
) |
Set "Range:" header for an HTTP request.
handle | The handle of the request |
range | Null-terminated string containing the range details |
E_HttpErr HP_SetTimeout | ( | U16BIT | timeout | ) |
Set timeout (in seconds) for HTTP requests. The timeout applies to connections (i.e. the time it takes to connect to the server) as well as response time (i.e the time it takes to download the content). Between sending the request and receiving the first byte of the the response there is no timeout.
timeout | Request timeout in seconds |
E_HttpErr HP_SetUserAgent | ( | U8BIT * | user_agent | ) |
Set user agent for HTTP client.
user_agent | User agent string |
E_HttpErr HP_SetUserData | ( | void * | handle, |
void * | userdata | ||
) |
Set user data associated with an HTTP request.
handle | The handle of the request |
userdata | User data to be associated with the request |
E_HttpErr HP_StartRequest | ( | void * | handle | ) |
Start an HTTP request.
handle | The handle of the request to start |
E_HttpErr HP_StopRequest | ( | void * | handle | ) |
Stop an HTTP request.
handle | The handle of the request to stop |
E_HttpErr HP_Terminate | ( | void | ) |
Terminate the HTTP interface.
E_HttpErr HP_WaitForAction | ( | void | ) |
Wait until there is some activity on one (or more) of the HTTP requests, or until some other condition is met. The exact details depend on the HTTP client.