summaryrefslogtreecommitdiffstats
path: root/network/main.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2007-03-27 10:21:45 +0000
committerMarcel Holtmann <marcel@holtmann.org>2007-03-27 10:21:45 +0000
commit3ee5b90642bb7c8d2e88904600edac9d0d33efb4 (patch)
treea15bcf9975cd0b052a2f785b62df4546d5dd9255 /network/main.c
parent3e3f6b041fd5a9f876c9a2fd87be366cc5621c17 (diff)
Improve D-Bus system bus integration
Diffstat (limited to 'network/main.c')
-rw-r--r--network/main.c22
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");