From: Bastian Dehn Date: Sat, 20 Apr 2024 07:43:07 +0000 (+0200) Subject: set heart beat not under two seconds X-Git-Tag: v1.0.0^2~3 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=f9173b9262e8060170718a8bff9691d1dca2785d;p=sane-kds-s2000w-net.git set heart beat not under two seconds --- diff --git a/src/kds_s2000w_config.c b/src/kds_s2000w_config.c index 46f497d..9808f0a 100644 --- a/src/kds_s2000w_config.c +++ b/src/kds_s2000w_config.c @@ -42,14 +42,13 @@ void load_config(program_config* config, const char* config_stream) char* value_str = NULL; size_t str_length = 0; - if (strlen(config_stream) <= 0) { + if (strlen(config_stream) <= 0) return; - } cfg_opt_t opts[] = { CFG_STR("username", "", CFGF_NONE), CFG_STR("scanner_url", "", CFGF_NONE), - CFG_INT("heartbeat_seconds", 2, CFGF_NONE), + CFG_INT("heartbeat_seconds", 0, CFGF_NONE), CFG_END() }; @@ -69,6 +68,9 @@ void load_config(program_config* config, const char* config_stream) config->heartbeat = cfg_getint(cfg, "heartbeat_seconds"); + if (config->heartbeat < 2) + config->heartbeat = 2; + cfg_free(cfg); cfg = NULL; } \ No newline at end of file diff --git a/src/kds_s2000w_heartbeat.c b/src/kds_s2000w_heartbeat.c index 80b2ee7..1dd7c28 100644 --- a/src/kds_s2000w_heartbeat.c +++ b/src/kds_s2000w_heartbeat.c @@ -4,28 +4,15 @@ #include "kds_s2000w_config.h" #include "kds_s2000w_heartbeat.h" -program_config heartbeat_config; +extern program_config p_config; pthread_t pwait; void* _wait_thread(void *args) { - sleep(heartbeat_config.heartbeat); + sleep(p_config.heartbeat); return NULL; } -void _load_config() -{ - if (heartbeat_config.heartbeat != 0) - return; - - const char* config_file = CONFIG_FILE; - char* config_stream = read_config_file(config_file); - if (config_stream == NULL) - return; - - load_config(&heartbeat_config, config_stream); -} - void join_thread() { pthread_join(pwait, NULL); @@ -33,6 +20,5 @@ void join_thread() void wait_a_second() { - _load_config(); pthread_create(&pwait, NULL, _wait_thread, NULL); } \ No newline at end of file diff --git a/src/kds_s2000w_net.conf b/src/kds_s2000w_net.conf index f4a0fcd..96c8e3c 100644 --- a/src/kds_s2000w_net.conf +++ b/src/kds_s2000w_net.conf @@ -1,3 +1,4 @@ scanner_url = "https://scanner.example.com" username = "muster" -heartbeat_seconds = 2 \ No newline at end of file +# Scanner heart beat is by default 2 seconds before check next scan status, +# heartbeat_seconds = 2 \ No newline at end of file diff --git a/tests/kds_s2000w_read_config_tests.c b/tests/kds_s2000w_read_config_tests.c index fe6e642..34c2f6c 100644 --- a/tests/kds_s2000w_read_config_tests.c +++ b/tests/kds_s2000w_read_config_tests.c @@ -114,6 +114,23 @@ void kds_s200w_config_default_heartbeat_five_seconds() assert_int_equal(config->heartbeat, 5); + free(config->scanner_url); + config->scanner_url = NULL; + free(config->username); + config->username = NULL; + free(config); + config = NULL; +} + +void kds_s200w_config_default_heartbeat_zero_set_default() +{ + const char* input_stream = "heartbeat_seconds = 0\n"; + + program_config* config = malloc(sizeof(program_config)); + load_config(config, input_stream); + + assert_int_equal(config->heartbeat, 2); + free(config->scanner_url); config->scanner_url = NULL; free(config->username); diff --git a/tests/kds_s2000w_read_config_tests.h b/tests/kds_s2000w_read_config_tests.h index cfaf759..ae5e0f8 100644 --- a/tests/kds_s2000w_read_config_tests.h +++ b/tests/kds_s2000w_read_config_tests.h @@ -12,5 +12,6 @@ void kds_s2000w_config_multiple_parameters(); void kds_s2000w_config_read_empty_config(); void kds_s200w_config_default_heartbeat(); void kds_s200w_config_default_heartbeat_five_seconds(); +void kds_s200w_config_default_heartbeat_zero_set_default(); #endif \ No newline at end of file diff --git a/tests/kds_s2000w_read_config_tests_run.c b/tests/kds_s2000w_read_config_tests_run.c index 5a213ce..e26b9d5 100644 --- a/tests/kds_s2000w_read_config_tests_run.c +++ b/tests/kds_s2000w_read_config_tests_run.c @@ -8,7 +8,8 @@ int main() cmocka_unit_test(kds_s2000w_config_multiple_parameters), cmocka_unit_test(kds_s2000w_config_read_empty_config), cmocka_unit_test(kds_s200w_config_default_heartbeat), - cmocka_unit_test(kds_s200w_config_default_heartbeat_five_seconds) + cmocka_unit_test(kds_s200w_config_default_heartbeat_five_seconds), + cmocka_unit_test(kds_s200w_config_default_heartbeat_zero_set_default) }; return cmocka_run_group_tests(read_config, NULL, NULL);