diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2007-03-27 10:21:45 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2007-03-27 10:21:45 +0000 |
commit | 3ee5b90642bb7c8d2e88904600edac9d0d33efb4 (patch) | |
tree | a15bcf9975cd0b052a2f785b62df4546d5dd9255 /network/main.c | |
parent | 3e3f6b041fd5a9f876c9a2fd87be366cc5621c17 (diff) |
Improve D-Bus system bus integration
Diffstat (limited to 'network/main.c')
-rw-r--r-- | network/main.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/network/main.c b/network/main.c index 16a173c5..74675184 100644 --- a/network/main.c +++ b/network/main.c @@ -48,6 +48,7 @@ static void sig_term(int sig) int main(int argc, char *argv[]) { + DBusConnection *conn; struct sigaction sa; start_logging("network", "Bluetooth Network daemon"); @@ -64,18 +65,26 @@ int main(int argc, char *argv[]) enable_debug(); - /* Create event loop */ main_loop = g_main_loop_new(NULL, FALSE); - hal_init(NULL); + conn = dbus_bus_system_setup_with_main_loop(NULL, NULL, NULL); + if (!conn) { + g_main_loop_unref(main_loop); + exit(1); + } + + hal_init(conn); hal_create_device(NULL); - if (network_init() == -1) - goto fail; + if (network_init(conn) < 0) { + dbus_connection_unref(conn); + g_main_loop_unref(main_loop); + exit(1); + } if (argc > 1 && !strcmp(argv[1], "-s")) - internal_service("network"); + register_external_service(conn, "network", "Network service", ""); g_main_loop_run(main_loop); @@ -85,7 +94,8 @@ int main(int argc, char *argv[]) hal_cleanup(); -fail: + dbus_connection_unref(conn); + g_main_loop_unref(main_loop); info("Exit"); |