#define CAPABILITIES_VERSION_2 "v2"
#define CONFIGURATION_PATH "/api/session/configuration"
-CURL* curl = NULL;
client_config_t* client_config = NULL;
char* _kds_s2000w_client_strdup(const char* str)
return new_str;
}
-void _kds_s2000w_client_set_verbose()
+void _kds_s2000w_client_set_verbose(CURL* curl)
{
uint8_t log_level = kds_s2000w_debug_get_log_level();
client_config->heartbeat = config->heartbeat;
curl_global_init(CURL_GLOBAL_ALL);
- curl = curl_easy_init();
}
void kds_s2000w_client_free()
client_config->username = NULL;
free(client_config);
client_config = NULL;
- curl_easy_cleanup(curl);
- curl = NULL;
curl_global_cleanup();
}
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_client_open_session");
- curl_easy_reset(curl);
-
+ CURL* curl = curl_easy_init();
char* url = NULL;
CURLU* url_handler = curl_url();
curl_url_set(url_handler, CURLUPART_URL, client_config->scanner_url, 0);
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp);
- _kds_s2000w_client_set_verbose();
+ _kds_s2000w_client_set_verbose(curl);
CURLcode result = curl_easy_perform(curl);
_kds_s2000w_client_add_null_terminate_to_response(resp);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp->code);
url_handler = NULL;
curl_slist_free_all(headers);
headers = NULL;
+ curl_easy_cleanup(curl);
+ curl = NULL;
free(body);
body = NULL;
curl_free(url);
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_client_close_session");
- curl_easy_reset(curl);
-
+ CURL* curl = curl_easy_init();
char* url = NULL;
CURLU* url_handler = curl_url();
curl_url_set(url_handler, CURLUPART_URL, client_config->scanner_url, 0);
char* errbuf = _kds_s2000w_client_errbuf_init();
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
- _kds_s2000w_client_set_verbose();
+ _kds_s2000w_client_set_verbose(curl);
CURLcode result = curl_easy_perform(curl);
_kds_s2000w_client_print_error_result(result, errbuf);
url = NULL;
curl_slist_free_all(headers);
headers = NULL;
+ curl_easy_cleanup(curl);
+ curl = NULL;
free(header_str);
header_str = NULL;
free(errbuf);
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_client_get_capabilities");
- curl_easy_reset(curl);
-
+ CURL* curl = curl_easy_init();
char* url = NULL;
CURLU* url_handler = curl_url();
curl_url_set(url_handler, CURLUPART_URL, client_config->scanner_url, 0);
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp);
- _kds_s2000w_client_set_verbose();
+ _kds_s2000w_client_set_verbose(curl);
CURLcode result = curl_easy_perform(curl);
_kds_s2000w_client_add_null_terminate_to_response(resp);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp->code);
url_handler = NULL;
curl_slist_free_all(headers);
headers = NULL;
+ curl_easy_cleanup(curl);
+ curl = NULL;
curl_free(url);
url = NULL;
free(errbuf);
kds_s2000w_heartbeat_join_thread();
kds_s2000w_heartbeat_wait_seconds(&client_config->heartbeat);
- curl_easy_reset(curl);
-
+ CURL* curl = curl_easy_init();
char* url = NULL;
CURLU* url_handler = curl_url();
curl_url_set(url_handler, CURLUPART_URL, client_config->scanner_url, 0);
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp);
- _kds_s2000w_client_set_verbose();
+ _kds_s2000w_client_set_verbose(curl);
CURLcode result = curl_easy_perform(curl);
_kds_s2000w_client_add_null_terminate_to_response(resp);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp->code);
headers = NULL;
curl_free(url);
url = NULL;
+ curl_easy_cleanup(curl);
+ curl = NULL;
free(header_str);
header_str = NULL;
free(errbuf);
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_client_start_scan");
- curl_easy_reset(curl);
-
+ CURL* curl = curl_easy_init();
char* url = NULL;
CURLU* url_handler = curl_url();
curl_url_set(url_handler, CURLUPART_URL, client_config->scanner_url, 0);
char* errbuf = _kds_s2000w_client_errbuf_init();
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
- _kds_s2000w_client_set_verbose();
+ _kds_s2000w_client_set_verbose(curl);
CURLcode result = curl_easy_perform(curl);
_kds_s2000w_client_print_error_status(curl);
headers = NULL;
curl_free(url);
url = NULL;
+ curl_easy_cleanup(curl);
+ curl = NULL;
free(header_str);
header_str = NULL;
free(errbuf);
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_client_stop_scan");
- curl_easy_reset(curl);
-
+ CURL* curl = curl_easy_init();
char* url = NULL;
CURLU* url_handler = curl_url();
curl_url_set(url_handler, CURLUPART_URL, client_config->scanner_url, 0);
char* errbuf = _kds_s2000w_client_errbuf_init();
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
- _kds_s2000w_client_set_verbose();
+ _kds_s2000w_client_set_verbose(curl);
CURLcode result = curl_easy_perform(curl);
_kds_s2000w_client_print_error_status(curl);
headers = NULL;
curl_free(url);
url = NULL;
+ curl_easy_cleanup(curl);
+ curl = NULL;
free(header_str);
header_str = NULL;
free(errbuf);
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_client_get_image");
- curl_easy_reset(curl);
-
+ CURL* curl = curl_easy_init();
char* url = NULL;
CURLU* url_handler = curl_url();
char* url_path = malloc(sizeof(char) * MAX_STR_BUFFER_LENGTH);
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp);
- _kds_s2000w_client_set_verbose();
+ _kds_s2000w_client_set_verbose(curl);
CURLcode result = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp->code);
headers = NULL;
curl_free(url);
url = NULL;
+ curl_easy_cleanup(curl);
+ curl = NULL;
free(url_path);
url_path = NULL;
free(header_str);
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_client_delete_image");
- curl_easy_reset(curl);
-
+ CURL* curl = curl_easy_init();
char* url = NULL;
CURLU* url_handler = curl_url();
char* url_path = malloc(sizeof(char) * MAX_STR_BUFFER_LENGTH);
char* errbuf = _kds_s2000w_client_errbuf_init();
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
- _kds_s2000w_client_set_verbose();
+ _kds_s2000w_client_set_verbose(curl);
CURLcode result = curl_easy_perform(curl);
_kds_s2000w_client_print_error_status(curl);
headers = NULL;
curl_free(url);
url = NULL;
+ curl_easy_cleanup(curl);
+ curl = NULL;
free(header_str);
header_str = NULL;
free(errbuf);
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_client_get_option");
- curl_easy_reset(curl);
-
+ CURL* curl = curl_easy_init();
char* url = NULL;
CURLU* url_handler = curl_url();
curl_url_set(url_handler, CURLUPART_URL, client_config->scanner_url, 0);
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _kds_s2000w_client_write_callback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp);
- _kds_s2000w_client_set_verbose();
+ _kds_s2000w_client_set_verbose(curl);
CURLcode result = curl_easy_perform(curl);
_kds_s2000w_client_add_null_terminate_to_response(resp);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp->code);
headers = NULL;
curl_free(url);
url = NULL;
+ curl_easy_cleanup(curl);
+ curl = NULL;
free(header_str);
header_str = NULL;
free(errbuf);
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_client_set_option");
- curl_easy_reset(curl);
-
+ CURL* curl = curl_easy_init();
char* url = NULL;
CURLU* url_handler = curl_url();
curl_url_set(url_handler, CURLUPART_URL, client_config->scanner_url, 0);
char* errbuf = _kds_s2000w_client_errbuf_init();
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
- _kds_s2000w_client_set_verbose();
+ _kds_s2000w_client_set_verbose(curl);
CURLcode result = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &resp->code);
headers = NULL;
curl_free(url);
url = NULL;
+ curl_easy_cleanup(curl);
+ curl = NULL;
free(header_str);
header_str = NULL;
free(errbuf);