Disable methods that are marked as experimental

This commit is contained in:
Marcel Holtmann 2006-12-25 13:43:56 +00:00
parent 55abce4f92
commit b311d1f2d0
3 changed files with 45 additions and 8 deletions

View File

@ -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 },

View File

@ -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,

View File

@ -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) &&