kopia lustrzana https://gitlab.com/sane-project/backends
Merge branch 'fix-statis-no-data' into 'master'
If no data then the status is NO-DOCS. See merge request sane-project/backends!440merge-requests/463/merge
commit
a05983ba28
|
@ -139,6 +139,7 @@ typedef struct capabilities
|
||||||
unsigned char *img_data;
|
unsigned char *img_data;
|
||||||
long img_size;
|
long img_size;
|
||||||
long img_read;
|
long img_read;
|
||||||
|
size_t real_read;
|
||||||
SANE_Bool work;
|
SANE_Bool work;
|
||||||
} capabilities_t;
|
} capabilities_t;
|
||||||
|
|
||||||
|
|
|
@ -43,8 +43,9 @@
|
||||||
static size_t
|
static size_t
|
||||||
write_callback(void *str, size_t size, size_t nmemb, void *userp)
|
write_callback(void *str, size_t size, size_t nmemb, void *userp)
|
||||||
{
|
{
|
||||||
size_t to_write = fwrite(str, size, nmemb, (FILE *)userp);
|
capabilities_t *scanner = (capabilities_t *)userp;
|
||||||
|
size_t to_write = fwrite(str, size, nmemb, scanner->tmp);
|
||||||
|
scanner->real_read += to_write;
|
||||||
return (to_write);
|
return (to_write);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,6 +69,7 @@ escl_scan(capabilities_t *scanner, const ESCL_Device *device, char *result)
|
||||||
|
|
||||||
if (device == NULL)
|
if (device == NULL)
|
||||||
return (SANE_STATUS_NO_MEM);
|
return (SANE_STATUS_NO_MEM);
|
||||||
|
scanner->real_read = 0;
|
||||||
curl_handle = curl_easy_init();
|
curl_handle = curl_easy_init();
|
||||||
if (curl_handle != NULL) {
|
if (curl_handle != NULL) {
|
||||||
snprintf(scan_cmd, sizeof(scan_cmd), "%s%s%s",
|
snprintf(scan_cmd, sizeof(scan_cmd), "%s%s%s",
|
||||||
|
@ -78,7 +80,7 @@ escl_scan(capabilities_t *scanner, const ESCL_Device *device, char *result)
|
||||||
fclose(scanner->tmp);
|
fclose(scanner->tmp);
|
||||||
scanner->tmp = tmpfile();
|
scanner->tmp = tmpfile();
|
||||||
if (scanner->tmp != NULL) {
|
if (scanner->tmp != NULL) {
|
||||||
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, scanner->tmp);
|
curl_easy_setopt(curl_handle, CURLOPT_WRITEDATA, scanner);
|
||||||
CURLcode res = curl_easy_perform(curl_handle);
|
CURLcode res = curl_easy_perform(curl_handle);
|
||||||
if (res != CURLE_OK) {
|
if (res != CURLE_OK) {
|
||||||
DBG( 1, "Unable to scan: %s\n", curl_easy_strerror(res));
|
DBG( 1, "Unable to scan: %s\n", curl_easy_strerror(res));
|
||||||
|
@ -94,6 +96,12 @@ escl_scan(capabilities_t *scanner, const ESCL_Device *device, char *result)
|
||||||
cleanup:
|
cleanup:
|
||||||
curl_easy_cleanup(curl_handle);
|
curl_easy_cleanup(curl_handle);
|
||||||
}
|
}
|
||||||
DBG(10, "eSCL scan : %s\n", sane_strstatus(status));
|
DBG(10, "eSCL scan : [%s]\treal read (%ld)\n", sane_strstatus(status), scanner->real_read);
|
||||||
|
if (scanner->real_read == 0)
|
||||||
|
{
|
||||||
|
fclose(scanner->tmp);
|
||||||
|
scanner->tmp = NULL;
|
||||||
|
return SANE_STATUS_NO_DOCS;
|
||||||
|
}
|
||||||
return (status);
|
return (status);
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue