本文整理汇总了C++中curl_multi_init函数的典型用法代码示例。如果您正苦于以下问题:C++ curl_multi_init函数的具体用法?C++ curl_multi_init怎么用?C++ curl_multi_init使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了curl_multi_init函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: DL_InitDownload
void DL_InitDownload() {
if ( dl_initialized ) {
return;
}
/* Make sure curl has initialized, so the cleanup doesn't get confused */
curl_global_init( CURL_GLOBAL_ALL );
dl_multi = curl_multi_init();
Com_Printf( "Client download subsystem initialized\n" );
dl_initialized = 1;
}
开发者ID:bibendovsky,项目名称:rtcw,代码行数:13,代码来源:dl_main_curl.cpp
示例2: child_init
static int child_init(int rank)
{
if (rank <= PROC_MAIN)
return 0;
multi_handle = curl_multi_init();
if (!multi_handle) {
LM_ERR("failed to init CURLM handle\n");
return -1;
}
return 0;
}
开发者ID:AndreiPlesa,项目名称:opensips,代码行数:13,代码来源:rest_client.c
示例3: wswcurl_init
void wswcurl_init( void )
{
wswcurl_mempool = Mem_AllocPool( NULL, "Curl" );
curldummy = curl_easy_init();
curlmulti = curl_multi_init();
http_requests_mutex = QMutex_Create();
// HTTP proxy settings
http_proxy = Cvar_Get( "http_proxy", "", CVAR_ARCHIVE );
http_proxyuserpwd = Cvar_Get( "http_proxyuserpwd", "", CVAR_ARCHIVE );
}
开发者ID:cfr,项目名称:qfusion,代码行数:13,代码来源:wswcurl.c
示例4: kn_CURLM_init
kn_CURLM_t kn_CURLM_init(engine_t e){
pthread_once(&g_curl_key_once,curl_once_routine);
CURLM *c = curl_multi_init();
if(!c) return NULL;
kn_CURLM_t cm = calloc(1,sizeof(*cm));
cm->c_handle = c;
cm->e = e;
kn_dlist_init(&cm->curls);
curl_multi_setopt(c, CURLMOPT_SOCKETFUNCTION, handle_socket);
//curl_multi_setopt(c, CURLMOPT_TIMERDATA, cm);
//curl_multi_setopt(c, CURLMOPT_TIMERFUNCTION, start_timeout);
return cm;
}
开发者ID:Danewalker,项目名称:distri.lua,代码行数:13,代码来源:kn_curl.c
示例5: timer_
Context::Context( boost::asio::io_service& io_service, bool verify_ssl_peer )
: timer_( io_service )
, strand_( io_service )
, io_service_( io_service )
, still_running_( 0 )
, verify_ssl_peer_( verify_ssl_peer )
{
multi_ = curl_multi_init();
curl_multi_setopt(multi_, CURLMOPT_SOCKETFUNCTION, sock_cb);
curl_multi_setopt(multi_, CURLMOPT_SOCKETDATA, this);
curl_multi_setopt(multi_, CURLMOPT_TIMERFUNCTION, multi_timer_cb);
curl_multi_setopt(multi_, CURLMOPT_TIMERDATA, this);
}
开发者ID:apokluda,项目名称:pweb,代码行数:14,代码来源:asynchttprequester.cpp
示例6: assert
int IO::init() {
assert (m_initialised == false);
curl_global_init(CURL_GLOBAL_ALL);
m_mhandle = curl_multi_init();
#ifdef HAVE_CURL_MULTI_PIPELINING
curl_multi_setopt(m_mhandle, CURLMOPT_PIPELINING, 1);
#endif
m_initialised = true;
return 0;
}
开发者ID:nocylah,项目名称:libwfut,代码行数:14,代码来源:IO.cpp
示例7: fopen
URL_FILE *url_fopen(const char *url, const char *operation)
{
/* this code could check for URLs or types in the 'url' and
basically use the real fopen() for standard files */
URL_FILE *file;
(void)operation;
file = malloc(sizeof(URL_FILE));
if(!file)
return NULL;
memset(file, 0, sizeof(URL_FILE));
if((file->handle.file=fopen(url, operation)))
file->type = CFTYPE_FILE; /* marked as URL */
else {
file->type = CFTYPE_CURL; /* marked as URL */
file->handle.curl = curl_easy_init();
curl_easy_setopt(file->handle.curl, CURLOPT_URL, url);
curl_easy_setopt(file->handle.curl, CURLOPT_WRITEDATA, file);
curl_easy_setopt(file->handle.curl, CURLOPT_VERBOSE, 0L);
curl_easy_setopt(file->handle.curl, CURLOPT_WRITEFUNCTION, write_callback);
if(!multi_handle)
multi_handle = curl_multi_init();
curl_multi_add_handle(multi_handle, file->handle.curl);
/* lets start the fetch */
curl_multi_perform(multi_handle, &file->still_running);
if((file->buffer_pos == 0) && (!file->still_running)) {
/* if still_running is 0 now, we should return NULL */
/* make sure the easy handle is not in the multi handle anymore */
curl_multi_remove_handle(multi_handle, file->handle.curl);
/* cleanup */
curl_easy_cleanup(file->handle.curl);
free(file);
file = NULL;
}
}
return file;
}
开发者ID:curl,项目名称:curl,代码行数:50,代码来源:fopen.c
示例8: curl_easy_init
void LLXMLRPCTransaction::Impl::init(XMLRPC_REQUEST request, bool useGzip)
{
mCurl = curl_easy_init();
if (gSavedSettings.getBOOL("BrowserProxyEnabled"))
{
mProxyAddress = gSavedSettings.getString("BrowserProxyAddress");
S32 port = gSavedSettings.getS32 ( "BrowserProxyPort" );
// tell curl about the settings
curl_easy_setopt(mCurl, CURLOPT_PROXY, mProxyAddress.c_str());
curl_easy_setopt(mCurl, CURLOPT_PROXYPORT, (long)port);
curl_easy_setopt(mCurl, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
};
// curl_easy_setopt(mCurl, CURLOPT_VERBOSE, 1); // usefull for debugging
curl_easy_setopt(mCurl, CURLOPT_NOSIGNAL, 1);
curl_easy_setopt(mCurl, CURLOPT_WRITEFUNCTION, &curlDownloadCallback);
curl_easy_setopt(mCurl, CURLOPT_WRITEDATA, this);
curl_easy_setopt(mCurl, CURLOPT_ERRORBUFFER, &mCurlErrorBuffer);
curl_easy_setopt(mCurl, CURLOPT_CAINFO, gDirUtilp->getCAFile().c_str());
curl_easy_setopt(mCurl, CURLOPT_SSL_VERIFYPEER, gVerifySSLCert);
curl_easy_setopt(mCurl, CURLOPT_SSL_VERIFYHOST, gVerifySSLCert? 2 : 0);
/* Setting the DNS cache timeout to -1 disables it completely.
This might help with bug #503 */
curl_easy_setopt(mCurl, CURLOPT_DNS_CACHE_TIMEOUT, -1);
mHeaders = curl_slist_append(mHeaders, "Content-Type: text/xml");
curl_easy_setopt(mCurl, CURLOPT_URL, mURI.c_str());
curl_easy_setopt(mCurl, CURLOPT_HTTPHEADER, mHeaders);
if (useGzip)
{
curl_easy_setopt(mCurl, CURLOPT_ENCODING, "");
}
mRequestText = XMLRPC_REQUEST_ToXML(request, &mRequestTextSize);
if (mRequestText)
{
curl_easy_setopt(mCurl, CURLOPT_POSTFIELDS, mRequestText);
curl_easy_setopt(mCurl, CURLOPT_POSTFIELDSIZE, mRequestTextSize);
}
else
{
setStatus(StatusOtherError);
}
mCurlMulti = curl_multi_init();
curl_multi_add_handle(mCurlMulti, mCurl);
}
开发者ID:xinyaojiejie,项目名称:Dale,代码行数:50,代码来源:llxmlrpctransaction.cpp
示例9: test
int test(char *URL)
{
CURLM *cm = NULL;
struct curl_slist *headers = NULL;
char buffer[246]; /* naively fixed-size */
int res;
if(test_argc < 4)
return 99;
sprintf(buffer, "Host: %s", HOST);
/* now add a custom Host: header */
headers = curl_slist_append(headers, buffer);
if(!headers) {
fprintf(stderr, "curl_slist_append() failed\n");
return TEST_ERR_MAJOR_BAD;
}
if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) {
fprintf(stderr, "curl_global_init() failed\n");
curl_slist_free_all(headers);
return TEST_ERR_MAJOR_BAD;
}
if ((cm = curl_multi_init()) == NULL) {
fprintf(stderr, "curl_multi_init() failed\n");
curl_slist_free_all(headers);
curl_global_cleanup();
return TEST_ERR_MAJOR_BAD;
}
res = loop(cm, URL, PROXYUSERPWD, headers);
if(res)
goto test_cleanup;
fprintf(stderr, "lib540: now we do the request again\n");
res = loop(cm, URL, PROXYUSERPWD, headers);
test_cleanup:
curl_multi_cleanup(cm);
curl_global_cleanup();
curl_slist_free_all(headers);
return res;
}
开发者ID:Dumastik,项目名称:libcurl-ps3,代码行数:49,代码来源:lib540.c
示例10: jsr_curlm_new
jsr_curlm_t *
jsr_curlm_new(void)
{
jsr_curlm_t *jsr_curlm = (jsr_curlm_t *)malloc(sizeof(jsr_curlm_t));
if (!jsr_curlm)
return NULL;
jsr_curlm->multi_handle = curl_multi_init();
jsr_curlm->list = jsr_list_new();
jsr_curlm->running_handles = 1;
jsr_curlm->timeout = 1;
return jsr_curlm;
}
开发者ID:guoyu07,项目名称:JsonRPC,代码行数:15,代码来源:jsr_curl.c
示例11: client_start
/**
* Setup http_client plugin
*
* @param plugin the plugin handle
* @return GNUNET_OK on success, GNUNET_SYSERR on error
*/
static int
client_start (struct HTTP_Client_Plugin *plugin)
{
curl_global_init (CURL_GLOBAL_ALL);
plugin->curl_multi_handle = curl_multi_init ();
if (NULL == plugin->curl_multi_handle)
{
GNUNET_log_from (GNUNET_ERROR_TYPE_ERROR, plugin->name,
_("Could not initialize curl multi handle, failed to start %s plugin!\n"),
plugin->name);
return GNUNET_SYSERR;
}
return GNUNET_OK;
}
开发者ID:schanzen,项目名称:gnunet-mirror,代码行数:21,代码来源:plugin_transport_http_client.c
示例12: curl_global_init
void RequestManager::Initialise(ByteString Proxy)
{
curl_global_init(CURL_GLOBAL_DEFAULT);
multi = curl_multi_init();
if (multi)
{
curl_multi_setopt(multi, CURLMOPT_MAX_HOST_CONNECTIONS, curl_max_host_connections);
}
proxy = Proxy;
user_agent = ByteString::Build("PowderToy/", SAVE_VERSION, ".", MINOR_VERSION, " (", IDENT_PLATFORM, "; ", IDENT_BUILD, "; M", MOD_ID, ") TPTPP/", SAVE_VERSION, ".", MINOR_VERSION, ".", BUILD_NUM, IDENT_RELTYPE, ".", SNAPSHOT_ID);
worker_thread = std::thread([this]() { Worker(); });
}
开发者ID:simtr,项目名称:The-Powder-Toy,代码行数:15,代码来源:RequestManager.cpp
示例13: vbcurl_multi_init
MULTI_CONTEXT* __stdcall vbcurl_multi_init()
{
MULTI_CONTEXT* pmc = NULL;
CURLM* pm = curl_multi_init();
if (!pm)
return NULL;
pmc = (MULTI_CONTEXT*)malloc(sizeof(MULTI_CONTEXT));
pmc->_magic = MULTI_MAGIC;
pmc->_multi = pm;
FD_ZERO(&pmc->_readSet);
FD_ZERO(&pmc->_writeSet);
FD_ZERO(&pmc->_excSet);
pmc->_maxFD = 0;
return pmc;
}
开发者ID:dzzie,项目名称:libs,代码行数:15,代码来源:multi.c
示例14: ecore_con_url_init
/**
* Initialises the Ecore_Con_Url library.
* @return Number of times the library has been initialised without being
* shut down.
* @ingroup Ecore_Con_Url_Group
*/
EAPI int
ecore_con_url_init(void)
{
#ifdef HAVE_CURL
init_count++;
if (init_count > 1) return init_count;
if (!ECORE_CON_EVENT_URL_DATA)
{
ECORE_CON_EVENT_URL_DATA = ecore_event_type_new();
ECORE_CON_EVENT_URL_COMPLETE = ecore_event_type_new();
ECORE_CON_EVENT_URL_PROGRESS = ecore_event_type_new();
}
if (!curlm)
{
long ms;
FD_ZERO(&_current_fd_set);
if (curl_global_init(CURL_GLOBAL_NOTHING))
{
while (_url_con_list)
ecore_con_url_destroy(eina_list_data_get(_url_con_list));
return 0;
}
curlm = curl_multi_init();
if (!curlm)
{
while (_url_con_list)
ecore_con_url_destroy(eina_list_data_get(_url_con_list));
init_count--;
return 0;
}
curl_multi_timeout(curlm, &ms);
if (ms <= 0) ms = 1000;
_curl_timeout = ecore_timer_add((double) ms / 1000, _ecore_con_url_idler_handler, (void *) 0xACE);
ecore_timer_freeze(_curl_timeout);
}
return 1;
#else
return 0;
#endif
}
开发者ID:OpenInkpot-archive,项目名称:ecore,代码行数:54,代码来源:ecore_con_url.c
示例15: zeb_curl_client_new
zeb_curl_client_t *
zeb_curl_client_new ()
{
#if defined (HAVE_LIBCURL)
zeb_curl_client_t *self = (zeb_curl_client_t *) zmalloc (sizeof (zeb_curl_client_t));
assert (self);
// Initialize properties
curl_global_init(CURL_GLOBAL_ALL);
self->multi_handle = curl_multi_init ();
return self;
#else
return NULL;
#endif
}
开发者ID:sappo,项目名称:zebra,代码行数:16,代码来源:zeb_curl_client.c
示例16: curl_global_init
CurlHttpIO::CurlHttpIO()
{
curl_global_init(CURL_GLOBAL_DEFAULT);
curlm = curl_multi_init();
curlsh = curl_share_init();
curl_share_setopt(curlsh, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);
curl_share_setopt(curlsh, CURLSHOPT_SHARE, CURL_LOCK_DATA_SSL_SESSION);
contenttypejson = curl_slist_append(NULL, "Content-Type: application/json");
contenttypejson = curl_slist_append(contenttypejson, "Expect:");
contenttypebinary = curl_slist_append(NULL, "Content-Type: application/octet-stream");
contenttypebinary = curl_slist_append(contenttypebinary, "Expect:");
}
开发者ID:agirdost04,项目名称:sdk2,代码行数:16,代码来源:net.cpp
示例17: l_multi_init
int l_multi_init(lua_State *L) {
l_multi_userdata *multi_userdata = l_multi_newuserdata(L);
if ((multi_userdata->curlm = curl_multi_init()) == NULL)
luaL_error(L, "something went wrong and you cannot use the other curl functions");
/* creaty uniqe table in registry to store state for callback functions */
lua_getfield(L, LUA_REGISTRYINDEX, MULTIREGISTRY_KEY);
lua_pushlightuserdata(L, multi_userdata);
lua_newtable(L);
lua_settable(L, -3);
lua_pop(L, 1);
/* return userdata */
return 1;
}
开发者ID:LiXizhi,项目名称:NPLRuntime,代码行数:16,代码来源:Lua-cURL-multi.c
示例18: io
MultiAdapter::MultiAdapter(boost::asio::io_service & theIOService) :
io(theIOService),
_strand(theIOService)
{
_curlMulti = curl_multi_init();
CURLMcode myStatus = curl_multi_setopt(_curlMulti, CURLMOPT_SOCKETFUNCTION, &MultiAdapter::curl_socket_callback);
checkCurlStatus(myStatus, PLUS_FILE_LINE);
myStatus = curl_multi_setopt(_curlMulti, CURLMOPT_SOCKETDATA, this);
checkCurlStatus(myStatus, PLUS_FILE_LINE);
myStatus = curl_multi_setopt(_curlMulti, CURLMOPT_TIMERFUNCTION, &MultiAdapter::curl_timer_callback);
checkCurlStatus(myStatus, PLUS_FILE_LINE);
myStatus = curl_multi_setopt(_curlMulti, CURLMOPT_TIMERDATA, this);
checkCurlStatus(myStatus, PLUS_FILE_LINE);
};
开发者ID:artcom,项目名称:y60,代码行数:16,代码来源:MultiAdapter.cpp
示例19: ruby_curl_multi_new
/*
* call-seq:
* Curl::Multi.new => #<Curl::Easy...>
*
* Create a new Curl::Multi instance
*/
static VALUE ruby_curl_multi_new(VALUE self) {
VALUE new_curlm;
ruby_curl_multi *rbcm = ALLOC(ruby_curl_multi);
rbcm->handle = curl_multi_init();
rbcm->requests = rb_hash_new();
rbcm->active = 0;
rbcm->running = 0;
new_curlm = Data_Wrap_Struct(cCurlMulti, curl_multi_mark, curl_multi_free, rbcm);
return new_curlm;
}
开发者ID:wboton,项目名称:curb,代码行数:22,代码来源:curb_multi.c
示例20: multiHandle
Mensa::Mensa(const Configs& cfg)
: multiHandle(curl_multi_init()),
lastupdate(0),
updating(false)
{
cfg.GetValue("menuurl", menuurl);
cfg.GetValue("metaurl", metaurl);
cfg.GetValue("login", login);
cfg.GetValue("canteen", canteen);
std::string rawlines;
cfg.GetValue("lines", rawlines);
std::istringstream sstr(rawlines);
std::string newline;
while(std::getline(sstr, newline, ','))
lines.insert(newline);
}
开发者ID:c-14,项目名称:Keksbot,代码行数:16,代码来源:mensa.cpp
注:本文中的curl_multi_init函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论