summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2006-12-25 13:43:56 +0000
committerMarcel Holtmann <marcel@holtmann.org>2006-12-25 13:43:56 +0000
commitb311d1f2d0bbd906b51c93423f86625e74931a55 (patch)
treed69fb093b7b2d9e6611e095c32277416ed754ae5
parent55abce4f9213399119b2756492d825e923f42a52 (diff)
Disable methods that are marked as experimental
-rw-r--r--hcid/dbus-manager.c33
-rw-r--r--hcid/dbus-security.c14
-rw-r--r--hcid/dbus-service.c6
3 files changed, 45 insertions, 8 deletions
diff --git a/hcid/dbus-manager.c b/hcid/dbus-manager.c
index f7eda064..8af432a9 100644
--- a/hcid/dbus-manager.c
+++ b/hcid/dbus-manager.c
@@ -48,6 +48,7 @@
#include "dbus-security.h"
#include "dbus-service.h"
#include "dbus-manager.h"
+#include "dbus-hci.h"
#include "sdp-xml.h"
static int default_adapter_id = -1;
@@ -203,6 +204,9 @@ static DBusHandlerResult list_services(DBusConnection *conn,
DBusMessageIter iter;
DBusMessageIter array_iter;
+ if (!hcid_dbus_use_experimental())
+ return error_unknown_method(conn, msg);
+
if (!dbus_message_has_signature(msg, DBUS_TYPE_INVALID_AS_STRING))
return error_invalid_arguments(conn, msg);
@@ -265,6 +269,9 @@ static DBusHandlerResult register_service(DBusConnection *conn,
DBusMessage *message;
int err;
+ if (!hcid_dbus_use_experimental())
+ return error_unknown_method(conn, msg);
+
if (!dbus_message_get_args(msg, NULL,
DBUS_TYPE_STRING, &path,
DBUS_TYPE_STRING, &name,
@@ -333,6 +340,9 @@ static DBusHandlerResult unregister_service(DBusConnection *conn,
const char *path;
int err;
+ if (!hcid_dbus_use_experimental())
+ return error_unknown_method(conn, msg);
+
if (!dbus_message_get_args(msg, NULL,
DBUS_TYPE_STRING, &path,
DBUS_TYPE_INVALID))
@@ -391,6 +401,9 @@ static DBusHandlerResult add_service_record(DBusConnection *conn,
const char *path;
int err;
+ if (!hcid_dbus_use_experimental())
+ return error_unknown_method(conn, msg);
+
/* Check if it is an array of bytes */
if (strcmp(dbus_message_get_signature(msg), "say"))
return error_invalid_arguments(conn, msg);
@@ -467,6 +480,9 @@ static DBusHandlerResult add_service_record_xml(DBusConnection *conn,
const char *record;
int err;
+ if (!hcid_dbus_use_experimental())
+ return error_unknown_method(conn, msg);
+
if (!dbus_message_get_args(msg, NULL,
DBUS_TYPE_STRING, &path,
DBUS_TYPE_STRING, &record,
@@ -564,6 +580,9 @@ static DBusHandlerResult remove_service_record(DBusConnection *conn,
const char *path;
uint32_t handle;
+ if (!hcid_dbus_use_experimental())
+ return error_unknown_method(conn, msg);
+
if (!dbus_message_get_args(msg, NULL,
DBUS_TYPE_STRING, &path,
DBUS_TYPE_UINT32, &handle,
@@ -605,13 +624,13 @@ static DBusHandlerResult remove_service_record(DBusConnection *conn,
}
static struct service_data methods[] = {
- { "InterfaceVersion", interface_version },
- { "DefaultAdapter", default_adapter },
- { "FindAdapter", find_adapter },
- { "ListAdapters", list_adapters },
- { "ListServices", list_services },
- { "RegisterService", register_service },
- { "UnregisterService", unregister_service },
+ { "InterfaceVersion", interface_version },
+ { "DefaultAdapter", default_adapter },
+ { "FindAdapter", find_adapter },
+ { "ListAdapters", list_adapters },
+ { "ListServices", list_services },
+ { "RegisterService", register_service },
+ { "UnregisterService", unregister_service },
{ "AddServiceRecord", add_service_record },
{ "AddServiceRecordFromXML", add_service_record_xml },
{ "RemoveServiceRecord", remove_service_record },
diff --git a/hcid/dbus-security.c b/hcid/dbus-security.c
index cd70616b..5a13fe5b 100644
--- a/hcid/dbus-security.c
+++ b/hcid/dbus-security.c
@@ -577,6 +577,9 @@ static DBusHandlerResult register_default_auth_agent(DBusConnection *conn,
DBusMessage *reply;
const char *path;
+ if (!hcid_dbus_use_experimental())
+ return error_unknown_method(conn, msg);
+
if (default_auth_agent)
return error_auth_agent_already_exists(conn, msg);
@@ -618,6 +621,9 @@ static DBusHandlerResult unregister_default_auth_agent(DBusConnection *conn,
const char *path, *name;
DBusMessage *reply;
+ if (!hcid_dbus_use_experimental())
+ return error_unknown_method(conn, msg);
+
if (!default_auth_agent)
return error_auth_agent_does_not_exist(conn, msg);
@@ -657,7 +663,7 @@ static void auth_agent_req_reply(DBusPendingCall *call, void *data)
DBusMessage *message;
DBusError err;
- dbus_error_init(&err);
+ dbus_error_init(&err);
if (dbus_set_error_from_message(&err, reply)) {
if (strcmp(err.name, DBUS_ERROR_NO_REPLY) == 0)
auth_agent_call_cancel(req);
@@ -763,6 +769,9 @@ static DBusHandlerResult authorize_service(DBusConnection *conn,
struct service_agent *sagent;
struct slist *l;
+ if (!hcid_dbus_use_experimental())
+ return error_unknown_method(conn, msg);
+
if (!dbus_message_get_args(msg, NULL,
DBUS_TYPE_STRING, &service_path,
DBUS_TYPE_STRING, &address,
@@ -838,6 +847,9 @@ static DBusHandlerResult cancel_authorization_process(DBusConnection *conn,
const char *service_path, *adapter_path, *address, *action;
struct service_agent *sagent;
+ if (!hcid_dbus_use_experimental())
+ return error_unknown_method(conn, msg);
+
if (!dbus_message_get_args(msg, NULL,
DBUS_TYPE_STRING, &service_path,
DBUS_TYPE_STRING, &address,
diff --git a/hcid/dbus-service.c b/hcid/dbus-service.c
index 69136f8f..103c8a4b 100644
--- a/hcid/dbus-service.c
+++ b/hcid/dbus-service.c
@@ -39,6 +39,7 @@
#include "dbus-error.h"
#include "dbus-manager.h"
#include "dbus-service.h"
+#include "dbus-hci.h"
static struct slist *services = NULL;
@@ -107,6 +108,7 @@ void service_call_free(void *data)
free(call);
}
+#if 0
static int service_agent_cmp(const struct service_agent *a, const struct service_agent *b)
{
int ret;
@@ -137,6 +139,7 @@ static int service_agent_cmp(const struct service_agent *a, const struct service
return 0;
}
+#endif
static void service_agent_free(struct service_agent *agent)
{
@@ -664,6 +667,9 @@ static DBusHandlerResult msg_func_services(DBusConnection *conn,
struct service_call *call_data;
const char *iface;
+ if (!hcid_dbus_use_experimental())
+ return error_unknown_method(conn, msg);
+
iface = dbus_message_get_interface(msg);
if (!strcmp(DBUS_INTERFACE_INTROSPECTABLE, iface) &&