X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fhttpfetch.h;h=29fb540d022f0755baca593a6644170321ff5f82;hb=9762650f978cc7bae78861b70a051b26cc5e2dc6;hp=aba7482c2686339fc523976ec085f7cabfd13bcd;hpb=b2dfde8c8c29d0b118ba9018be202de21bb28505;p=minetest.git diff --git a/src/httpfetch.h b/src/httpfetch.h index aba7482c2..29fb540d0 100644 --- a/src/httpfetch.h +++ b/src/httpfetch.h @@ -20,9 +20,8 @@ with this program; if not, write to the Free Software Foundation, Inc., #ifndef HTTPFETCH_HEADER #define HTTPFETCH_HEADER -#include #include -#include +#include "util/string.h" #include "config.h" // Can be used in place of "caller" in asynchronous transfers to discard result @@ -54,7 +53,7 @@ struct HTTPFetchRequest // POST fields. Fields are escaped properly. // If this is empty a GET request is done instead. - std::map post_fields; + StringMap post_fields; // Raw POST data, overrides post_fields. std::string post_data; @@ -62,7 +61,7 @@ struct HTTPFetchRequest // If not empty, should contain entries such as "Accept: text/html" std::vector extra_headers; - //useragent to use + // useragent to use std::string useragent; HTTPFetchRequest(); @@ -79,25 +78,16 @@ struct HTTPFetchResult unsigned long request_id; HTTPFetchResult() + : succeeded(false), timeout(false), response_code(0), data(""), + caller(HTTPFETCH_DISCARD), request_id(0) { - succeeded = false; - timeout = false; - response_code = 0; - data = ""; - caller = HTTPFETCH_DISCARD; - request_id = 0; } - HTTPFetchResult(const HTTPFetchRequest &fetchrequest) + HTTPFetchResult(const HTTPFetchRequest &fetch_request) + : succeeded(false), timeout(false), response_code(0), data(""), + caller(fetch_request.caller), request_id(fetch_request.request_id) { - succeeded = false; - timeout = false; - response_code = 0; - data = ""; - caller = fetchrequest.caller; - request_id = fetchrequest.request_id; } - }; // Initializes the httpfetch module @@ -107,16 +97,19 @@ void httpfetch_init(int parallel_limit); void httpfetch_cleanup(); // Starts an asynchronous HTTP fetch request -void httpfetch_async(const HTTPFetchRequest &fetchrequest); +void httpfetch_async(const HTTPFetchRequest &fetch_request); // If any fetch for the given caller ID is complete, removes it from the -// result queue, sets fetchresult and returns true. Otherwise returns false. -bool httpfetch_async_get(unsigned long caller, HTTPFetchResult &fetchresult); +// result queue, sets the fetch result and returns true. Otherwise returns false. +bool httpfetch_async_get(unsigned long caller, HTTPFetchResult &fetch_result); // Allocates a caller ID for httpfetch_async // Not required if you want to set caller = HTTPFETCH_DISCARD unsigned long httpfetch_caller_alloc(); +// Allocates a non-predictable caller ID for httpfetch_async +unsigned long httpfetch_caller_alloc_secure(); + // Frees a caller ID allocated with httpfetch_caller_alloc // Note: This can be expensive, because the httpfetch thread is told // to stop any ongoing fetches for the given caller. @@ -124,8 +117,6 @@ void httpfetch_caller_free(unsigned long caller); // Performs a synchronous HTTP request. This blocks and therefore should // only be used from background threads. -void httpfetch_sync(const HTTPFetchRequest &fetchrequest, - HTTPFetchResult &fetchresult); - +void httpfetch_sync(const HTTPFetchRequest &fetch_request, HTTPFetchResult &fetch_result); #endif // !HTTPFETCH_HEADER