Diff between e938647e10f8fb9478b69b878532347b7b7943b8 and af1eb35dbc61d5c71d3770fae8bcc4421a2b8f22

Changed Files

File Additions Deletions Status
doc/device-api.txt +1 -26 modified
src/device.c +2 -160 modified

Full Patch

diff --git a/doc/device-api.txt b/doc/device-api.txt
index 36ea1d9..d7a30cd 100644
--- a/doc/device-api.txt
+++ b/doc/device-api.txt
@@ -14,32 +14,7 @@ Service		org.bluez
 Interface	org.bluez.Device1
 Object path	[variable prefix]/{hci0,hci1,...}/dev_XX_XX_XX_XX_XX_XX
 
-Methods		dict DiscoverServices(string pattern)
-
-			This method starts the service discovery to retrieve
-			remote service records. The pattern parameter can
-			be used to specify specific UUIDs. And empty string
-			will look for the public browse group.
-
-			The return value is a dictionary with the record
-			handles as keys and the service record in XML format
-			as values. The key is uint32 and the value a string
-			for this dictionary.
-
-			Possible errors: org.bluez.Error.NotReady
-					 org.bluez.Error.Failed
-					 org.bluez.Error.InProgress
-
-		void CancelDiscovery()
-
-			This method will cancel any previous DiscoverServices
-			transaction.
-
-			Possible errors: org.bluez.Error.NotReady
-					 org.bluez.Error.Failed
-					 org.bluez.Error.NotAuthorized
-
-		void Connect()
+Methods		void Connect()
 
 			This is a generic method to connect any profiles
 			the remote device supports that can be connected
diff --git a/src/device.c b/src/device.c
index 0e66f79..e7aa44d 100644
--- a/src/device.c
+++ b/src/device.c
@@ -961,149 +961,6 @@ static void discover_services_req_exit(DBusConnection *conn, void *user_data)
 	browse_request_cancel(req);
 }
 
