curl_param_t* _kds_s2000w_client_param_init()
{
curl_param_t* param = malloc(sizeof(curl_param_t));
+ if (param == NULL)
+ return NULL;
param->curl = curl_easy_init();
param->url_handler = curl_url();
param->errbuf = NULL;
}
-void kds_s2000w_client_init(client_config_t* config)
+ char* _kds_s2000w_client_get_username_body()
+ {
+ char* body = malloc(sizeof(char) * MAX_STR_BUFFER_LENGTH);
+ if (body == NULL)
+ return NULL;
+
+ memset(body, 0, MAX_STR_BUFFER_LENGTH);
+ sprintf(body, "{\"OCPUserName\": \"%s\"}", client_config->username);
+ char* tmp_body = realloc(body, sizeof(char*) * (strlen(body) + 1));
+ if (tmp_body == NULL) {
+ free(body);
+ body = NULL;
+ return NULL;
+ }
+
+ body = tmp_body;
+ return body;
+ }
+
+void kds_s2000w_client_init(const client_config_t* config)
{
kds_s2000w_debug_printf(ALL, "kds_s2000w_client_init");
kds_s2000w_debug_printf(ALL, "kds_s2000w_client_open_session");
curl_param_t* param = _kds_s2000w_client_param_init();
+ if (param == NULL)
+ return 1;
curl_url_set(param->url_handler, CURLUPART_URL, client_config->scanner_url, 0);
curl_url_set(param->url_handler, CURLUPART_PATH, SESSION_PATH, 0);
param->headers = curl_slist_append(param->headers, ACCEPT_JSON_HEADER);
curl_easy_setopt(param->curl, CURLOPT_HTTPHEADER, param->headers);
- char* body = malloc(sizeof(char) * MAX_STR_BUFFER_LENGTH);
+ char* body = _kds_s2000w_client_get_username_body();
if (body == NULL) {
_kds_s2000w_client_param_free(param);
param = NULL;
return 1;
}
- memset(body, 0, MAX_STR_BUFFER_LENGTH);
- sprintf(body, "{\"OCPUserName\": \"%s\"}", client_config->username);
curl_easy_setopt(param->curl, CURLOPT_POST, 1L);
curl_easy_setopt(param->curl, CURLOPT_POSTFIELDS, body);
_kds_s2000w_client_set_ssl_verification_off(param->curl);
_kds_s2000w_client_param_free(param);
param = NULL;
+ free(body);
+ body = NULL;
return result;
}