diff options
author | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2007-03-23 21:15:40 +0000 |
---|---|---|
committer | Claudio Takahasi <claudio.takahasi@openbossa.org> | 2007-03-23 21:15:40 +0000 |
commit | d98a405d8fc5e9b3e5919b63c7498e6b11989663 (patch) | |
tree | e50757c5efc60c0f0408bd62ebb56c4645687904 /network/manager.c | |
parent | ef3649fd9e62bd989ff67a125a05c962d5640fd3 (diff) |
network: Added invalid service class verification for Manager.CreateConnection
Diffstat (limited to 'network/manager.c')
-rw-r--r-- | network/manager.c | 7 |
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; |