manager = tlm_manager_new (username);
if (manager) {
- _setup_unix_signal_handlers (manager);
-
- if (TRUE == tlm_manager_start (manager)) {
- g_main_loop_run (main_loop);
+ GValue value = G_VALUE_INIT;
+ g_value_init (&value, G_TYPE_BOOLEAN);
+ g_object_get_property(G_OBJECT(manager),"dbus-connected", &value);
+
+ if (g_value_get_boolean(&value)) {
+ _setup_unix_signal_handlers (manager);
+
+ if (TRUE == tlm_manager_start (manager)) {
+ g_main_loop_run (main_loop);
+ }
+ } else {
+ CRITICAL("Fail to get system bus!!! Shut down the tlm");
}
g_object_unref (G_OBJECT(manager));
enum {
PROP_0,
PROP_INITIAL_USER,
+ PROP_DBUS_CONNECTED,
N_PROPERTIES
};
static GParamSpec *pspecs[N_PROPERTIES];
case PROP_INITIAL_USER:
g_value_set_string (value, manager->priv->initial_user);
break;
+ case PROP_DBUS_CONNECTED:
+ if (manager->priv->connection)
+ g_value_set_boolean (value, TRUE);
+ else
+ g_value_set_boolean (value, FALSE);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (obj, property_id, pspec);
}
manager = G_OBJECT_CLASS (tlm_manager_parent_class)->
constructor (gtype, n_prop, prop);
g_object_add_weak_pointer (G_OBJECT(manager), (gpointer*)&manager);
-
+
return manager;
}
"User name for initial auto-login",
NULL,
G_PARAM_READWRITE|G_PARAM_CONSTRUCT_ONLY|G_PARAM_STATIC_STRINGS);
+
+ pspecs[PROP_DBUS_CONNECTED] =
+ g_param_spec_boolean ("dbus-connected",
+ "dbus connected",
+ "dbus connected",
+ FALSE,
+ G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+
g_object_class_install_properties (g_klass, N_PROPERTIES, pspecs);
signals[SIG_SEAT_ADDED] = g_signal_new ("seat-added",
TlmManagerPrivate *priv = TLM_MANAGER_PRIV (manager);
priv->config = tlm_config_new ();
- priv->connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error);
- if (!priv->connection) {
- CRITICAL ("error getting system bus: %s", error->message);
- g_error_free (error);
- return;
- }
priv->seats = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
(GDestroyNotify)g_object_unref);
"default"));
_load_auth_plugins (manager);
+ priv->connection = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, &error);
+ if (!priv->connection) {
+ CRITICAL ("error getting system bus: %s", error->message);
+ g_error_free (error);
+ return;
+ }
+
/* delete tlm runtime directory */
tlm_utils_delete_dir (TLM_DBUS_SOCKET_PATH);
priv->dbus_observer = TLM_DBUS_OBSERVER (tlm_dbus_observer_new (manager,