diff options
Diffstat (limited to 'network/connection.c')
-rw-r--r-- | network/connection.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/network/connection.c b/network/connection.c index cdcdcbb1..4966a7e1 100644 --- a/network/connection.c +++ b/network/connection.c @@ -33,6 +33,7 @@ #include "dbus.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" @@ -153,3 +154,28 @@ static const DBusObjectPathVTable connection_table = { .unregister_function = connection_unregister, }; +int connection_register(DBusConnection *conn, const char *path) +{ + struct network_conn *nc; + static int nc_uid = 0; + + if (!conn) + return -1; + + nc = g_new0(struct network_conn, 1); + + /* register path */ + if (!dbus_connection_register_object_path(conn, path, + &connection_table, nc)) { + error("D-Bus failed to register %s path", path); + goto fail; + } + + nc->path = g_strdup(path); + info("Registered connection path:%s", path); + + return 0; +fail: + connection_free(nc); + return -1; +} |