From: Bastian Dehn Date: Sat, 2 Mar 2024 21:39:01 +0000 (+0100) Subject: change usernmae and url from config file X-Git-Tag: v1.0.0^2~144^2~2 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=95fd0923e2fae60b7dab15f7645498227b3c06f7;p=sane-kds-s2000w-net.git change usernmae and url from config file --- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5e74dea..ef38615 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -40,5 +40,7 @@ target_link_libraries("sane-kds_s2000w_net" install(TARGETS "sane-kds_s2000w_net" DESTINATION ${SANE_LIBRARY_BACKEND_PATH}) -install(FILES "kds_s2000w_net.conf" - DESTINATION ${SANE_CONFIG_PATH}) \ No newline at end of file +if (NOT EXISTS ${SANE_CONFIG_PATH}/kds_s2000w_net.conf) + install(FILES "kds_s2000w_net.conf" + DESTINATION ${SANE_CONFIG_PATH}) +endif() \ No newline at end of file diff --git a/src/kds_s2000w_client.c b/src/kds_s2000w_client.c index 5624219..900f63c 100644 --- a/src/kds_s2000w_client.c +++ b/src/kds_s2000w_client.c @@ -3,6 +3,17 @@ #include #include "kds_s2000w_client.h" #include "kds_s2000w_debug.h" +#include "kds_s2000w_config.h" + +program_config p_config; + +void _kds_s2000w_client_load_config() +{ + const char* config_file = "/etc/sane.d/kds_s2000w_net.conf"; + char* config_stream = NULL; + read_config_file(config_file, &config_stream); + load_config(&p_config, config_stream); +} size_t _kds_s2000w_client_callback(char *ptr, size_t size, size_t nmemb, void *userdata) { @@ -47,20 +58,23 @@ void kds_s2000w_client_response_free(response* response) response = NULL; } -int kds_s2000w_client_open_session(const char* username, response* response) +int kds_s2000w_client_open_session(response* response) { debug_printf(ALL, "kds_s2000w_client_open_session"); + _kds_s2000w_client_load_config(); + CURL *curl = curl_easy_init(); if(!curl) return CURLE_FAILED_INIT; CURLU* url_handler = curl_url(); - curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de/api/session", 0); + curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0); + curl_url_set(url_handler, CURLUPART_PATH, "/api/session", 0); char* url = NULL; curl_url_get(url_handler, CURLUPART_URL, &url, 0); char body[50] = {0}; - sprintf(body, "{\"OCPUserName\": \"%s\"}", username); + sprintf(body, "{\"OCPUserName\": \"%s\"}", p_config.username); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_POST, 1L); @@ -110,7 +124,8 @@ int kds_s2000w_client_status_session(int64_t sessionid, response* response) return CURLE_FAILED_INIT; CURLU* url_handler = curl_url(); - curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de/api/session/status", 0); + curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0); + curl_url_set(url_handler, CURLUPART_PATH, "/api/session/status", 0); char* url = NULL; curl_url_get(url_handler, CURLUPART_URL, &url, 0); @@ -144,7 +159,8 @@ int kds_s2000w_client_start_scan(int64_t sessionid, response* response) return CURLE_FAILED_INIT; CURLU* url_handler = curl_url(); - curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de/api/session/startscan", 0); + curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0); + curl_url_set(url_handler, CURLUPART_PATH, "/api/session/startscan", 0); char* url = NULL; curl_url_get(url_handler, CURLUPART_URL, &url, 0); @@ -179,7 +195,8 @@ int kds_s2000w_client_stop_scan(int64_t sessionid, response* response) return CURLE_FAILED_INIT; CURLU* url_handler = curl_url(); - curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de/api/session/stopscan", 0); + curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0); + curl_url_set(url_handler, CURLUPART_PATH, "/api/session/stopscan", 0); char* url = NULL; curl_url_get(url_handler, CURLUPART_URL, &url, 0); @@ -216,7 +233,7 @@ int kds_s2000w_client_get_metadata(int64_t sessionid, int img_number, response* CURLU* url_handler = curl_url(); char url_path[30]; sprintf(url_path, "api/session/metadata/%i", img_number); - curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de", 0); + curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0); curl_url_set(url_handler, CURLUPART_PATH, url_path, 0); char* url = NULL; curl_url_get(url_handler, CURLUPART_URL, &url, 0); @@ -253,7 +270,7 @@ int kds_s2000w_client_get_image(int64_t sessionid, int img_number, response* res CURLU* url_handler = curl_url(); char url_path[30]; sprintf(url_path, "api/session/image/%i", img_number); - curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de", 0); + curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0); curl_url_set(url_handler, CURLUPART_PATH, url_path, 0); char* url = NULL; curl_url_get(url_handler, CURLUPART_URL, &url, 0); @@ -290,7 +307,7 @@ int kds_s2000w_client_delete_image(int64_t sessionid, int img_number, response* CURLU* url_handler = curl_url(); char url_path[30]; sprintf(url_path, "api/session/image/%i", img_number); - curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de", 0); + curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0); curl_url_set(url_handler, CURLUPART_PATH, url_path, 0); char* url = NULL; curl_url_get(url_handler, CURLUPART_URL, &url, 0); @@ -325,7 +342,8 @@ int kds_s2000w_client_get_capabilities(response* response) return CURLE_FAILED_INIT; CURLU* url_handler = curl_url(); - curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de/api/scanner/capabilities?V2", 0); + curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0); + curl_url_set(url_handler, CURLUPART_PATH, "/api/scanner/capabilities?V2", 0); char* url = NULL; curl_url_get(url_handler, CURLUPART_URL, &url, 0); @@ -354,7 +372,8 @@ int kds_s2000w_client_get_option(int64_t sessionid, response* response) return CURLE_FAILED_INIT; CURLU* url_handler = curl_url(); - curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de/api/session/configuration", 0); + curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0); + curl_url_set(url_handler, CURLUPART_PATH, "/api/session/configuration", 0); char* url = NULL; curl_url_get(url_handler, CURLUPART_URL, &url, 0); @@ -388,7 +407,8 @@ int kds_s2000w_client_set_option(int64_t sessionid, response* response) return CURLE_FAILED_INIT; CURLU* url_handler = curl_url(); - curl_url_set(url_handler, CURLUPART_URL, "http://scanner.lan.hhaalo.de/api/session/configuration", 0); + curl_url_set(url_handler, CURLUPART_URL, p_config.scanner_url, 0); + curl_url_set(url_handler, CURLUPART_PATH, "/api/session/configuration", 0); char* url = NULL; curl_url_get(url_handler, CURLUPART_URL, &url, 0); diff --git a/src/kds_s2000w_client.h b/src/kds_s2000w_client.h index 572e5c8..d7e40c8 100644 --- a/src/kds_s2000w_client.h +++ b/src/kds_s2000w_client.h @@ -8,7 +8,7 @@ typedef struct { response* kds_s2000w_client_response_init(); void kds_s2000w_client_response_free(response* response); -int kds_s2000w_client_open_session(const char* username, response* response); +int kds_s2000w_client_open_session(response* response); void kds_s2000w_client_close_session(int64_t sessionid); int kds_s2000w_client_status_session(int64_t sessionid, response* response); int kds_s2000w_client_start_scan(int64_t sessionid, response* response); diff --git a/src/kds_s2000w_handler.c b/src/kds_s2000w_handler.c index b55ad3b..72b935f 100644 --- a/src/kds_s2000w_handler.c +++ b/src/kds_s2000w_handler.c @@ -235,7 +235,7 @@ void kds_s2000w_handler_recreate_session(handler* h) { kds_s2000w_client_close_session(h->sessionid); response* resp = kds_s2000w_client_response_init(); - kds_s2000w_client_open_session("hhaalo", resp); + kds_s2000w_client_open_session(resp); if (resp->code == 200) { json_object* resp_config = json_tokener_parse(resp->data); @@ -268,14 +268,14 @@ void kds_s2000w_handler_open(const char* devicename, void** handle) pnm_image.data = NULL; response* resp = kds_s2000w_client_response_init(); - int result = kds_s2000w_client_open_session("hhaalo", resp); + int result = kds_s2000w_client_open_session(resp); if (resp->code == 408) { kds_s2000w_client_response_free(resp); resp = NULL; sleep(1); resp = kds_s2000w_client_response_init(); - result = kds_s2000w_client_open_session("hhaalo", resp); + result = kds_s2000w_client_open_session(resp); } if (result != 0 || resp->code == 404) { diff --git a/src/kds_s2000w_net.conf b/src/kds_s2000w_net.conf index 698f116..ac44887 100644 --- a/src/kds_s2000w_net.conf +++ b/src/kds_s2000w_net.conf @@ -1,2 +1,2 @@ scanner_url = http://scanner.example.com -username = muster +username = muster \ No newline at end of file