From bf7c041b472b340434874a57fd934ba7036846cf Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Tue, 20 May 2014 21:44:13 -0700 Subject: [PATCH] core: Add support for creating private bus --- Makefile.am | 1 + src/main.c | 28 ++++++++++++++++++++++++++-- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index a840a4a3..750190be 100644 --- a/Makefile.am +++ b/Makefile.am @@ -34,6 +34,7 @@ ell_libell_internal_la_SOURCES = $(ell_sources) bin_PROGRAMS = src/iwd client/iwctl src_iwd_SOURCES = src/main.c linux/nl80211.h linux/kdbus.h \ + src/kdbus.h src/kdbus.c \ src/sha1.h src/sha1.c src_iwd_LDADD = ell/libell-internal.la diff --git a/src/main.c b/src/main.c index 2157677b..a6ea6a95 100644 --- a/src/main.c +++ b/src/main.c @@ -27,6 +27,8 @@ #include #include +#include "src/kdbus.h" + static void signal_handler(struct l_signal *signal, uint32_t signo, void *user_data) { @@ -43,6 +45,8 @@ int main(int argc, char *argv[]) { struct l_signal *signal; sigset_t mask; + char *bus_name; + int exit_status; sigemptyset(&mask); sigaddset(&mask, SIGINT); @@ -51,14 +55,34 @@ int main(int argc, char *argv[]) signal = l_signal_create(&mask, signal_handler, NULL, NULL); l_log_set_stderr(); + l_debug_enable("*"); l_info("Wireless daemon version %s", VERSION); - l_debug_enable("*"); + if (!kdbus_create_bus()) { + exit_status = EXIT_FAILURE; + goto done; + } + + bus_name = kdbus_lookup_bus(); + if (!bus_name) { + exit_status = EXIT_FAILURE; + goto destroy; + } + + l_debug("Bus location: %s", bus_name); l_main_run(); + exit_status = EXIT_SUCCESS; + + l_free(bus_name); + +destroy: + kdbus_destroy_bus(); + +done: l_signal_remove(signal); - return EXIT_SUCCESS; + return exit_status; }