Пример #1
0
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;
}
Пример #2
0
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;
}
Пример #3
0
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);
}