static void ParseCommon(map_string_t *settings, const char *conf_filename) { const char *value; value = get_map_string_item_or_NULL(settings, "OpenGPGCheck"); if (value) { settings_bOpenGPGCheck = string_to_bool(value); remove_map_string_item(settings, "OpenGPGCheck"); } value = get_map_string_item_or_NULL(settings, "BlackList"); if (value) { settings_setBlackListedPkgs = parse_list(value); remove_map_string_item(settings, "BlackList"); } value = get_map_string_item_or_NULL(settings, "BlackListedPaths"); if (value) { settings_setBlackListedPaths = parse_list(value); remove_map_string_item(settings, "BlackListedPaths"); } value = get_map_string_item_or_NULL(settings, "ProcessUnpackaged"); if (value) { settings_bProcessUnpackaged = string_to_bool(value); remove_map_string_item(settings, "ProcessUnpackaged"); } value = get_map_string_item_or_NULL(settings, "Interpreters"); if (value) { settings_Interpreters = parse_list(value); remove_map_string_item(settings, "Interpreters"); } map_string_iter_t iter; const char *name; /*char *value; - already declared */ init_map_string_iter(&iter, settings); while (next_map_string_iter(&iter, &name, &value)) { error_msg("Unrecognized variable '%s' in '%s'", name, conf_filename); } }
void set_app_user_setting(map_string_t *settings, const char *name, const char *value) { if (value) replace_map_string_item(settings, xstrdup(name), xstrdup(value)); else remove_map_string_item(settings, name); }
static void migrate_auto_reporting_to_gsettings(void) { #define OPT_NAME "AutoreportingEnabled" map_string_t *settings = new_map_string(); if (!load_app_conf_file(APP_NAME, settings)) goto finito; /* Silently ignore not configured options */ int sv_logmode = logmode; /* but only if we run in silent mode (no -v on command line) */ logmode = g_verbose == 0 ? 0 : sv_logmode; int auto_reporting = 0; int configured = try_get_map_string_item_as_bool(settings, OPT_NAME, &auto_reporting); logmode = sv_logmode; if (!configured) goto finito; /* Enable the GS option if AutoreportingEnabled is true because the user * turned the Autoreporting in abrt-applet in a before GS. * * Do not disable the GS option if AutoreportingEvent is false because the * GS option is false by default, thus disabling would revert the user's * decision to automatically report technical problems. */ if (auto_reporting) { GSettings *settings = g_settings_new(GS_SCHEMA_ID_PRIVACY); g_settings_set_boolean(settings, GS_PRIVACY_OPT_AUTO_REPORTING, TRUE); g_object_unref(settings); } remove_map_string_item(settings, OPT_NAME); save_app_conf_file(APP_NAME, settings); log("Successfully migrated "APP_NAME":"OPT_NAME" to "GS_SCHEMA_ID_PRIVACY":"GS_PRIVACY_OPT_AUTO_REPORTING); #undef OPT_NAME finito: free_map_string(settings); return; }
static void ParseCommon(map_string_t *settings, const char *conf_filename) { const char *value; value = get_map_string_item_or_NULL(settings, "WatchCrashdumpArchiveDir"); if (value) { g_settings_sWatchCrashdumpArchiveDir = xstrdup(value); remove_map_string_item(settings, "WatchCrashdumpArchiveDir"); } value = get_map_string_item_or_NULL(settings, "MaxCrashReportsSize"); if (value) { char *end; errno = 0; unsigned long ul = strtoul(value, &end, 10); if (errno || end == value || *end != '\0' || ul > INT_MAX) error_msg("Error parsing %s setting: '%s'", "MaxCrashReportsSize", value); else g_settings_nMaxCrashReportsSize = ul; remove_map_string_item(settings, "MaxCrashReportsSize"); } value = get_map_string_item_or_NULL(settings, "DumpLocation"); if (value) { g_settings_dump_location = xstrdup(value); remove_map_string_item(settings, "DumpLocation"); } else g_settings_dump_location = xstrdup(DEFAULT_DUMP_LOCATION); value = get_map_string_item_or_NULL(settings, "DeleteUploaded"); if (value) { g_settings_delete_uploaded = string_to_bool(value); remove_map_string_item(settings, "DeleteUploaded"); } value = get_map_string_item_or_NULL(settings, "AutoreportingEnabled"); if (value) { g_settings_autoreporting = string_to_bool(value); remove_map_string_item(settings, "AutoreportingEnabled"); } value = get_map_string_item_or_NULL(settings, "AutoreportingEvent"); if (value) { g_settings_autoreporting_event = xstrdup(value); remove_map_string_item(settings, "AutoreportingEvent"); } else g_settings_autoreporting_event = xstrdup("report_uReport"); value = get_map_string_item_or_NULL(settings, "ShortenedReporting"); if (value) { g_settings_shortenedreporting = string_to_bool(value); remove_map_string_item(settings, "ShortenedReporting"); } else { /* Default: enabled for GNOME desktop, else disabled */ const char *desktop_env = getenv("DESKTOP_SESSION"); g_settings_shortenedreporting = (desktop_env && strcasestr(desktop_env, "gnome") != NULL); } value = get_map_string_item_or_NULL(settings, "ExploreChroots"); if (value) { g_settings_explorechroots = string_to_bool(value); remove_map_string_item(settings, "ExploreChroots"); } else g_settings_explorechroots = false; value = get_map_string_item_or_NULL(settings, "DebugLevel"); if (value) { char *end; errno = 0; unsigned long ul = strtoul(value, &end, 10); if (errno || end == value || *end != '\0' || ul > INT_MAX) error_msg("Error parsing %s setting: '%s'", "DebugLevel", value); else g_settings_debug_level = ul; remove_map_string_item(settings, "DebugLevel"); } GHashTableIter iter; const char *name; /*char *value; - already declared */ init_map_string_iter(&iter, settings); while (next_map_string_iter(&iter, &name, &value)) { error_msg("Unrecognized variable '%s' in '%s'", name, conf_filename); } }