#include "display/core.h"
#include "log.h"
-#include "data.h"
+#include "common.h"
#include "edbus-handler.h"
#include "devices.h"
#include "shared/dbus.h"
#define PIDFILE_PATH "/var/run/.deviced.pid"
-static void init_ad(struct main_data *ad)
-{
- memset(ad, 0x0, sizeof(struct main_data));
-}
-
static void writepid(char *pidpath)
{
FILE *fp;
ecore_main_loop_quit();
}
-static void check_systemd_active(void)
+static int deviced_main(int argc, char **argv)
{
- DBusError err;
- DBusMessage *msg;
- DBusMessageIter iter, sub;
- const char *state;
- char *pa[2];
-
- pa[0] = "org.freedesktop.systemd1.Unit";
- pa[1] = "ActiveState";
-
- _I("%s %s", pa[0], pa[1]);
-
- msg = dbus_method_sync_with_reply("org.freedesktop.systemd1",
- "/org/freedesktop/systemd1/unit/default_2etarget",
- "org.freedesktop.DBus.Properties",
- "Get", "ss", pa);
- if (!msg)
- return;
-
- dbus_error_init(&err);
-
- if (!dbus_message_iter_init(msg, &iter) ||
- dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_VARIANT)
- goto out;
+ int ret;
- dbus_message_iter_recurse(&iter, &sub);
-
- if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRING)
- goto out;
-
- dbus_message_iter_get_basic(&sub, &state);
-
- if (strncmp(state, "active", 6) == 0) {
+ edbus_init(NULL);
+ devices_init(NULL);
+ ret = check_systemd_active();
+ if (ret == TRUE) {
_I("notify relaunch");
device_notify(DEVICE_NOTIFIER_BOOTING_DONE, (void *)TRUE);
}
-out:
- dbus_message_unref(msg);
- dbus_error_free(&err);
-}
-
-static int system_main(int argc, char **argv)
-{
- struct main_data ad;
-
- init_ad(&ad);
- edbus_init(&ad);
- devices_init(&ad);
- check_systemd_active();
signal(SIGTERM, sig_quit);
signal(SIGUSR1, sig_usr1);
ecore_main_loop_begin();
- devices_exit(&ad);
- edbus_exit(&ad);
+ devices_exit(NULL);
+ edbus_exit(NULL);
ecore_shutdown();
return 0;
}
{
writepid(PIDFILE_PATH);
ecore_init();
- return system_main(argc, argv);
+ return deviced_main(argc, argv);
}