program_config p_config;
+void _kds_s2000w_client_read_error_status(CURL* curl, response* resp)
+{
+ struct curl_header* header = NULL;
+ curl_easy_header(curl, "x-status", 0, CURLH_HEADER, -1, &header);
+
+ if (header != NULL) {
+ size_t size = sizeof(char) * strlen(header->value) + 1;
+ resp->error_status = realloc(resp->error_status, size);
+ memcpy(resp->error_status, header->value, size);
+ resp->error_size = size;
+ }
+}
+
void _kds_s2000w_client_load_config()
{
const char* config_file = CONFIG_FILE;
resp = malloc(sizeof(response));
resp->data = malloc(sizeof(char));
+ resp->error_status = malloc(sizeof(char));
resp->size = 0;
resp->code = 0L;
+ resp->error_size = 0;
return resp;
}
if (response == NULL)
return;
+ free(response->error_status);
+ response->error_status = NULL;
free(response->data);
response->data = NULL;
free(response);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
result = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code);
+ _kds_s2000w_client_read_error_status(curl, response);
if (result != CURLE_OK)
fprintf(stderr, "ERROR: curl_easy_perform: %s\n", curl_easy_strerror(result));
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
result = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code);
+ _kds_s2000w_client_read_error_status(curl, response);
if (result != CURLE_OK)
fprintf(stderr, "ERROR: curl_easy_perform: %s\n", curl_easy_strerror(result));
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
result = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code);
+ _kds_s2000w_client_read_error_status(curl, response);
if (result != CURLE_OK)
fprintf(stderr, "ERROR: curl_easy_perform: %s\n", curl_easy_strerror(result));
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
result = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code);
+ _kds_s2000w_client_read_error_status(curl, response);
if (result != CURLE_OK)
fprintf(stderr, "ERROR: curl_easy_perform: %s\n", curl_easy_strerror(result));
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
result = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code);
+ _kds_s2000w_client_read_error_status(curl, response);
if (result != CURLE_OK)
fprintf(stderr, "ERROR: curl_easy_perform: %s\n", curl_easy_strerror(result));
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
result = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code);
+ _kds_s2000w_client_read_error_status(curl, response);
if (result != CURLE_OK)
fprintf(stderr, "ERROR: curl_easy_perform: %s\n", curl_easy_strerror(result));
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
result = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code);
+ _kds_s2000w_client_read_error_status(curl, response);
if (result != CURLE_OK)
fprintf(stderr, "ERROR: curl_easy_perform: %s\n", curl_easy_strerror(result));
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
result = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code);
+ _kds_s2000w_client_read_error_status(curl, response);
if (result != CURLE_OK)
fprintf(stderr, "ERROR: curl_easy_perform: %s\n", curl_easy_strerror(result));
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
result = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code);
+ _kds_s2000w_client_read_error_status(curl, response);
if (result != CURLE_OK)
fprintf(stderr, "ERROR: curl_easy_perform: %s\n", curl_easy_strerror(result));
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
result = curl_easy_perform(curl);
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response->code);
+ _kds_s2000w_client_read_error_status(curl, response);
if (result != CURLE_OK)
fprintf(stderr, "ERROR: curl_easy_perform: %s\n", curl_easy_strerror(result));
resp = kds_s2000w_client_response_init();
kds_s2000w_client_get_metadata(h->sessionid, h->current_scan_status->current_image_number, resp);
+ if (resp->error_size > 0)
+ fprintf(stderr, "%s\n", resp->error_status);
+
if (resp->code != 200) {
- debug_printf_int(ERROR, "metadata response code", resp->code);
h->current_metadata->valid = 0;
kds_s2000w_client_response_free(resp);
resp = NULL;
resp = kds_s2000w_client_response_init();
kds_s2000w_client_delete_image(h->sessionid, h->current_scan_status->current_image_number, resp);
- if (resp->code != 200)
- debug_printf_int(ERROR, "delete current image response code", resp->code);
+ if (resp->error_size > 0)
+ fprintf(stderr, "%s\n", resp->error_status);
kds_s2000w_client_response_free(resp);
resp = NULL;
resp = kds_s2000w_client_response_init();
kds_s2000w_client_get_image(h->sessionid, h->current_scan_status->current_image_number, resp);
- if (resp->code != 200)
- debug_printf_int(ERROR, "download current image response code", resp->code);
+ if (resp->error_size > 0)
+ fprintf(stderr, "%s\n", resp->error_status);
h->jpg_image->size = resp->size;
h->jpg_image->data = malloc(sizeof(char) * resp->size);
resp = kds_s2000w_client_response_init();
kds_s2000w_client_status_session(h->sessionid, resp);
- if (resp->code != 200)
- debug_printf_int(ERROR, "get current scan status response code", resp->code);
+ if (resp->error_size > 0)
+ fprintf(stderr, "%s\n", resp->error_status);
status_resp_obj = json_tokener_parse(resp->data);
status_obj = json_object_object_get(status_resp_obj, "Status");
resp = kds_s2000w_client_response_init();
kds_s2000w_client_open_session(resp);
+ if (resp->error_size > 0)
+ fprintf(stderr, "%s\n", resp->error_status);
if (resp->code == 200) {
sessionJson = json_tokener_parse(resp->data);
resp->data = realloc(resp->data, resp->size);
resp->data = memcpy(resp->data, json_string, resp->size);
kds_s2000w_client_set_option(h->sessionid, resp);
- if (resp->code != 200)
- debug_printf_int(ERROR, "set options response code", resp->code);
+ if (resp->error_size > 0)
+ fprintf(stderr, "%s\n", resp->error_status);
}
kds_s2000w_client_response_free(resp);
resp = kds_s2000w_client_response_init();
int result = kds_s2000w_client_open_session(resp);
+ if (resp->error_size > 0)
+ fprintf(stderr, "%s\n", resp->error_status);
if (resp->code == 408) {
kds_s2000w_client_response_free(resp);
sleep(1);
resp = kds_s2000w_client_response_init();
result = kds_s2000w_client_open_session(resp);
+ if (resp->error_size > 0)
+ fprintf(stderr, "%s\n", resp->error_status);
}
if (result != 0 || resp->code == 404) {
resp = kds_s2000w_client_response_init();
kds_s2000w_client_start_scan(h->sessionid, resp);
- if (resp->code != 200)
- debug_printf_int(ERROR, "start scan response code", resp->code);
+ if (resp->error_size > 0)
+ fprintf(stderr, "%s\n", resp->error_status);
kds_s2000w_client_response_free(resp);
resp = NULL;
resp = kds_s2000w_client_response_init();
kds_s2000w_client_stop_scan(h->sessionid, resp);
- if (resp->code != 200)
- debug_printf_int(ERROR, "stop scan response code", resp->code);
+ if (resp->error_size > 0)
+ fprintf(stderr, "%s\n", resp->error_status);
kds_s2000w_client_response_free(resp);
resp = NULL;