static void server_real_handle_get_db (DBusConnection *connection, DBusMessage *message, GSList *addresses) { GConfDatabase *db; DBusMessage *reply; GError *gerror = NULL; const gchar *str; if (gconfd_dbus_check_in_shutdown (connection, message)) return; db = gconfd_obtain_database (addresses, &gerror); if (gconfd_dbus_set_exception (connection, message, &gerror)) return; reply = dbus_message_new_method_return (message); if (reply == NULL) g_error ("No memory"); str = gconf_database_dbus_get_path (db); dbus_message_append_args (reply, DBUS_TYPE_OBJECT_PATH, &str, DBUS_TYPE_INVALID); if (!dbus_connection_send (connection, reply, NULL)) g_error ("No memory"); dbus_message_unref (reply); }
static void server_handle_shutdown (DBusConnection *connection, DBusMessage *message) { DBusMessage *reply; if (gconfd_dbus_check_in_shutdown (connection, message)) return; gconf_log(GCL_DEBUG, _("Shutdown request received")); reply = dbus_message_new_method_return (message); dbus_connection_send (connection, reply, NULL); dbus_message_unref (reply); dbus_connection_unregister_object_path (connection, server_path); gconfd_main_quit(); }
static DBusHandlerResult server_message_func (DBusConnection *connection, DBusMessage *message, void *user_data) { if (gconfd_dbus_check_in_shutdown (connection, message)) return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; if (dbus_message_get_type (message) != DBUS_MESSAGE_TYPE_METHOD_CALL) { g_print ("Not a method call\n"); return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } if (g_strcmp0 (dbus_message_get_interface (message), GCONF_DBUS_SERVER_INTERFACE) != 0) { g_print ("Not correct interface: \"%s\"\n", dbus_message_get_interface (message)); return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } if (dbus_message_is_method_call (message, GCONF_DBUS_SERVER_INTERFACE, GCONF_DBUS_SERVER_GET_DEFAULT_DB)) server_handle_get_default_db (connection, message); else if (dbus_message_is_method_call (message, GCONF_DBUS_SERVER_INTERFACE, GCONF_DBUS_SERVER_GET_DB)) server_handle_get_db (connection, message); else if (dbus_message_is_method_call (message, GCONF_DBUS_SERVER_INTERFACE, GCONF_DBUS_SERVER_SHUTDOWN)) server_handle_shutdown (connection, message); else return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; return DBUS_HANDLER_RESULT_HANDLED; }
static DBusHandlerResult database_message_func (DBusConnection *connection, DBusMessage *message, GConfDatabase *db) { if (gconfd_dbus_check_in_shutdown (connection, message)) return DBUS_HANDLER_RESULT_HANDLED; if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_LOOKUP)) { database_handle_lookup (connection, message, db); } else if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_LOOKUP_EXTENDED)) { database_handle_lookup_ext (connection, message, db); } else if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_LOOKUP_DEFAULT)) { database_handle_lookup_default (connection, message, db); } else if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_SET)) { database_handle_set (connection, message, db); } else if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_UNSET)) { database_handle_unset (connection, message, db); } else if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_RECURSIVE_UNSET)) { database_handle_recursive_unset (connection, message, db); } else if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_DIR_EXISTS)) { database_handle_dir_exists (connection, message, db); } else if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_GET_ALL_ENTRIES)) { database_handle_get_all_entries (connection, message, db); } else if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_GET_ALL_DIRS)) { database_handle_get_all_dirs (connection, message, db); } else if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_SET_SCHEMA)) { database_handle_set_schema (connection, message, db); } else if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_SUGGEST_SYNC)) { database_handle_suggest_sync (connection, message, db); } else if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_ADD_NOTIFY)) { database_handle_add_notify (connection, message, db); } else if (dbus_message_is_method_call (message, GCONF_DBUS_DATABASE_INTERFACE, GCONF_DBUS_DATABASE_REMOVE_NOTIFY)) { database_handle_remove_notify (connection, message, db); } else { return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; } return DBUS_HANDLER_RESULT_HANDLED; }