static gboolean ibus_server_listen_internal (IBusServer *server, const gchar *address) { g_assert (IBUS_IS_SERVER (server)); g_assert (address != NULL); IBusServerPrivate *priv; DBusError error; priv = IBUS_SERVER_GET_PRIVATE (server); g_assert (priv->server == NULL); dbus_error_init (&error); priv->server = dbus_server_listen (address, &error); if (priv->server == NULL) { g_warning ("Can not listen on '%s':\n" " %s:%s", address, error.name, error.message); return FALSE; } dbus_server_set_new_connection_function (priv->server, (DBusNewConnectionFunction) _new_connection_cb, server, NULL); dbus_server_set_auth_mechanisms (priv->server, NULL); ibus_dbus_server_setup (priv->server); return TRUE; }
static dbus_bool_t setup_server (BusContext *context, DBusServer *server, char **auth_mechanisms, DBusError *error) { BusServerData *bd; bd = dbus_new0 (BusServerData, 1); if (bd == NULL || !dbus_server_set_data (server, server_data_slot, bd, free_server_data)) { dbus_free (bd); BUS_SET_OOM (error); return FALSE; } bd->context = context; if (!dbus_server_set_auth_mechanisms (server, (const char**) auth_mechanisms)) { BUS_SET_OOM (error); return FALSE; } dbus_server_set_new_connection_function (server, new_connection_callback, context, NULL); if (!dbus_server_set_watch_functions (server, add_server_watch, remove_server_watch, toggle_server_watch, server, NULL)) { BUS_SET_OOM (error); return FALSE; } if (!dbus_server_set_timeout_functions (server, add_server_timeout, remove_server_timeout, NULL, server, NULL)) { BUS_SET_OOM (error); return FALSE; } return TRUE; }
gboolean ibus_server_set_auth_mechanisms (IBusServer *server, const gchar **mechanisms) { g_assert (IBUS_IS_SERVER (server)); IBusServerPrivate *priv; priv = IBUS_SERVER_GET_PRIVATE (server); g_assert (priv->server != NULL); return dbus_server_set_auth_mechanisms (priv->server, mechanisms); }