Luanti 5.11.0-dev
 
Loading...
Searching...
No Matches
httpfetch.h File Reference
#include <vector>
#include "util/string.h"
#include "config.h"
+ Include dependency graph for httpfetch.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  HTTPFetchRequest
 
struct  HTTPFetchResult
 

Macros

#define HTTPFETCH_DISCARD   0
 
#define HTTPFETCH_SYNC   1
 
#define HTTPFETCH_PRINT_ERR   2
 
#define HTTPFETCH_CID_START   3
 

Enumerations

enum  HttpMethod : u8 { HTTP_GET , HTTP_POST , HTTP_PUT , HTTP_DELETE }
 

Functions

void httpfetch_init (int parallel_limit)
 
void httpfetch_cleanup ()
 
void httpfetch_async (const HTTPFetchRequest &fetch_request)
 
bool httpfetch_async_get (u64 caller, HTTPFetchResult &fetch_result)
 
u64 httpfetch_caller_alloc ()
 
u64 httpfetch_caller_alloc_secure ()
 
void httpfetch_caller_free (u64 caller)
 
bool httpfetch_sync_interruptible (const HTTPFetchRequest &fetch_request, HTTPFetchResult &fetch_result, long interval=100)
 

Macro Definition Documentation

◆ HTTPFETCH_CID_START

#define HTTPFETCH_CID_START   3

◆ HTTPFETCH_DISCARD

◆ HTTPFETCH_PRINT_ERR

#define HTTPFETCH_PRINT_ERR   2

◆ HTTPFETCH_SYNC

#define HTTPFETCH_SYNC   1

Referenced by GUIEngine::downloadFile().

Enumeration Type Documentation

◆ HttpMethod

enum HttpMethod : u8
Enumerator
HTTP_GET 
HTTP_POST 
HTTP_PUT 
HTTP_DELETE 

Function Documentation

◆ httpfetch_async()

void httpfetch_async ( const HTTPFetchRequest & fetch_request)

References g_httpfetch_thread.

Referenced by httpfetch_sync_interruptible(), ClientMediaDownloader::initialStep(), ModApiHttp::l_http_fetch_async(), ServerList::sendAnnounce(), SingleMediaDownloader::startRemoteMediaTransfer(), and ClientMediaDownloader::startRemoteMediaTransfers().

+ Here is the caller graph for this function:

◆ httpfetch_async_get()

bool httpfetch_async_get ( u64 caller,
HTTPFetchResult & fetch_result )

References g_httpfetch_mutex, and g_httpfetch_results.

Referenced by httpfetch_sync_interruptible(), ModApiHttp::l_http_fetch_async_get(), ClientMediaDownloader::step(), and SingleMediaDownloader::step().

+ Here is the caller graph for this function:

◆ httpfetch_caller_alloc()

u64 httpfetch_caller_alloc ( )

References FATAL_ERROR, g_httpfetch_mutex, g_httpfetch_results, HTTPFETCH_CID_START, and verbosestream.

Referenced by ClientMediaDownloader::initialStep(), and SingleMediaDownloader::initialStep().

+ Here is the caller graph for this function:

◆ httpfetch_caller_alloc_secure()

u64 httpfetch_caller_alloc_secure ( )

References FATAL_ERROR, g_callerid_randomness, g_httpfetch_mutex, g_httpfetch_results, HTTPFETCH_CID_START, HTTPFETCH_DISCARD, PcgRandom::next(), and verbosestream.

Referenced by httpfetch_sync_interruptible(), and ModApiHttp::read_http_fetch_request().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ httpfetch_caller_free()

void httpfetch_caller_free ( u64 caller)

References g_httpfetch_mutex, g_httpfetch_results, HTTPFETCH_DISCARD, httpfetch_request_clear(), and verbosestream.

Referenced by ClientMediaDownloader::~ClientMediaDownloader(), SingleMediaDownloader::~SingleMediaDownloader(), and httpfetch_sync_interruptible().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ httpfetch_cleanup()

void httpfetch_cleanup ( )

References g_httpfetch_thread, and verbosestream.

Referenced by uninit_common().

+ Here is the caller graph for this function:

◆ httpfetch_init()

void httpfetch_init ( int parallel_limit)

References FATAL_ERROR_IF, g_callerid_randomness, g_httpfetch_thread, porting::secure_rand_fill_buf(), and verbosestream.

Referenced by init_common().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ httpfetch_sync_interruptible()

bool httpfetch_sync_interruptible ( const HTTPFetchRequest & fetch_request,
HTTPFetchResult & fetch_result,
long interval = 100 )

References HTTPFetchRequest::caller, Thread::getCurrentThread(), httpfetch_async(), httpfetch_async_get(), httpfetch_caller_alloc_secure(), httpfetch_caller_free(), sleep_ms, and HTTPFetchRequest::url.

Referenced by GUIEngine::downloadFile(), and ModApiHttp::l_http_fetch_sync().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: