summaryrefslogtreecommitdiffstats
path: root/network/manager.c
diff options
context:
space:
mode:
authorClaudio Takahasi <claudio.takahasi@openbossa.org>2007-03-23 21:15:40 +0000
committerClaudio Takahasi <claudio.takahasi@openbossa.org>2007-03-23 21:15:40 +0000
commitd98a405d8fc5e9b3e5919b63c7498e6b11989663 (patch)
treee50757c5efc60c0f0408bd62ebb56c4645687904 /network/manager.c
parentef3649fd9e62bd989ff67a125a05c962d5640fd3 (diff)
network: Added invalid service class verification for Manager.CreateConnection
Diffstat (limited to 'network/manager.c')
-rw-r--r--network/manager.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/network/manager.c b/network/manager.c
index 6740f100..52e6bffa 100644
--- a/network/manager.c
+++ b/network/manager.c
@@ -225,6 +225,7 @@ static DBusHandlerResult create_connection(DBusConnection *conn,
const char *addr;
const char *str;
char *path;
+ uint16_t id;
dbus_error_init(&derr);
if (!dbus_message_get_args(msg, &derr,
@@ -236,12 +237,14 @@ static DBusHandlerResult create_connection(DBusConnection *conn,
return DBUS_HANDLER_RESULT_HANDLED;
}
- /* FIXME: Check for supported/implemented client connection */
+ id = bnep_service_id(str);
+ if ((id != BNEP_SVC_GN) && (id != BNEP_SVC_NAP))
+ return err_invalid_args(conn, msg, "Not supported");
path = g_new0(char, 32);
snprintf(path, 32, NETWORK_PATH "/connection%d", uid++);
- if (connection_register(conn, path, addr, str) == -1) {
+ if (connection_register(conn, path, addr, id) == -1) {
err_failed(conn, msg, "D-Bus path registration failed");
g_free(path);
return DBUS_HANDLER_RESULT_HANDLED;