]> gitweb.hhaalo.de Git - sane-kds-s2000w-net.git/commitdiff
reset handler option by cancel
authorBastian Dehn <hhaalo@arcor.de>
Thu, 28 Mar 2024 18:20:44 +0000 (19:20 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Thu, 28 Mar 2024 18:20:44 +0000 (19:20 +0100)
src/kds_s2000w_net.c
tests/kds_s2000w_net_read_tests.c

index 602b5ed0f3d469b03afc41c74d306c4040faa31e..0b5ac81e7953d5331c3915fa37ede75ef4965388 100644 (file)
@@ -207,6 +207,24 @@ SANE_Status _sane_kds_s2000w_net_read(SANE_Handle handle, SANE_Byte* data,
        if (h->read_info->cancel) {
                *length = 0;
                h->read_info->cancel = 0;
+               h->current_scan_status->current_image_number = 1;
+               h->current_scan_status->available_images = 0;
+               h->current_scan_status->downloaded_images = 0;
+               h->current_scan_status->complete_scanned = 0;
+               h->current_metadata->pixels_per_line = 0;
+               h->current_metadata->lines = 0;
+               h->current_metadata->valid = 0;
+               h->current_metadata->scanned_all_complete = 0;
+               h->read_info->scan_started = 0;
+               h->read_info->read_size = 0;
+               h->read_info->readed_bytes_per_line = 0;
+               h->read_info->readed_lines = 0;
+               free(h->jpg_image->data);
+               h->jpg_image->data = NULL;
+               h->jpg_image->size = 0;
+               free(h->pnm_image->data);
+               h->pnm_image->data = NULL;
+               h->pnm_image->size = 0;
                kds_s2000w_handler_recreate_session(h);
                return SANE_STATUS_CANCELLED;
        }
index f1d9f31189a9384144834edcd128823e70610e67..65eca99b2816f4f7ff9ac9a62e2dbcbd290a7146 100644 (file)
@@ -24,6 +24,25 @@ void sane_kds_s2000w_net_read_cancel_test()
        handler* h = init_handler();
        h->read_info->scan_started = 1;
        h->read_info->cancel = 1;
+       h->sessionid = 123123;
+       h->current_scan_status->current_image_number = 5;
+       h->current_scan_status->available_images = 20;
+       h->current_scan_status->downloaded_images = 4;
+       h->current_scan_status->complete_scanned = 1;
+       h->current_metadata->pixels_per_line = 1920;
+       h->current_metadata->lines = 1080;
+       h->current_metadata->valid = 1;
+       h->current_metadata->scanned_all_complete = 1;
+       h->read_info->scan_started = 1;
+       h->read_info->read_size = 10240;
+       h->read_info->readed_bytes_per_line = 1085;
+       h->read_info->readed_lines = 150;
+       h->jpg_image->data = malloc(sizeof(char) * 50);
+       h->jpg_image->size = 50;
+       h->jpg_image->data = memset(h->jpg_image->data, 15, h->jpg_image->size);
+       h->pnm_image->data = malloc(sizeof(char) * 100);
+       h->pnm_image->size = 100;
+       h->pnm_image->data = memset(h->pnm_image->data, 66, h->pnm_image->size);
        int* length = malloc(sizeof(int));
        *length = 0;
        response* resp_open_session = kds_s2000w_client_response_init();
@@ -46,6 +65,23 @@ void sane_kds_s2000w_net_read_cancel_test()
 
        assert_int_equal(h->read_info->cancel, 0);
        assert_int_equal(status, SANE_STATUS_CANCELLED);
+       assert_int_equal(h->sessionid, 8154711);
+       assert_int_equal(h->current_scan_status->current_image_number, 1);
+       assert_int_equal(h->current_scan_status->available_images, 0);
+       assert_int_equal(h->current_scan_status->downloaded_images, 0);
+       assert_int_equal(h->current_scan_status->complete_scanned, 0);
+       assert_int_equal(h->current_metadata->pixels_per_line, 0);
+       assert_int_equal(h->current_metadata->lines, 0);
+       assert_int_equal(h->current_metadata->valid, 0);
+       assert_int_equal(h->current_metadata->scanned_all_complete, 0);
+       assert_int_equal(h->read_info->scan_started, 0);
+       assert_int_equal(h->read_info->read_size, 0);
+       assert_int_equal(h->read_info->readed_bytes_per_line, 0);
+       assert_int_equal(h->read_info->readed_lines, 0);
+       assert_null(h->jpg_image->data);
+       assert_int_equal(h->jpg_image->size, 0);
+       assert_null(h->pnm_image->data);
+       assert_int_equal(h->pnm_image->size, 0);
 
        free(length);
        length = NULL;