From: Bastian Dehn Date: Tue, 24 Dec 2024 13:08:38 +0000 (+0100) Subject: cancel only by start routine X-Git-Tag: v1.0.13^2~2 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=174e57426a8d314e91a0a316f41782dc3769fece;p=sane-kds-s2000w-net.git cancel only by start routine --- diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 17ef585..6034db0 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -146,6 +146,13 @@ void _sane_kds_s2000w_net_cancel(SANE_Handle handle) #endif handler* h = (handler*) handle; + + if (h->read_info->cancel > 0) { + reset_handler(h); + kds_s2000w_handler_recreate_session(h); + return; + } + if (h->current_scan_status->complete_scanned > 0) { reset_handler(h); return; @@ -164,11 +171,6 @@ SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle, handler* h = (handler*) handle; - if (h->read_info->cancel) { - reset_handler(h); - return SANE_STATUS_CANCELLED; - } - kds_s2000w_handler_get_current_metadata(h, (metadata*) params); h->read_info->read_size = 0; @@ -195,10 +197,8 @@ SANE_Status _sane_kds_s2000w_net_start(SANE_Handle handle) handler* h = (handler*) handle; - if (h->read_info->cancel) { - reset_handler(h); + if (h->read_info->cancel) return SANE_STATUS_CANCELLED; - } if (!h->read_info->scan_started) { h->read_info->cancel = 0; @@ -255,13 +255,6 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data, handler* h = (handler*) handle; - // cancel - if (h->read_info->cancel) { - reset_handler(h); - *length = 0; - return SANE_STATUS_CANCELLED; - } - // calc max length *length = h->image->size - h->read_info->read_size; if (*length > max_length) diff --git a/tests/kds_s2000w_net_read_tests.c b/tests/kds_s2000w_net_read_tests.c index 27f234a..76c48f0 100644 --- a/tests/kds_s2000w_net_read_tests.c +++ b/tests/kds_s2000w_net_read_tests.c @@ -24,26 +24,6 @@ void __wrap_wait_a_second() return; } -void sane_kds_s2000w_net_read_cancel_test() -{ - handler* h = init_handler(); - h->read_info->scan_started = 1; - h->read_info->cancel = 1; - int* length = malloc(sizeof(int)); - *length = 0; - - SANE_Status status = _sane_kds_s2000w_net_read(h, NULL, 0, length); - - assert_int_equal(h->read_info->cancel, 0); - assert_int_equal(h->read_info->scan_started, 0); - assert_int_equal(status, SANE_STATUS_CANCELLED); - - free(length); - length = NULL; - free_handler(h); - h = NULL; -} - void sane_kds_s2000w_net_read_without_data() { int length = 0; diff --git a/tests/kds_s2000w_net_read_tests.h b/tests/kds_s2000w_net_read_tests.h index b306155..cce2a3e 100644 --- a/tests/kds_s2000w_net_read_tests.h +++ b/tests/kds_s2000w_net_read_tests.h @@ -6,7 +6,6 @@ #include #include -void sane_kds_s2000w_net_read_cancel_test(); void sane_kds_s2000w_net_read_without_data(); void sane_kds_s2000w_net_read_empty_image(); void sane_kds_s2000w_net_read_without_header_test(); diff --git a/tests/kds_s2000w_net_read_tests_run.c b/tests/kds_s2000w_net_read_tests_run.c index 47cef1d..ba50bd4 100644 --- a/tests/kds_s2000w_net_read_tests_run.c +++ b/tests/kds_s2000w_net_read_tests_run.c @@ -3,7 +3,6 @@ int main() { const struct CMUnitTest net_read_tests[] = { - cmocka_unit_test(sane_kds_s2000w_net_read_cancel_test), cmocka_unit_test(sane_kds_s2000w_net_read_without_data), cmocka_unit_test(sane_kds_s2000w_net_read_empty_image), cmocka_unit_test(sane_kds_s2000w_net_read_without_header_test), diff --git a/tests/kds_s2000w_net_tests.c b/tests/kds_s2000w_net_tests.c index efbd6c9..656b379 100644 --- a/tests/kds_s2000w_net_tests.c +++ b/tests/kds_s2000w_net_tests.c @@ -95,7 +95,6 @@ void sane_kds_s2000w_net_start_cancel() SANE_Status status = _sane_kds_s2000w_net_start(h); - assert_int_equal(h->read_info->cancel, 0); assert_int_equal(status, SANE_STATUS_CANCELLED); free_handler(h); @@ -380,20 +379,6 @@ void sane_kds_s2000w_net_start_two_pages_per_feeder(void** state) h = NULL; } -void sane_kds_s2000w_net_get_parameter_cancel() -{ - handler* h = init_handler(); - h->read_info->cancel = 1; - - SANE_Status status = _sane_kds_s2000w_net_get_parameters(h, NULL); - - assert_int_equal(h->read_info->cancel, 0); - assert_int_equal(status, SANE_STATUS_CANCELLED); - - free_handler(h); - h = NULL; -} - void sane_kds_s2000w_net_cancel() { response* resp = kds_s2000w_client_response_init(); diff --git a/tests/kds_s2000w_net_tests.h b/tests/kds_s2000w_net_tests.h index a8a7026..de91bbc 100644 --- a/tests/kds_s2000w_net_tests.h +++ b/tests/kds_s2000w_net_tests.h @@ -16,7 +16,6 @@ void sane_kds_s2000w_net_start(void** state); void sane_kds_s2000w_net_start_one_page_per_flatscan(void** state); void sane_kds_s2000w_net_start_one_page_per_feeder(void** state); void sane_kds_s2000w_net_start_two_pages_per_feeder(void** state); -void sane_kds_s2000w_net_get_parameter_cancel(); void sane_kds_s2000w_net_cancel(); void sane_kds_s2000w_net_open(); void sane_kds_s2000w_net_open_busy_device(); diff --git a/tests/kds_s2000w_net_tests_run.c b/tests/kds_s2000w_net_tests_run.c index 775a4ff..0a30e9d 100644 --- a/tests/kds_s2000w_net_tests_run.c +++ b/tests/kds_s2000w_net_tests_run.c @@ -69,7 +69,6 @@ int main() cmocka_unit_test(kds_s2000w_net_set_io_mode), cmocka_unit_test(kds_s2000w_net_get_select_fd), cmocka_unit_test(sane_kds_s2000w_net_start_cancel), - cmocka_unit_test(sane_kds_s2000w_net_get_parameter_cancel), cmocka_unit_test(sane_kds_s2000w_net_cancel), cmocka_unit_test(sane_kds_s2000w_net_open), cmocka_unit_test(sane_kds_s2000w_net_open_busy_device),