Exemple #1
0
static void search_cb(sdp_list_t *recs, int err, gpointer user_data)
{
		DBG("");
	struct conn_mcl_data *conn_data = user_data;
	GError *gerr = NULL;
	bdaddr_t dst;
	uint16_t ccpsm;

	if (!conn_data->dev->mcap_adapter->mi) {
		g_set_error(&gerr, MCAP_ERROR, MCAP_CONNECTION_ERROR,
						"Mcap instance released");
		goto fail;
	}

	if (err || !recs) {
		g_set_error(&gerr, MCAP_ERROR, MCAP_CONNECTION_ERROR,
					"Error getting remote SDP records");
		goto fail;
	}

	if (!get_ccpsm(recs, &ccpsm)) {
		g_set_error(&gerr, MCAP_ERROR, MCAP_CONNECTION_ERROR,
				"Can't get remote PSM for control channel");
		goto fail;
	}

	conn_data = con_mcl_data_ref(conn_data);

	device_get_address(conn_data->dev->dev, &dst,NULL);
	if (!mcap_create_mcl(conn_data->dev->mcap_adapter->mi, &dst, ccpsm,
						create_mcl_cb, conn_data,
						destroy_con_mcl_data, &gerr)) {
		con_mcl_data_unref(conn_data);
		goto fail;
	}
	return;
fail:
	conn_data->func(conn_data->data, gerr);
	g_error_free(gerr);
}
Exemple #2
0
static void destroy_con_mcl_data(gpointer data)
{
	con_mcl_data_unref(data);
}
Exemple #3
0
void destroy_con_mcl_data(gpointer data)
{
		DBG("");
	con_mcl_data_unref(data);
}