diff options
| -rw-r--r-- | network/connection.c | 4 | ||||
| -rw-r--r-- | network/error.c | 12 | ||||
| -rw-r--r-- | network/error.h | 6 | ||||
| -rw-r--r-- | network/manager.c | 12 | ||||
| -rw-r--r-- | network/server.c | 25 | ||||
| -rw-r--r-- | network/server.h | 1 | 
6 files changed, 46 insertions, 14 deletions
| diff --git a/network/connection.c b/network/connection.c index 4966a7e1..e6d4d221 100644 --- a/network/connection.c +++ b/network/connection.c @@ -31,10 +31,9 @@  #include "logging.h"  #include "dbus.h" +#include "error.h"  #define NETWORK_CONNECTION_INTERFACE "org.bluez.network.Manager" -#define NETWORK_CONNECTION_PATH "/org/bluez/network/connection" -#define NETWORK_ERROR_INTERFACE "org.bluez.Error"  #include "connection.h" @@ -157,7 +156,6 @@ static const DBusObjectPathVTable connection_table = {  int connection_register(DBusConnection *conn, const char *path)  {  	struct network_conn *nc; -	static int nc_uid = 0;  	if (!conn)  		return -1; diff --git a/network/error.c b/network/error.c index 55c459da..8c0924d5 100644 --- a/network/error.c +++ b/network/error.c @@ -26,3 +26,15 @@  #endif  #include "error.h" + +#define NETWORK_ERROR_INTERFACE "org.bluez.Error" + +DBusHandlerResult err_unknown_connection(DBusConnection *conn, +						DBusMessage *msg) +{ +	return send_message_and_unref(conn, +			dbus_message_new_error(msg, +				NETWORK_ERROR_INTERFACE ".UnknownConnection", +				"Unknown connection path")); +} + diff --git a/network/error.h b/network/error.h index e87dd676..3572bf27 100644 --- a/network/error.h +++ b/network/error.h @@ -20,3 +20,9 @@   *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA   *   */ + +#include "dbus.h" + +DBusHandlerResult err_unknown_connection(DBusConnection *conn, +						DBusMessage *msg); + diff --git a/network/manager.c b/network/manager.c index e0265af7..e10a4e33 100644 --- a/network/manager.c +++ b/network/manager.c @@ -32,12 +32,11 @@  #include <glib.h>  #include "logging.h" -#include "dbus.h"  #define NETWORK_PATH "/org/bluez/network"  #define NETWORK_MANAGER_INTERFACE "org.bluez.network.Manager" -#define NETWORK_ERROR_INTERFACE "org.bluez.Error" +#include "error.h"  #include "bridge.h"  #include "manager.h" @@ -48,15 +47,6 @@ struct manager {  static DBusConnection *connection = NULL; -static DBusHandlerResult err_unknown_connection(DBusConnection *conn, -							DBusMessage *msg) -{ -	return send_message_and_unref(conn, -			dbus_message_new_error(msg, -				NETWORK_ERROR_INTERFACE ".UnknownConnection", -				"Unknown connection path")); -} -  static DBusHandlerResult list_servers(DBusConnection *conn,  					DBusMessage *msg, void *data)  { diff --git a/network/server.c b/network/server.c index 8695aeaa..e88b8090 100644 --- a/network/server.c +++ b/network/server.c @@ -161,3 +161,28 @@ static const DBusObjectPathVTable server_table = {  	.message_function = server_message,  	.unregister_function = server_unregister,  }; + +int server_register(DBusConnection *conn, const char *path) +{ +	struct network_server *ns; + +	if (!conn) +		return -1; + +	ns = g_new0(struct network_server, 1); + +	/* register path */ +	if (!dbus_connection_register_object_path(conn, path, +						&server_table, ns)) { +		error("D-Bus failed to register %s path", path); +		goto fail; +	} + +	ns->path = g_strdup(path); +	info("Registered server path:%s", path); + +	return 0; +fail: +	server_free(ns); +	return -1; +} diff --git a/network/server.h b/network/server.h index e87dd676..33f997a9 100644 --- a/network/server.h +++ b/network/server.h @@ -20,3 +20,4 @@   *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA   *   */ +int server_register(DBusConnection *conn, const char *path); | 
