diff options
| -rw-r--r-- | audio/main.c | 14 | ||||
| -rw-r--r-- | input/main.c | 13 | ||||
| -rw-r--r-- | input/manager.c | 14 | ||||
| -rw-r--r-- | network/connection.c | 6 | ||||
| -rw-r--r-- | network/main.c | 12 | ||||
| -rw-r--r-- | network/manager.c | 5 | ||||
| -rw-r--r-- | serial/main.c | 15 | 
7 files changed, 36 insertions, 43 deletions
diff --git a/audio/main.c b/audio/main.c index 9afc61e6..bf0e4884 100644 --- a/audio/main.c +++ b/audio/main.c @@ -29,7 +29,6 @@  #include <errno.h>  #include <sys/socket.h>  #include <bluetooth/bluetooth.h> -#include <bluetooth/sdp.h>  #include <glib.h>  #include <dbus/dbus.h> @@ -40,6 +39,8 @@  #include "device.h"  #include "manager.h" +static DBusConnection *connection = NULL; +  static GKeyFile *load_config_file(const char *file)  {  	GError *err = NULL; @@ -59,11 +60,10 @@ static GKeyFile *load_config_file(const char *file)  static int audio_init(void)  { -	DBusConnection *conn;  	GKeyFile *config; -	conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); -	if (conn == NULL) +	connection = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); +	if (connection == NULL)  		return -EIO;  	config = load_config_file(CONFIGDIR "/audio.conf"); @@ -73,8 +73,8 @@ static int audio_init(void)  		return -EIO;  	} -	if (audio_manager_init(conn, config) < 0) { -		dbus_connection_unref(conn); +	if (audio_manager_init(connection, config) < 0) { +		dbus_connection_unref(connection);  		return -EIO;  	} @@ -86,6 +86,8 @@ static void audio_exit(void)  	audio_manager_exit();  	unix_exit(); + +	dbus_connection_unref(connection);  }  BLUETOOTH_PLUGIN_DEFINE("audio", audio_init, audio_exit) diff --git a/input/main.c b/input/main.c index d3d152e0..4851324c 100644 --- a/input/main.c +++ b/input/main.c @@ -28,7 +28,6 @@  #include <errno.h>  #include <bluetooth/bluetooth.h> -#include <bluetooth/sdp.h>  #include <gdbus.h> @@ -36,6 +35,8 @@  #include "logging.h"  #include "manager.h" +DBusConnection *connection = NULL; +  static GKeyFile *load_config_file(const char *file)  {  	GKeyFile *keyfile; @@ -56,16 +57,15 @@ static GKeyFile *load_config_file(const char *file)  static int input_init(void)  {  	GKeyFile *config; -	DBusConnection *conn; -	conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); -	if (conn == NULL) +	connection = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); +	if (connection == NULL)  		return -EIO;  	config = load_config_file(CONFIGDIR "/input.conf"); -	if (input_manager_init(conn, config) < 0) { -		dbus_connection_unref(conn); +	if (input_manager_init(connection, config) < 0) { +		dbus_connection_unref(connection);  		return -EIO;  	} @@ -78,6 +78,7 @@ static int input_init(void)  static void input_exit(void)  {  	input_manager_exit(); +	dbus_connection_unref(connection);  }  BLUETOOTH_PLUGIN_DEFINE("input", input_init, input_exit) diff --git a/input/manager.c b/input/manager.c index a2a22762..d3829323 100644 --- a/input/manager.c +++ b/input/manager.c @@ -25,21 +25,14 @@  #include <config.h>  #endif -#include <ctype.h> -#include <dirent.h>  #include <errno.h> -#include <stdlib.h> -#include <unistd.h>  #include <bluetooth/bluetooth.h>  #include <bluetooth/hci.h> -#include <bluetooth/hci_lib.h>  #include <bluetooth/hidp.h>  #include <bluetooth/sdp.h>  #include <bluetooth/sdp_lib.h> -#include <glib.h> -#include <dbus/dbus.h>  #include <gdbus.h>  #include "logging.h" @@ -49,10 +42,8 @@  #include "device.h"  #include "server.h" -#include "error.h"  #include "manager.h"  #include "storage.h" -#include "glib-helper.h"  static int idle_timeout = 0; @@ -319,12 +310,11 @@ int input_manager_init(DBusConnection *conn, GKeyFile *config)  void input_manager_exit(void)  { - -	btd_unregister_adapter_driver(&input_server_driver); -  	btd_unregister_device_driver(&input_hid_driver);  	btd_unregister_device_driver(&input_headset_driver); +	btd_unregister_adapter_driver(&input_server_driver); +  	dbus_connection_unref(connection);  	connection = NULL; diff --git a/network/connection.c b/network/connection.c index 16d3e383..b8f029e1 100644 --- a/network/connection.c +++ b/network/connection.c @@ -123,12 +123,6 @@ static inline DBusMessage *not_connected(DBusMessage *msg)  						"Device not connected");  } -static inline DBusMessage *no_pending_connect(DBusMessage *msg) -{ -	return g_dbus_create_error(msg, ERROR_INTERFACE ".Failed", -					"Device has no pending connect"); -} -  static inline DBusMessage *connection_attempt_failed(DBusMessage *msg, int err)  {  	return g_dbus_create_error(msg, ERROR_INTERFACE ".ConnectionAttemptFailed", diff --git a/network/main.c b/network/main.c index 6efdb81d..2307a165 100644 --- a/network/main.c +++ b/network/main.c @@ -32,16 +32,17 @@  #include "plugin.h"  #include "manager.h" +static DBusConnection *connection = NULL; +  static int network_init(void)  { -	DBusConnection *conn; -	conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); -	if (conn == NULL) +	connection = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); +	if (connection == NULL)  		return -EIO; -	if (network_manager_init(conn) < 0) { -		dbus_connection_unref(conn); +	if (network_manager_init(connection) < 0) { +		dbus_connection_unref(connection);  		return -EIO;  	} @@ -51,6 +52,7 @@ static int network_init(void)  static void network_exit(void)  {  	network_manager_exit(); +	dbus_connection_unref(connection);  }  BLUETOOTH_PLUGIN_DEFINE("network", network_init, network_exit) diff --git a/network/manager.c b/network/manager.c index c9555285..cafb7442 100644 --- a/network/manager.c +++ b/network/manager.c @@ -368,7 +368,6 @@ int network_manager_init(DBusConnection *conn)  		return -1;  	/* Register PANU, GN and NAP servers if they don't exist */ -	/* FIXME: server should be registered as adapter driver */  	btd_register_adapter_driver(&network_panu_server_driver);  	btd_register_adapter_driver(&network_gn_server_driver);  	btd_register_adapter_driver(&network_nap_server_driver); @@ -397,6 +396,10 @@ void network_manager_exit(void)  		connection_exit();  	} +	btd_unregister_adapter_driver(&network_panu_server_driver); +	btd_unregister_adapter_driver(&network_gn_server_driver); +	btd_unregister_adapter_driver(&network_nap_server_driver); +  	dbus_connection_unref(connection);  	connection = NULL; diff --git a/serial/main.c b/serial/main.c index 97b26925..50dda095 100644 --- a/serial/main.c +++ b/serial/main.c @@ -26,24 +26,24 @@  #endif  #include <errno.h> -#include <sys/types.h>  #include <gdbus.h>  #include "plugin.h" -#include "logging.h"  #include "manager.h" +static DBusConnection *connection = NULL; +  static int serial_init(void)  { -	DBusConnection *conn; - -	conn = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); -	if (conn == NULL) +	connection = dbus_bus_get(DBUS_BUS_SYSTEM, NULL); +	if (connection == NULL)  		return -EIO; -	if (serial_manager_init(conn) < 0) +	if (serial_manager_init(connection) < 0) { +		dbus_connection_unref(connection);  		return -EIO; +	}  	return 0;  } @@ -51,6 +51,7 @@ static int serial_init(void)  static void serial_exit(void)  {  	serial_manager_exit(); +	dbus_connection_unref(connection);  }  BLUETOOTH_PLUGIN_DEFINE("serial", serial_init, serial_exit)  | 
