diff --git a/.docker/build.Dockerfile b/.docker/build.Dockerfile index 44e0febcb..77c4b86fb 100644 --- a/.docker/build.Dockerfile +++ b/.docker/build.Dockerfile @@ -2,7 +2,7 @@ ARG GVM_LIBS_VERSION=oldstable # We want gvm-libs to be ready so we use the build docker image of gvm-libs -FROM greenbone/gvm-libs:$GVM_LIBS_VERSION +FROM registry.community.greenbone.net/community/gvm-libs:${GVM_LIBS_VERSION} # This will make apt-get install without question ARG DEBIAN_FRONTEND=noninteractive diff --git a/.docker/prod.Dockerfile b/.docker/prod.Dockerfile index fdff43940..3def718a6 100644 --- a/.docker/prod.Dockerfile +++ b/.docker/prod.Dockerfile @@ -27,7 +27,7 @@ RUN mkdir /build \ && cmake -DCMAKE_BUILD_TYPE=Release /source \ && make DESTDIR=/install install -FROM greenbone/gvm-libs:${GVM_LIBS_VERSION} +FROM registry.community.greenbone.net/community/gvm-libs:${GVM_LIBS_VERSION} ARG DEBIAN_FRONTEND=noninteractive diff --git a/CMakeLists.txt b/CMakeLists.txt index b6094853f..1041cdc9b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ cmake_minimum_required (VERSION 3.0) message ("-- Configuring gsad") -project (gsad VERSION 22.11.1 LANGUAGES C) +project (gsad VERSION 24.0.1 LANGUAGES C) if (NOT DEFINED PROJECT_VERSION_STRING) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake) diff --git a/src/gsad_gmp.c b/src/gsad_gmp.c index 2550adf70..5953338e2 100644 --- a/src/gsad_gmp.c +++ b/src/gsad_gmp.c @@ -11984,6 +11984,7 @@ save_my_settings_gmp (gvm_connection_t *connection, credentials_t *credentials, { const char *lang, *text, *old_passwd, *passwd, *max; const char *details_fname, *list_fname, *report_fname; + const char *time_format, *date_format; gchar *lang_64, *text_64, *max_64, *fname_64; GString *xml; entity_t entity; @@ -12004,6 +12005,8 @@ save_my_settings_gmp (gvm_connection_t *connection, credentials_t *credentials, details_fname = params_value (params, "details_fname"); list_fname = params_value (params, "list_fname"); report_fname = params_value (params, "report_fname"); + time_format = params_value (params, "time_format"); + date_format = params_value (params, "date_format"); CHECK_VARIABLE_INVALID (text, "Save Settings") CHECK_VARIABLE_INVALID (text, "Save Settings") @@ -12013,6 +12016,8 @@ save_my_settings_gmp (gvm_connection_t *connection, credentials_t *credentials, CHECK_VARIABLE_INVALID (details_fname, "Save Settings") CHECK_VARIABLE_INVALID (list_fname, "Save Settings") CHECK_VARIABLE_INVALID (report_fname, "Save Settings") + CHECK_VARIABLE_INVALID (time_format, "Save Settings") + CHECK_VARIABLE_INVALID (date_format, "Save Settings") xml = g_string_new (""); @@ -12638,6 +12643,110 @@ save_my_settings_gmp (gvm_connection_t *connection, credentials_t *credentials, } } + /* Send User Interface Time Format. */ + changed_value = params_value (changed, "time_format"); + if (changed_value == NULL + || (strcmp (changed_value, "") && strcmp (changed_value, "0"))) + { + gchar *time_format_64 = + g_base64_encode ((guchar *) time_format, strlen (time_format)); + + if (gvm_connection_sendf (connection, + "" + "%s" + "", + time_format_64 ? time_format_64 : "") + == -1) + { + g_free (time_format_64); + cmd_response_data_set_status_code (response_data, + MHD_HTTP_INTERNAL_SERVER_ERROR); + return gsad_message ( + credentials, "Internal error", __func__, __LINE__, + "An internal error occurred while saving settings. " + "It is unclear whether all the settings were saved. " + "Diagnostics: Failure to send command to manager daemon.", + response_data); + } + g_free (time_format_64); + + entity = NULL; + xml_string_append (xml, "", + "11deb7ff-550b-4950-aacf-06faeb7c61b9"); + if (read_entity_and_string_c (connection, &entity, &xml)) + { + g_string_free (xml, TRUE); + cmd_response_data_set_status_code (response_data, + MHD_HTTP_INTERNAL_SERVER_ERROR); + return gsad_message ( + credentials, "Internal error", __func__, __LINE__, + "An internal error occurred while saving settings. " + "It is unclear whether all the settings were saved. " + "Diagnostics: Failure to receive response from manager daemon.", + response_data); + } + xml_string_append (xml, ""); + if (gmp_success (entity) != 1) + { + set_http_status_from_entity (entity, response_data); + modify_failed = 1; + } + } + + /* Send User Interface Date Format. */ + changed_value = params_value (changed, "date_format"); + if (changed_value == NULL + || (strcmp (changed_value, "") && strcmp (changed_value, "0"))) + { + gchar *date_format_64 = + g_base64_encode ((guchar *) date_format, strlen (date_format)); + + if (gvm_connection_sendf (connection, + "" + "%s" + "", + date_format_64 ? date_format_64 : "") + == -1) + { + g_free (date_format_64); + cmd_response_data_set_status_code (response_data, + MHD_HTTP_INTERNAL_SERVER_ERROR); + return gsad_message ( + credentials, "Internal error", __func__, __LINE__, + "An internal error occurred while saving settings. " + "It is unclear whether all the settings were saved. " + "Diagnostics: Failure to send command to manager daemon.", + response_data); + } + g_free (date_format_64); + + entity = NULL; + xml_string_append (xml, "", + "d9857b7c-1159-4193-9bc0-18fae5473a69"); + if (read_entity_and_string_c (connection, &entity, &xml)) + { + g_string_free (xml, TRUE); + cmd_response_data_set_status_code (response_data, + MHD_HTTP_INTERNAL_SERVER_ERROR); + return gsad_message ( + credentials, "Internal error", __func__, __LINE__, + "An internal error occurred while saving settings. " + "It is unclear whether all the settings were saved. " + "Diagnostics: Failure to receive response from manager daemon.", + response_data); + } + xml_string_append (xml, ""); + if (gmp_success (entity) != 1) + { + set_http_status_from_entity (entity, response_data); + modify_failed = 1; + } + } + if (user_changed) { session_add_user (user_get_token (user), user); diff --git a/src/gsad_validator.c b/src/gsad_validator.c index 462be24f3..8199a3bf2 100644 --- a/src/gsad_validator.c +++ b/src/gsad_validator.c @@ -545,6 +545,8 @@ init_validator () "^(second|minute|hour|day|week|month|year|decade)$"); gvm_validator_add (validator, "chart_title", "(?s)^.*$"); gvm_validator_add (validator, "icalendar", "(?s)^BEGIN:VCALENDAR.+$"); + gvm_validator_add (validator, "time_format", "^(12|24|system_default)$"); + gvm_validator_add (validator, "date_format", "^(wmdy|wdmy|system_default)$"); /* Binary data params that should not use no UTF-8 validation */ gvm_validator_add_binary (validator, "certificate_bin");