Exemplo n.º 1
0
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);
}
Exemplo n.º 2
0
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();
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
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;
}