summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYunmi Ha <yunmi.ha@samsung.com>2017-01-12 15:11:04 +0900
committerYunmi Ha <yunmi.ha@samsung.com>2017-01-12 15:11:46 +0900
commitf74e7e02dfecaefd0ae6339928c8c0382f2e9b0b (patch)
tree8f456f82ebf96019a0ee9eae75982906f08d4e82
parentd0a9faced7c354c3a85035d6e45586f5dd33ed21 (diff)
parentc7b37ce175b676d4d0337f91bdf445e855b339fb (diff)
downloadtlm-f74e7e02dfecaefd0ae6339928c8c0382f2e9b0b.tar.gz
tlm-f74e7e02dfecaefd0ae6339928c8c0382f2e9b0b.tar.bz2
tlm-f74e7e02dfecaefd0ae6339928c8c0382f2e9b0b.zip
Change-Id: Icdd251ed111e66299123dcfb05ffa6088741ebc4 Signed-off-by: Yunmi Ha <yunmi.ha@samsung.com>
-rwxr-xr-xpackaging/tlm.spec3
-rwxr-xr-xsrc/daemon/tlm-main.c16
-rwxr-xr-x[-rw-r--r--]src/daemon/tlm-manager.c30
3 files changed, 37 insertions, 12 deletions
diff --git a/packaging/tlm.spec b/packaging/tlm.spec
index e8c849f..02d2dcf 100755
--- a/packaging/tlm.spec
+++ b/packaging/tlm.spec
@@ -205,7 +205,8 @@ install -m 644 data/tizen-ivi/etc/profile.d/* %{buildroot}%{_sysconfdir}/profile
%endif
install -m 644 data/tizen-common/etc/tlm*.conf %{buildroot}%{_sysconfdir}
install -m 755 data/tizen-common/etc/session.d/* %{buildroot}%{_sysconfdir}/session.d/
-
+chmod 700 %{buildroot}%{_bindir}/%{name}
+chmod 700 %{buildroot}%{_bindir}/%{name}-sessiond
%post
/sbin/ldconfig
diff --git a/src/daemon/tlm-main.c b/src/daemon/tlm-main.c
index ab74eec..21fe477 100755
--- a/src/daemon/tlm-main.c
+++ b/src/daemon/tlm-main.c
@@ -145,10 +145,18 @@ int main(int argc, char *argv[])
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));
diff --git a/src/daemon/tlm-manager.c b/src/daemon/tlm-manager.c
index 8ba4ec8..72e7bed 100644..100755
--- a/src/daemon/tlm-manager.c
+++ b/src/daemon/tlm-manager.c
@@ -73,6 +73,7 @@ struct _TlmManagerPrivate
enum {
PROP_0,
PROP_INITIAL_USER,
+ PROP_DBUS_CONNECTED,
N_PROPERTIES
};
static GParamSpec *pspecs[N_PROPERTIES];
@@ -169,6 +170,12 @@ _manager_get_property (GObject *obj,
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);
}
@@ -184,7 +191,7 @@ tlm_manager_constructor (GType gtype, guint n_prop, GObjectConstructParam *prop)
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;
}
@@ -207,6 +214,14 @@ tlm_manager_class_init (TlmManagerClass *klass)
"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",
@@ -415,12 +430,6 @@ tlm_manager_init (TlmManager *manager)
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);
@@ -437,6 +446,13 @@ tlm_manager_init (TlmManager *manager)
"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,