#ifndef HTTPFETCH_HEADER
#define HTTPFETCH_HEADER
-#include <string>
#include <vector>
-#include <map>
+#include "util/string.h"
#include "config.h"
// Can be used in place of "caller" in asynchronous transfers to discard result
// POST fields. Fields are escaped properly.
// If this is empty a GET request is done instead.
- std::map<std::string, std::string> post_fields;
+ StringMap post_fields;
// Raw POST data, overrides post_fields.
std::string post_data;
// If not empty, should contain entries such as "Accept: text/html"
std::vector<std::string> extra_headers;
- //useragent to use
+ // useragent to use
std::string useragent;
HTTPFetchRequest();
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 &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 = fetch_request.caller;
- request_id = fetch_request.request_id;
}
-
};
// Initializes the httpfetch module
// 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.
// Performs a synchronous HTTP request. This blocks and therefore should
// only be used from background threads.
-void httpfetch_sync(const HTTPFetchRequest &fetch_request,
- HTTPFetchResult &fetch_result);
-
+void httpfetch_sync(const HTTPFetchRequest &fetch_request, HTTPFetchResult &fetch_result);
#endif // !HTTPFETCH_HEADER