From: Bastian Dehn Date: Wed, 27 Mar 2024 18:06:51 +0000 (+0100) Subject: cancel without do anything X-Git-Tag: v1.0.0^2~46^2~3 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=8b3dc0763fae2a746386d06d467ee0ee7262f6c1;p=sane-kds-s2000w-net.git cancel without do anything --- diff --git a/src/kds_s2000w_net.c b/src/kds_s2000w_net.c index 1cc71cb..e940e75 100644 --- a/src/kds_s2000w_net.c +++ b/src/kds_s2000w_net.c @@ -127,10 +127,8 @@ SANE_Status _sane_kds_s2000w_net_get_parameters(SANE_Handle handle, debug_printf(ALL, "sane_kds_s2000w_net_get_parameters"); handler* h = (handler*) handle; - if (h->read_info->cancel) { - reset_handler(h); + if (h->read_info->cancel) return SANE_STATUS_CANCELLED; - } params->format = h->current_metadata->format; params->last_frame = h->current_metadata->is_last; @@ -158,11 +156,6 @@ SANE_Status _sane_kds_s2000w_net_start(SANE_Handle handle) debug_printf(ALL, "sane_kds_s2000w_net_start"); handler* h = (handler*) handle; - if (h->read_info->cancel) { - reset_handler(h); - return SANE_STATUS_CANCELLED; - } - if (!h->read_info->scan_started) { h->read_info->cancel = 0; h->read_info->scan_started = 1; @@ -170,6 +163,9 @@ SANE_Status _sane_kds_s2000w_net_start(SANE_Handle handle) kds_s2000w_handler_start_scan(h); } + if (h->read_info->cancel) + return SANE_STATUS_CANCELLED; + for (int i = 0; i < 200; i++) { usleep(500000); kds_s2000w_handler_get_parameters(h); @@ -209,7 +205,6 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data, // cancel if (h->read_info->cancel) { - reset_handler(h); *length = 0; return SANE_STATUS_CANCELLED; } diff --git a/tests/kds_s2000w_net_read_tests.c b/tests/kds_s2000w_net_read_tests.c index 8b6f712..7679f08 100644 --- a/tests/kds_s2000w_net_read_tests.c +++ b/tests/kds_s2000w_net_read_tests.c @@ -29,8 +29,7 @@ void sane_kds_s2000w_net_read_cancel_test() 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(h->read_info->cancel, 1); assert_int_equal(status, SANE_STATUS_CANCELLED); free(length); diff --git a/tests/kds_s2000w_net_tests.c b/tests/kds_s2000w_net_tests.c index ccceb5a..3107ff2 100644 --- a/tests/kds_s2000w_net_tests.c +++ b/tests/kds_s2000w_net_tests.c @@ -528,11 +528,12 @@ void sane_kds_s2000w_net_control_get_option_twentytwo(void** state) void sane_kds_s2000w_net_start_cancel() { handler* h = init_handler(); + h->read_info->scan_started = 1; h->read_info->cancel = 1; SANE_Status status = _sane_kds_s2000w_net_start(h); - assert_int_equal(h->read_info->cancel, 0); + assert_int_equal(h->read_info->cancel, 1); assert_int_equal(status, SANE_STATUS_CANCELLED); free_handler(h); @@ -866,7 +867,7 @@ void sane_kds_s2000w_net_get_parameter_cancel() SANE_Status status = _sane_kds_s2000w_net_get_parameters(h, NULL); - assert_int_equal(h->read_info->cancel, 0); + assert_int_equal(h->read_info->cancel, 1); assert_int_equal(status, SANE_STATUS_CANCELLED); free_handler(h);