X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=libcurl.h;h=c5e55dd3707d4d17c008ee5e32a48e1d6dcc6604;hb=b3c18f5f8496e077eb2d16077f4775b178f9b086;hp=f92a23875cf22e58294f95c79f098794a25e979b;hpb=ea9b3b9a3b5e29dffb47faf7a8bf2fe61aa61517;p=xonotic%2Fdarkplaces.git diff --git a/libcurl.h b/libcurl.h index f92a2387..c5e55dd3 100644 --- a/libcurl.h +++ b/libcurl.h @@ -1,15 +1,32 @@ -void Curl_Run(); -qboolean Curl_Running(); -void Curl_Begin(const char *URL, const char *name, qboolean ispak, qboolean forthismap); -void Curl_Init(); -void Curl_Init_Commands(); -void Curl_Shutdown(); -void Curl_CancelAll(); -void Curl_Clear_forthismap(); +enum +{ + CURLCBSTATUS_OK = 0, + CURLCBSTATUS_FAILED = -1, // failed for generic reason (e.g. buffer too small) + CURLCBSTATUS_ABORTED = -2, // aborted by curl --cancel + CURLCBSTATUS_SERVERERROR = -3, // only used if no HTTP status code is available + CURLCBSTATUS_UNKNOWN = -4 // should never happen +}; +typedef void (*curl_callback_t) (int status, size_t length_received, unsigned char *buffer, void *cbdata); +// code is one of the CURLCBSTATUS constants, or the HTTP error code (when > 0). + +void Curl_Run(void); +qboolean Curl_Running(void); +qboolean Curl_Begin_ToFile(const char *URL, double maxspeed, const char *name, qboolean ispak, qboolean forthismap); + +qboolean Curl_Begin_ToMemory(const char *URL, double maxspeed, unsigned char *buf, size_t bufsize, curl_callback_t callback, void *cbdata); +qboolean Curl_Begin_ToMemory_POST(const char *URL, const char *extraheaders, double maxspeed, const char *post_content_type, const unsigned char *postbuf, size_t postbufsize, unsigned char *buf, size_t bufsize, curl_callback_t callback, void *cbdata); + +void Curl_Init(void); +void Curl_Init_Commands(void); +void Curl_Shutdown(void); +void Curl_CancelAll(void); +void Curl_Clear_forthismap(void); +qboolean Curl_Have_forthismap(void); +void Curl_Register_predownload(void); -void Curl_ClearRequirements(); +void Curl_ClearRequirements(void); void Curl_RequireFile(const char *filename); -void Curl_SendRequirements(); +void Curl_SendRequirements(void); typedef struct Curl_downloadinfo_s { @@ -19,7 +36,7 @@ typedef struct Curl_downloadinfo_s qboolean queued; } Curl_downloadinfo_t; -Curl_downloadinfo_t *Curl_GetDownloadInfo(int *nDownloads, const char **additional_info); +Curl_downloadinfo_t *Curl_GetDownloadInfo(int *nDownloads, const char **additional_info, char *addinfo, size_t addinfolength); // this may and should be Z_Free()ed // the result is actually an array // an additional info string may be returned in additional_info as a