char *gbuf_steal(struct gbuf *buf) { char *b = buf->buffer; if (!buf->alloc) b = xcalloc(1); gbuf_init(buf); return b; }
/** * \brief Initialise a worker * \param worker Worker * \param net_config Network configuration */ static void worker_init(scrypt_worker_t *worker, const net_config_t *net_config) { LOG_DEBUG_ENTER(); worker->id = 1; worker->curl = curl_easy_init(); if (NULL == worker->curl) { LOG_FATAL("Could not init Curl"); } if (gbuf_init(&worker->gbuf, 1024)) { LOG_FATAL("Could not create worker buffer"); } CURLcode curl_ret; curl_ret = curl_easy_setopt(worker->curl, CURLOPT_WRITEFUNCTION, write_cb); if (CURLE_OK != curl_ret) { LOG_FATAL("curl_easy_setopt: %s", curl_easy_strerror(curl_ret)); } curl_ret = curl_easy_setopt(worker->curl, CURLOPT_WRITEDATA, &worker->gbuf); if (CURLE_OK != curl_ret) { LOG_FATAL("curl_easy_setopt: %s", curl_easy_strerror(curl_ret)); } curl_ret = curl_easy_setopt(worker->curl, CURLOPT_URL, net_config->url); if (CURLE_OK != curl_ret) { LOG_FATAL("curl_easy_setopt: %s", curl_easy_strerror(curl_ret)); } curl_ret = curl_easy_setopt(worker->curl, CURLOPT_USERPWD, net_config->usr_pwd); if (CURLE_OK != curl_ret) { LOG_FATAL("curl_easy_setopt: %s", curl_easy_strerror(curl_ret)); } worker->state.stats.matches = 0; worker->state.stats.none = 0; worker->state.stats.nhash = 0; }
void gbuf_free(struct gbuf *buf) { if (buf->alloc) free(buf->buffer); gbuf_init(buf); }