27#include "../qcommon/q_shared.h"
28#include "../qcommon/qcommon.h"
30#ifdef USE_LOCAL_HEADERS
31 #include "../curl-7.54.0/include/curl/curl.h"
33 #include <curl/curl.h>
38 #define DEFAULT_CURL_LIB "libcurl-4.dll"
39 #define ALTERNATE_CURL_LIB "libcurl-3.dll"
40#elif defined(__APPLE__)
41 #define DEFAULT_CURL_LIB "libcurl.dylib"
43 #define DEFAULT_CURL_LIB "libcurl.so.4"
44 #define ALTERNATE_CURL_LIB "libcurl.so.3"
47extern cvar_t *cl_cURLLib;
49extern char* (*qcurl_version)(void);
51extern CURL* (*qcurl_easy_init)(void);
52extern CURLcode (*qcurl_easy_setopt)(CURL *curl, CURLoption option, ...);
53extern CURLcode (*qcurl_easy_perform)(CURL *curl);
54extern void (*qcurl_easy_cleanup)(CURL *curl);
55extern CURLcode (*qcurl_easy_getinfo)(CURL *curl, CURLINFO info, ...);
56extern void (*qcurl_easy_reset)(CURL *curl);
57extern const char *(*qcurl_easy_strerror)(CURLcode);
59extern CURLM* (*qcurl_multi_init)(void);
60extern CURLMcode (*qcurl_multi_add_handle)(CURLM *multi_handle,
62extern CURLMcode (*qcurl_multi_remove_handle)(CURLM *multi_handle,
64extern CURLMcode (*qcurl_multi_fdset)(CURLM *multi_handle,
69extern CURLMcode (*qcurl_multi_perform)(CURLM *multi_handle,
70 int *running_handles);
71extern CURLMcode (*qcurl_multi_cleanup)(CURLM *multi_handle);
72extern CURLMsg *(*qcurl_multi_info_read)(CURLM *multi_handle,
74extern const char *(*qcurl_multi_strerror)(CURLMcode);
76#define qcurl_version curl_version
78#define qcurl_easy_init curl_easy_init
79#define qcurl_easy_setopt curl_easy_setopt
80#define qcurl_easy_perform curl_easy_perform
81#define qcurl_easy_cleanup curl_easy_cleanup
82#define qcurl_easy_getinfo curl_easy_getinfo
83#define qcurl_easy_duphandle curl_easy_duphandle
84#define qcurl_easy_reset curl_easy_reset
85#define qcurl_easy_strerror curl_easy_strerror
87#define qcurl_multi_init curl_multi_init
88#define qcurl_multi_add_handle curl_multi_add_handle
89#define qcurl_multi_remove_handle curl_multi_remove_handle
90#define qcurl_multi_fdset curl_multi_fdset
91#define qcurl_multi_perform curl_multi_perform
92#define qcurl_multi_cleanup curl_multi_cleanup
93#define qcurl_multi_info_read curl_multi_info_read
94#define qcurl_multi_strerror curl_multi_strerror
97qboolean CL_cURL_Init(
void );
98void CL_cURL_Shutdown(
void );
99void CL_cURL_BeginDownload(
const char *localName,
const char *remoteURL );
100void CL_cURL_PerformDownload(
void );
101void CL_cURL_Cleanup(
void );