int main (int argc, char **argv) { GConfClient *client; GConfEngine *conf; GError *error = NULL; const char *config_source; if (g_getenv ("GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL")) { fprintf (stderr, _("GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL is set, not installing schemas\n")); return 0; } g_type_init (); config_source = g_getenv ("GCONF_CONFIG_SOURCE"); if (!config_source) { fprintf (stderr, _("Must set the GCONF_CONFIG_SOURCE environment variable\n")); return -1; } if (*config_source == '\0') config_source = NULL; /* shut down daemon, this is a race condition, but will usually work. */ gconf_shutdown_daemon (NULL); if (!config_source) conf = gconf_engine_get_default (); else conf = gconf_engine_get_local (config_source, &error); if (!conf) { g_assert (error != NULL); fprintf (stderr, _("Failed to access configuration source(s): %s\n"), error->message); g_error_free (error); return -1; } client = gconf_client_get_for_engine (conf); install_default_macros_list (client, MC_PATTERNS_SHEMA_KEY, G_STRUCT_OFFSET (MCDefaultMacro, pattern)); install_default_macros_list (client, MC_COMMANDS_SHEMA_KEY, G_STRUCT_OFFSET (MCDefaultMacro, command)); install_default_macros_list (client, MC_DEPRECATED_PATTERNS_SHEMA_KEY, G_STRUCT_OFFSET (MCDefaultMacro, pattern)); install_default_macros_list (client, MC_DEPRECATED_COMMANDS_SHEMA_KEY, G_STRUCT_OFFSET (MCDefaultMacro, command)); gconf_client_suggest_sync (client, &error); if (error) { fprintf (stderr, _("Error syncing config data: %s"), error->message); g_error_free (error); return 1; } gconf_engine_unref (conf); g_object_unref (client); return 0; }
static scm_sizet free_gconf (SCM obj) { GConfEngine* conf = SCM_TO_GCONF(obj); static const scm_sizet size = sizeof(GConfEngine); gh_defer_ints(); gconf_engine_unref(conf); gh_allow_ints(); return size; }
int main (int argc, char** argv) { GConfEngine* conf; GError* err = NULL; setlocale (LC_ALL, ""); if (!gconf_init(argc, argv, &err)) { g_assert(err != NULL); fprintf(stderr, "Failed to init GConf: %s\n", err->message); fflush(stderr); g_error_free(err); err = NULL; return 1; } conf = gconf_engine_get_default(); check(conf != NULL, "create the default conf engine"); printf("\nChecking list storage:"); check_list_storage(conf); printf("\nChecking integer storage:"); check_int_storage(conf); printf("\nChecking float storage:"); check_float_storage(conf); printf("\nChecking string storage:"); check_string_storage(conf); printf("\nChecking bool storage:"); check_bool_storage(conf); gconf_engine_unref(conf); printf("\n\n"); return 0; }
int main(int argc, char** argv) { GConfEngine* conf = gconf_engine_get_default(); gchar* config_system_path = gconf_engine_get_string(conf, "/apps/intel_services_manager/11111111-1111-1111-111111111111/System/config_system_path", NULL); gchar* host = gconf_engine_get_string(conf, "/system/http_proxy/host", NULL); gint port = gconf_engine_get_int(conf, "/system/http_proxy/port", NULL); gboolean enabled = gconf_engine_get_bool(conf, "/system/http_proxy/use_http_proxy", NULL); printf("PROXY SETTINGS\n"); printf("config_system_path: %s\n", config_system_path ? config_system_path : ""); printf("host : %s\n", host ? host : ""); printf("port : %i\n", port); printf("enabled: %i\n", enabled); gconf_engine_unref(conf); return 0; }
static void unset_in_db (GConfDefaults *mechanism, const gchar *address, const gchar **includes, const gchar **excludes, GError **error) { GConfEngine *engine; GConfClient *dest = NULL; GConfChangeSet *changes = NULL; int i; engine = gconf_engine_get_local (address, error); if (*error) goto out; dest = gconf_client_get_for_engine (engine); gconf_engine_unref (engine); changes = gconf_change_set_new (); /* recursively copy each include, leaving out the excludes */ for (i = 0; includes[i]; i++) { if (gconf_client_dir_exists (dest, includes[i], NULL)) unset_tree (dest, includes[i], changes, excludes); else unset_entry (dest, includes[i], changes, excludes); } gconf_client_commit_change_set (dest, changes, TRUE, error); gconf_client_suggest_sync (dest, NULL); out: if (dest) g_object_unref (dest); if (changes) gconf_change_set_unref (changes); }
void preferences_deinit () { gconf_engine_unref (preferences_engine); preferences_engine = NULL; }
static void do_copy_authorized (GConfDefaults *mechanism, DBusGMethodInvocation *context, gpointer user_data) { CopyData *data = user_data; GConfClient *source = NULL; GConfClient *dest = NULL; GConfChangeSet *changes = NULL; GConfEngine *engine; char *address = NULL; gint i; GError *error; error = NULL; engine = gconf_engine_get_local (data->dest_address, &error); if (error) goto cleanup; dest = gconf_client_get_for_engine (engine); gconf_engine_unref (engine); /* find the address to from the caller id */ address = gconf_address_for_caller (data->mechanism, data->context, &error); if (error) goto cleanup; engine = gconf_engine_get_local (address, &error); if (error) goto cleanup; source = gconf_client_get_for_engine (engine); gconf_engine_unref (engine); changes = gconf_change_set_new (); if (data->value) { g_assert (data->includes[1] == NULL); g_assert (data->excludes == NULL); gconf_change_set_set (changes, data->includes[0], data->value); } else { /* recursively copy each include, leaving out the excludes */ for (i = 0; data->includes[i]; i++) { if (gconf_client_dir_exists (source, data->includes[i], NULL)) copy_tree (source, data->includes[i], changes, (const char **)data->excludes); else copy_entry (source, data->includes[i], changes, (const char **)data->excludes); } } gconf_client_commit_change_set (dest, changes, FALSE, &error); gconf_client_suggest_sync (dest, NULL); if (data->changeset_callback) { data->changeset_callback (data->mechanism, changes, data->user_data); } cleanup: g_free (address); if (changes) gconf_change_set_unref (changes); if (dest) g_object_unref (dest); if (source) g_object_unref (source); if (error) { throw_error (data->context, GCONF_DEFAULTS_ERROR_GENERAL, "%s", error->message); g_error_free (error); } else dbus_g_method_return (data->context); }
static void do_set_value (GConfDefaults *mechanism, gboolean mandatory, const char *path, const char *value, DBusGMethodInvocation *context, GConfChangeSet **changeset_out) { GConfClient *dest = NULL; GConfChangeSet *changes = NULL; GConfEngine *engine; GConfValue *gvalue; GError *error; GError *error2; const char *action; const char *annotation_key; const char *default_action; const char *dest_address; if (changeset_out) *changeset_out = NULL; stop_killtimer (); if (mandatory) { annotation_key = "org.gnome.gconf.defaults.set-mandatory.prefix"; default_action = "org.gnome.gconf.defaults.set-mandatory"; dest_address = "xml:merged:/etc/gconf/gconf.xml.mandatory"; } else { annotation_key = "org.gnome.gconf.defaults.set-system.prefix"; default_action = "org.gnome.gconf.defaults.set-system"; dest_address = "xml:merged:/etc/gconf/gconf.xml.system"; } action = polkit_action_for_gconf_path (mechanism, annotation_key, path); if (action == NULL) action = default_action; if (!check_polkit_for_action (mechanism, context, action)) goto out; error = NULL; engine = gconf_engine_get_local (dest_address, &error); if (error) goto cleanup; dest = gconf_client_get_for_engine (engine); gconf_engine_unref (engine); changes = gconf_change_set_new (); gvalue = gconf_value_decode (value); if (!gvalue) goto cleanup; gconf_change_set_set (changes, path, gvalue); gconf_value_free (gvalue); gconf_client_commit_change_set (dest, changes, FALSE, &error); gconf_client_suggest_sync (dest, NULL); if (changeset_out) { *changeset_out = changes; changes = NULL; } cleanup: if (changes) gconf_change_set_unref (changes); if (dest) g_object_unref (dest); if (error) { g_print ("failed to set GConf values: %s\n", error->message); error2 = g_error_new_literal (GCONF_DEFAULTS_ERROR, GCONF_DEFAULTS_ERROR_GENERAL, error->message); g_error_free (error); dbus_g_method_return_error (context, error2); g_error_free (error2); } else dbus_g_method_return (context); out: start_killtimer (); }
static void do_copy (GConfDefaults *mechanism, gboolean mandatory, const char **includes, const char **excludes, DBusGMethodInvocation *context, GConfChangeSet **changeset_out) { char *address = NULL; GConfClient *source = NULL; GConfClient *dest = NULL; GConfChangeSet *changes = NULL; GConfEngine *engine; GError *error; GError *error2; const char *action; const char *annotation_key; const char *default_action; const char *dest_address; int i; if (changeset_out) *changeset_out = NULL; stop_killtimer (); /* check privileges for each include */ if (mandatory) { annotation_key = "org.gnome.gconf.defaults.set-mandatory.prefix"; default_action = "org.gnome.gconf.defaults.set-mandatory"; dest_address = "xml:merged:" SYSGCONFDIR "/gconf.xml.mandatory"; } else { annotation_key = "org.gnome.gconf.defaults.set-system.prefix"; default_action = "org.gnome.gconf.defaults.set-system"; dest_address = "xml:merged:" SYSGCONFDIR "/gconf.xml.system"; } for (i = 0; includes[i]; i++) { action = polkit_action_for_gconf_path (mechanism, annotation_key, includes[i]); if (action == NULL) action = default_action; if (!check_polkit_for_action (mechanism, context, action)) goto out; } error = NULL; engine = gconf_engine_get_local (dest_address, &error); if (error) goto cleanup; dest = gconf_client_get_for_engine (engine); gconf_engine_unref (engine); /* find the address to from the caller id */ address = gconf_address_for_caller (mechanism, context, &error); if (error) goto cleanup; engine = gconf_engine_get_local (address, &error); if (error) goto cleanup; source = gconf_client_get_for_engine (engine); gconf_engine_unref (engine); changes = gconf_change_set_new (); /* recursively copy each include, leaving out the excludes */ for (i = 0; includes[i]; i++) { if (gconf_client_dir_exists (source, includes[i], NULL)) copy_tree (source, includes[i], changes, excludes); else copy_entry (source, includes[i], changes, excludes); } gconf_client_commit_change_set (dest, changes, FALSE, &error); gconf_client_suggest_sync (dest, NULL); if (changeset_out) { *changeset_out = changes; changes = NULL; } cleanup: g_free (address); if (changes) gconf_change_set_unref (changes); if (dest) g_object_unref (dest); if (source) g_object_unref (source); if (error) { g_print ("failed to set GConf values: %s\n", error->message); error2 = g_error_new_literal (GCONF_DEFAULTS_ERROR, GCONF_DEFAULTS_ERROR_GENERAL, error->message); g_error_free (error); dbus_g_method_return_error (context, error2); g_error_free (error2); } else dbus_g_method_return (context); out: start_killtimer (); }