-static DBusMessage *discover_services(DBusConnection *conn,
-					DBusMessage *msg, void *user_data)
-{
-	struct btd_device *device = user_data;
-	const char *pattern;
-	int err;
-
-	if (device->browse)
-		return btd_error_in_progress(msg);
-
-	if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &pattern,
-						DBUS_TYPE_INVALID) == FALSE)
-		return btd_error_invalid_args(msg);
-
-	if (strlen(pattern) == 0) {
-		err = device_browse_sdp(device, msg, NULL, FALSE);
-		if (err < 0)
-			goto fail;
-	} else {
-		uuid_t uuid;
-
-		if (bt_string2uuid(&uuid, pattern) < 0)
-			return btd_error_invalid_args(msg);
-
-		sdp_uuid128_to_uuid(&uuid);
-
-		err = device_browse_sdp(device, msg, &uuid, FALSE);
-		if (err < 0)
-			goto fail;
-	}
-
-	return NULL;
-
-fail:
-	return btd_error_failed(msg, strerror(-err));
-}
-
-static const char *browse_request_get_requestor(struct browse_req *req)
-{
-	if (!req->msg)
-		return NULL;
-
-	return dbus_message_get_sender(req->msg);
-}
-
-static void iter_append_record(DBusMessageIter *dict, uint32_t handle,
-							const char *record)
-{
-	DBusMessageIter entry;
-
-	dbus_message_iter_open_container(dict, DBUS_TYPE_DICT_ENTRY,
-							NULL, &entry);
-
-	dbus_message_iter_append_basic(&entry, DBUS_TYPE_UINT32, &handle);
-
-	dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &record);
-
-	dbus_message_iter_close_container(dict, &entry);
-}
-
-static void discover_services_reply(struct browse_req *req, int err,
-							sdp_list_t *recs)
-{
-	DBusConnection *conn = btd_get_dbus_connection();
-	DBusMessage *reply;
-	DBusMessageIter iter, dict;
-	sdp_list_t *seq;
-
-	if (err) {
-		const char *err_if;
-
-		if (err == -EHOSTDOWN)
-			err_if = ERROR_INTERFACE ".ConnectionAttemptFailed";
-		else
-			err_if = ERROR_INTERFACE ".Failed";
-
-		reply = dbus_message_new_error(req->msg, err_if,
-							strerror(-err));
-		g_dbus_send_message(conn, reply);
-		return;
-	}
-
-	reply = dbus_message_new_method_return(req->msg);
-	if (!reply)
-		return;
-
-	dbus_message_iter_init_append(reply, &iter);
-
-	dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY,
-			DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING
-			DBUS_TYPE_UINT32_AS_STRING DBUS_TYPE_STRING_AS_STRING
-			DBUS_DICT_ENTRY_END_CHAR_AS_STRING, &dict);
-
-	for (seq = recs; seq; seq = seq->next) {
-		sdp_record_t *rec = (sdp_record_t *) seq->data;
-		GString *result;
-
-		if (!rec)
-			break;
-
-		result = g_string_new(NULL);
-
-		convert_sdp_record_to_xml(rec, result,
-				(void *) g_string_append);
-
-		if (result->len)
-			iter_append_record(&dict, rec->handle, result->str);
-
-		g_string_free(result, TRUE);
-	}
-
-	dbus_message_iter_close_container(&iter, &dict);
-
-	g_dbus_send_message(conn, reply);
-}
-
-static DBusMessage *cancel_discover(DBusConnection *conn,
-					DBusMessage *msg, void *user_data)
-{
-	struct btd_device *device = user_data;
-	const char *sender = dbus_message_get_sender(msg);
-	const char *requestor;
-
-	if (!device->browse)
-		return btd_error_does_not_exist(msg);
-
-	if (!dbus_message_is_method_call(device->browse->msg, DEVICE_INTERFACE,
-					"DiscoverServices"))
-		return btd_error_not_authorized(msg);
-
-	requestor = browse_request_get_requestor(device->browse);
-
-	/* only the discover requestor can cancel the inquiry process */
-	if (!requestor || !g_str_equal(requestor, sender))
-		return btd_error_not_authorized(msg);
-
-	discover_services_reply(device->browse, -ECANCELED, NULL);
-
-	browse_request_cancel(device->browse);
-
-	return dbus_message_new_method_return(msg);
-}
-
 static void bonding_request_cancel(struct bonding_req *bonding)
 {
 	struct btd_device *device = bonding->device;
@@ -1128,10 +985,8 @@ void device_request_disconnect(struct btd_device *device, DBusMessage *msg)
 	if (device->bonding)
 		bonding_request_cancel(device->bonding);
 
-	if (device->browse) {
-		discover_services_reply(device->browse, -ECANCELED, NULL);
+	if (device->browse)
 		browse_request_cancel(device->browse);
-	}
 
 	if (device->connect) {
 		DBusMessage *reply = btd_error_failed(device->connect,
@@ -1467,12 +1322,6 @@ static void device_svc_resolved(struct btd_device *dev, int err)
 		return;
 
 	if (dbus_message_is_method_call(req->msg, DEVICE_INTERFACE,
-						"DiscoverServices")) {
-		discover_services_reply(req, err, dev->tmp_records);
-		return;
-	}
-
-	if (dbus_message_is_method_call(req->msg, DEVICE_INTERFACE,
 								"Pair")) {
 		reply = dbus_message_new_method_return(req->msg);
 		g_dbus_send_message(conn, reply);
@@ -1644,11 +1493,6 @@ static DBusMessage *cancel_pairing(DBusConnection *conn, DBusMessage *msg,
 }
 
 static const GDBusMethodTable device_methods[] = {
-	{ GDBUS_ASYNC_METHOD("DiscoverServices",
-			GDBUS_ARGS({ "pattern", "s" }),
-			GDBUS_ARGS({ "services", "a{us}" }),
-			discover_services) },
-	{ GDBUS_METHOD("CancelDiscovery", NULL, NULL, cancel_discover) },
 	{ GDBUS_ASYNC_METHOD("Disconnect", NULL, NULL, disconnect) },
 	{ GDBUS_ASYNC_METHOD("Connect", NULL, NULL, dev_connect) },
 	{ GDBUS_ASYNC_METHOD("ConnectProfile", GDBUS_ARGS({ "UUID", "s" }),
@@ -2106,10 +1950,8 @@ void device_remove(struct btd_device *device, gboolean remove_stored)
 		device_cancel_bonding(device, status);
 	}
 
-	if (device->browse) {
-		discover_services_reply(device->browse, -ECANCELED, NULL);
+	if (device->browse)
 		browse_request_cancel(device->browse);
-	}
 
 	g_slist_foreach(device->connected_profiles, dev_disconn_profile,
 								device);