mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2025-01-19 10:05:09 +08:00
Update code base to use the new BtIO API
This commit is contained in:
parent
a0d52c9ad0
commit
5dd93fc16a
@ -706,14 +706,12 @@ static void update_char_desc(guint8 status, const guint8 *pdu, guint16 len,
|
||||
GIOChannel *io = g_attrib_get_channel(gatt->attrib);
|
||||
BtIOSecLevel level = BT_IO_SEC_HIGH;
|
||||
|
||||
bt_io_get(io, BT_IO_L2CAP, NULL,
|
||||
BT_IO_OPT_SEC_LEVEL, &level,
|
||||
BT_IO_OPT_INVALID);
|
||||
|
||||
bt_io_get(io, NULL, BT_IO_OPT_SEC_LEVEL, &level,
|
||||
BT_IO_OPT_INVALID);
|
||||
if (level < BT_IO_SEC_HIGH)
|
||||
level++;
|
||||
|
||||
if (bt_io_set(io, BT_IO_L2CAP, NULL,
|
||||
if (bt_io_set(io, NULL,
|
||||
BT_IO_OPT_SEC_LEVEL, level,
|
||||
BT_IO_OPT_INVALID)) {
|
||||
gatt_read_char(gatt->attrib, current->handle, 0,
|
||||
@ -764,7 +762,7 @@ static void update_char_value(guint8 status, const guint8 *pdu,
|
||||
else if (status == ATT_ECODE_INSUFF_ENC) {
|
||||
GIOChannel *io = g_attrib_get_channel(gatt->attrib);
|
||||
|
||||
if (bt_io_set(io, BT_IO_L2CAP, NULL,
|
||||
if (bt_io_set(io, NULL,
|
||||
BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_HIGH,
|
||||
BT_IO_OPT_INVALID)) {
|
||||
gatt_read_char(gatt->attrib, chr->handle, 0,
|
||||
|
@ -444,11 +444,8 @@ GAttrib *g_attrib_new(GIOChannel *io)
|
||||
g_io_channel_set_encoding(io, NULL, NULL);
|
||||
g_io_channel_set_buffered(io, FALSE);
|
||||
|
||||
bt_io_get(io, BT_IO_L2CAP, &gerr,
|
||||
BT_IO_OPT_IMTU, &imtu,
|
||||
BT_IO_OPT_CID, &cid,
|
||||
BT_IO_OPT_INVALID);
|
||||
|
||||
bt_io_get(io, &gerr, BT_IO_OPT_IMTU, &imtu,
|
||||
BT_IO_OPT_CID, &cid, BT_IO_OPT_INVALID);
|
||||
if (gerr) {
|
||||
error("%s", gerr->message);
|
||||
g_error_free(gerr);
|
||||
@ -673,7 +670,7 @@ gboolean g_attrib_is_encrypted(GAttrib *attrib)
|
||||
{
|
||||
BtIOSecLevel sec_level;
|
||||
|
||||
if (!bt_io_get(attrib->io, BT_IO_L2CAP, NULL,
|
||||
if (!bt_io_get(attrib->io, NULL,
|
||||
BT_IO_OPT_SEC_LEVEL, &sec_level,
|
||||
BT_IO_OPT_INVALID))
|
||||
return FALSE;
|
||||
|
@ -665,10 +665,9 @@ static void cmd_sec_level(int argcp, char **argvp)
|
||||
return;
|
||||
}
|
||||
|
||||
bt_io_set(iochannel, BT_IO_L2CAP, &gerr,
|
||||
bt_io_set(iochannel, &gerr,
|
||||
BT_IO_OPT_SEC_LEVEL, sec_level,
|
||||
BT_IO_OPT_INVALID);
|
||||
|
||||
if (gerr) {
|
||||
printf("Error: %s\n", gerr->message);
|
||||
g_error_free(gerr);
|
||||
|
@ -76,7 +76,7 @@ GIOChannel *gatt_connect(const gchar *src, const gchar *dst,
|
||||
sec = BT_IO_SEC_LOW;
|
||||
|
||||
if (psm == 0)
|
||||
chan = bt_io_connect(BT_IO_L2CAP, connect_cb, NULL, NULL, &err,
|
||||
chan = bt_io_connect(connect_cb, NULL, NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &sba,
|
||||
BT_IO_OPT_DEST_BDADDR, &dba,
|
||||
BT_IO_OPT_DEST_TYPE, dest_type,
|
||||
@ -84,7 +84,7 @@ GIOChannel *gatt_connect(const gchar *src, const gchar *dst,
|
||||
BT_IO_OPT_SEC_LEVEL, sec,
|
||||
BT_IO_OPT_INVALID);
|
||||
else
|
||||
chan = bt_io_connect(BT_IO_L2CAP, connect_cb, NULL, NULL, &err,
|
||||
chan = bt_io_connect(connect_cb, NULL, NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &sba,
|
||||
BT_IO_OPT_DEST_BDADDR, &dba,
|
||||
BT_IO_OPT_PSM, psm,
|
||||
|
@ -626,7 +626,7 @@ static void avctp_connect_cb(GIOChannel *chan, GError *err, gpointer data)
|
||||
return;
|
||||
}
|
||||
|
||||
bt_io_get(chan, BT_IO_L2CAP, &gerr,
|
||||
bt_io_get(chan, &gerr,
|
||||
BT_IO_OPT_DEST, &address,
|
||||
BT_IO_OPT_IMTU, &imtu,
|
||||
BT_IO_OPT_INVALID);
|
||||
@ -737,7 +737,7 @@ static void avctp_confirm_cb(GIOChannel *chan, gpointer data)
|
||||
bdaddr_t src, dst;
|
||||
GError *err = NULL;
|
||||
|
||||
bt_io_get(chan, BT_IO_L2CAP, &err,
|
||||
bt_io_get(chan, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dst,
|
||||
BT_IO_OPT_DEST, address,
|
||||
@ -799,7 +799,7 @@ static GIOChannel *avctp_server_socket(const bdaddr_t *src, gboolean master)
|
||||
GError *err = NULL;
|
||||
GIOChannel *io;
|
||||
|
||||
io = bt_io_listen(BT_IO_L2CAP, NULL, avctp_confirm_cb, NULL,
|
||||
io = bt_io_listen(NULL, avctp_confirm_cb, NULL,
|
||||
NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, src,
|
||||
BT_IO_OPT_PSM, AVCTP_PSM,
|
||||
@ -1087,7 +1087,7 @@ struct avctp *avctp_connect(const bdaddr_t *src, const bdaddr_t *dst)
|
||||
|
||||
avctp_set_state(session, AVCTP_STATE_CONNECTING);
|
||||
|
||||
io = bt_io_connect(BT_IO_L2CAP, avctp_connect_cb, session, NULL, &err,
|
||||
io = bt_io_connect(avctp_connect_cb, session, NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &session->server->src,
|
||||
BT_IO_OPT_DEST_BDADDR, &session->dst,
|
||||
BT_IO_OPT_PSM, AVCTP_PSM,
|
||||
|
@ -893,9 +893,8 @@ static void handle_transport_connect(struct avdtp *session, GIOChannel *io,
|
||||
if (sep->info.type != AVDTP_SEP_TYPE_SOURCE)
|
||||
goto proceed;
|
||||
|
||||
bt_io_set(stream->io, BT_IO_L2CAP, &err,
|
||||
BT_IO_OPT_FLUSHABLE, TRUE,
|
||||
BT_IO_OPT_INVALID);
|
||||
bt_io_set(stream->io, &err, BT_IO_OPT_FLUSHABLE, TRUE,
|
||||
BT_IO_OPT_INVALID);
|
||||
if (err != NULL) {
|
||||
error("Enabling flushable packets failed: %s", err->message);
|
||||
g_error_free(err);
|
||||
@ -2414,7 +2413,7 @@ static void avdtp_connect_cb(GIOChannel *chan, GError *err, gpointer user_data)
|
||||
if (!session->io)
|
||||
session->io = g_io_channel_ref(chan);
|
||||
|
||||
bt_io_get(chan, BT_IO_L2CAP, &gerr,
|
||||
bt_io_get(chan, &gerr,
|
||||
BT_IO_OPT_OMTU, &session->omtu,
|
||||
BT_IO_OPT_IMTU, &session->imtu,
|
||||
BT_IO_OPT_INVALID);
|
||||
@ -2510,7 +2509,7 @@ static void avdtp_confirm_cb(GIOChannel *chan, gpointer data)
|
||||
int perr;
|
||||
GError *err = NULL;
|
||||
|
||||
bt_io_get(chan, BT_IO_L2CAP, &err,
|
||||
bt_io_get(chan, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dst,
|
||||
BT_IO_OPT_DEST, address,
|
||||
@ -2587,7 +2586,7 @@ static GIOChannel *l2cap_connect(struct avdtp *session)
|
||||
GError *err = NULL;
|
||||
GIOChannel *io;
|
||||
|
||||
io = bt_io_connect(BT_IO_L2CAP, avdtp_connect_cb, session,
|
||||
io = bt_io_connect(avdtp_connect_cb, session,
|
||||
NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &session->server->src,
|
||||
BT_IO_OPT_DEST_BDADDR, &session->dst,
|
||||
@ -3855,7 +3854,7 @@ static GIOChannel *avdtp_server_socket(const bdaddr_t *src, gboolean master)
|
||||
GError *err = NULL;
|
||||
GIOChannel *io;
|
||||
|
||||
io = bt_io_listen(BT_IO_L2CAP, NULL, avdtp_confirm_cb,
|
||||
io = bt_io_listen(NULL, avdtp_confirm_cb,
|
||||
NULL, NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, src,
|
||||
BT_IO_OPT_PSM, AVDTP_PSM,
|
||||
|
@ -496,7 +496,7 @@ static void get_record_cb(sdp_list_t *recs, int err, gpointer user_data)
|
||||
goto fail;
|
||||
}
|
||||
|
||||
io = bt_io_connect(BT_IO_RFCOMM, rfcomm_connect_cb, dev, NULL, &gerr,
|
||||
io = bt_io_connect(rfcomm_connect_cb, dev, NULL, &gerr,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &dev->src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dev->dst,
|
||||
BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM,
|
||||
@ -842,7 +842,7 @@ unsigned int gateway_request_stream(struct audio_device *dev,
|
||||
if (!gw->rfcomm)
|
||||
get_records(dev);
|
||||
else if (!gw->sco) {
|
||||
io = bt_io_connect(BT_IO_SCO, sco_connect_cb, dev, NULL, &err,
|
||||
io = bt_io_connect(sco_connect_cb, dev, NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &dev->src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dev->dst,
|
||||
BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM,
|
||||
|
@ -621,7 +621,7 @@ static int sco_connect(struct audio_device *dev, headset_stream_cb_t cb,
|
||||
if (hs->state != HEADSET_STATE_CONNECTED)
|
||||
return -EINVAL;
|
||||
|
||||
io = bt_io_connect(BT_IO_SCO, sco_connect_cb, dev, NULL, &err,
|
||||
io = bt_io_connect(sco_connect_cb, dev, NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &dev->src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dev->dst,
|
||||
BT_IO_OPT_INVALID);
|
||||
@ -1621,7 +1621,7 @@ static int rfcomm_connect(struct audio_device *dev, headset_stream_cb_t cb,
|
||||
DBG("%s: Connecting to %s channel %d", dev->path, address,
|
||||
hs->rfcomm_ch);
|
||||
|
||||
hs->tmp_rfcomm = bt_io_connect(BT_IO_RFCOMM, headset_connect_cb, dev,
|
||||
hs->tmp_rfcomm = bt_io_connect(headset_connect_cb, dev,
|
||||
NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &dev->src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dev->dst,
|
||||
|
@ -79,7 +79,7 @@ static void sco_server_cb(GIOChannel *chan, GError *err, gpointer data)
|
||||
return;
|
||||
}
|
||||
|
||||
bt_io_get(chan, BT_IO_SCO, &err,
|
||||
bt_io_get(chan, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dst,
|
||||
BT_IO_OPT_DEST, addr,
|
||||
@ -161,7 +161,7 @@ static int audio_init(void)
|
||||
if (!enable_sco)
|
||||
return 0;
|
||||
|
||||
sco_server = bt_io_listen(BT_IO_SCO, sco_server_cb, NULL, NULL,
|
||||
sco_server = bt_io_listen(sco_server_cb, NULL, NULL,
|
||||
NULL, NULL,
|
||||
BT_IO_OPT_INVALID);
|
||||
if (!sco_server) {
|
||||
|
@ -462,7 +462,7 @@ static void ag_confirm(GIOChannel *chan, gpointer data)
|
||||
GError *err = NULL;
|
||||
uint8_t ch;
|
||||
|
||||
bt_io_get(chan, BT_IO_RFCOMM, &err,
|
||||
bt_io_get(chan, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dst,
|
||||
BT_IO_OPT_CHANNEL, &ch,
|
||||
@ -560,7 +560,7 @@ static void hf_io_cb(GIOChannel *chan, gpointer data)
|
||||
struct audio_device *device;
|
||||
int perr;
|
||||
|
||||
bt_io_get(chan, BT_IO_RFCOMM, &err,
|
||||
bt_io_get(chan, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dst,
|
||||
BT_IO_OPT_CHANNEL, &ch,
|
||||
@ -632,7 +632,7 @@ static int headset_server_init(struct audio_adapter *adapter)
|
||||
|
||||
adapter_get_address(adapter->btd_adapter, &src);
|
||||
|
||||
io = bt_io_listen(BT_IO_RFCOMM, NULL, ag_confirm, adapter, NULL, &err,
|
||||
io = bt_io_listen(NULL, ag_confirm, adapter, NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_CHANNEL, chan,
|
||||
BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM,
|
||||
@ -663,7 +663,7 @@ static int headset_server_init(struct audio_adapter *adapter)
|
||||
|
||||
chan = DEFAULT_HF_AG_CHANNEL;
|
||||
|
||||
io = bt_io_listen(BT_IO_RFCOMM, NULL, ag_confirm, adapter, NULL, &err,
|
||||
io = bt_io_listen(NULL, ag_confirm, adapter, NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_CHANNEL, chan,
|
||||
BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM,
|
||||
@ -733,7 +733,7 @@ static int gateway_server_init(struct audio_adapter *adapter)
|
||||
|
||||
adapter_get_address(adapter->btd_adapter, &src);
|
||||
|
||||
io = bt_io_listen(BT_IO_RFCOMM, NULL, hf_io_cb, adapter, NULL, &err,
|
||||
io = bt_io_listen(NULL, hf_io_cb, adapter, NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_CHANNEL, chan,
|
||||
BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM,
|
||||
|
@ -286,7 +286,7 @@ static void attio_connected_cb(GAttrib *attrib, gpointer user_data)
|
||||
gas->attrib = g_attrib_ref(attrib);
|
||||
io = g_attrib_get_channel(attrib);
|
||||
|
||||
if (bt_io_get(io, BT_IO_L2CAP, &gerr, BT_IO_OPT_IMTU, &imtu,
|
||||
if (bt_io_get(io, &gerr, BT_IO_OPT_IMTU, &imtu,
|
||||
BT_IO_OPT_CID, &cid, BT_IO_OPT_INVALID)) {
|
||||
gatt_exchange_mtu(gas->attrib, imtu, exchange_mtu_cb, gas);
|
||||
gas->mtu = imtu;
|
||||
|
@ -887,7 +887,7 @@ static gboolean check_channel_conf(struct hdp_channel *chan)
|
||||
return FALSE;
|
||||
io = g_io_channel_unix_new(fd);
|
||||
|
||||
if (!bt_io_get(io, BT_IO_L2CAP, &err,
|
||||
if (!bt_io_get(io, &err,
|
||||
BT_IO_OPT_MODE, &mode,
|
||||
BT_IO_OPT_IMTU, &imtu,
|
||||
BT_IO_OPT_OMTU, &omtu,
|
||||
|
@ -1674,7 +1674,7 @@ gboolean mcap_connect_mdl(struct mcap_mdl *mdl, uint8_t mode,
|
||||
con->destroy = destroy;
|
||||
con->user_data = user_data;
|
||||
|
||||
mdl->dc = bt_io_connect(BT_IO_L2CAP, mcap_connect_mdl_cb, con,
|
||||
mdl->dc = bt_io_connect(mcap_connect_mdl_cb, con,
|
||||
(GDestroyNotify) free_mcap_mdl_op, err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &mdl->mcl->mi->src,
|
||||
BT_IO_OPT_DEST_BDADDR, &mdl->mcl->addr,
|
||||
@ -1847,7 +1847,7 @@ gboolean mcap_create_mcl(struct mcap_instance *mi,
|
||||
con->destroy = destroy;
|
||||
con->user_data = user_data;
|
||||
|
||||
mcl->cc = bt_io_connect(BT_IO_L2CAP, mcap_connect_mcl_cb, con,
|
||||
mcl->cc = bt_io_connect(mcap_connect_mcl_cb, con,
|
||||
mcl_io_destroy, err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &mi->src,
|
||||
BT_IO_OPT_DEST_BDADDR, addr,
|
||||
@ -1883,9 +1883,7 @@ static void connect_dc_event_cb(GIOChannel *chan, GError *gerr,
|
||||
if (gerr)
|
||||
return;
|
||||
|
||||
bt_io_get(chan, BT_IO_L2CAP, &err,
|
||||
BT_IO_OPT_DEST_BDADDR, &dst,
|
||||
BT_IO_OPT_INVALID);
|
||||
bt_io_get(chan, &err, BT_IO_OPT_DEST_BDADDR, &dst, BT_IO_OPT_INVALID);
|
||||
if (err) {
|
||||
error("%s", err->message);
|
||||
g_error_free(err);
|
||||
@ -1952,7 +1950,7 @@ static void connect_mcl_event_cb(GIOChannel *chan, GError *gerr,
|
||||
if (gerr)
|
||||
return;
|
||||
|
||||
bt_io_get(chan, BT_IO_L2CAP, &err,
|
||||
bt_io_get(chan, &err,
|
||||
BT_IO_OPT_DEST_BDADDR, &dst,
|
||||
BT_IO_OPT_DEST, address,
|
||||
BT_IO_OPT_INVALID);
|
||||
@ -2028,7 +2026,7 @@ struct mcap_instance *mcap_create_instance(bdaddr_t *src,
|
||||
mi->csp_enabled = FALSE;
|
||||
|
||||
/* Listen incoming connections in control channel */
|
||||
mi->ccio = bt_io_listen(BT_IO_L2CAP, connect_mcl_event_cb, NULL, mi,
|
||||
mi->ccio = bt_io_listen(connect_mcl_event_cb, NULL, mi,
|
||||
NULL, gerr,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &mi->src,
|
||||
BT_IO_OPT_PSM, ccpsm,
|
||||
@ -2043,7 +2041,7 @@ struct mcap_instance *mcap_create_instance(bdaddr_t *src,
|
||||
}
|
||||
|
||||
/* Listen incoming connections in data channels */
|
||||
mi->dcio = bt_io_listen(BT_IO_L2CAP, connect_dc_event_cb, NULL, mi,
|
||||
mi->dcio = bt_io_listen(connect_dc_event_cb, NULL, mi,
|
||||
NULL, gerr,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &mi->src,
|
||||
BT_IO_OPT_PSM, dcpsm,
|
||||
@ -2133,9 +2131,7 @@ uint16_t mcap_get_ctrl_psm(struct mcap_instance *mi, GError **err)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!bt_io_get(mi->ccio, BT_IO_L2CAP, err,
|
||||
BT_IO_OPT_PSM, &lpsm,
|
||||
BT_IO_OPT_INVALID))
|
||||
if (!bt_io_get(mi->ccio, err, BT_IO_OPT_PSM, &lpsm, BT_IO_OPT_INVALID))
|
||||
return 0;
|
||||
|
||||
return lpsm;
|
||||
@ -2151,9 +2147,7 @@ uint16_t mcap_get_data_psm(struct mcap_instance *mi, GError **err)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!bt_io_get(mi->dcio, BT_IO_L2CAP, err,
|
||||
BT_IO_OPT_PSM, &lpsm,
|
||||
BT_IO_OPT_INVALID))
|
||||
if (!bt_io_get(mi->dcio, err, BT_IO_OPT_PSM, &lpsm, BT_IO_OPT_INVALID))
|
||||
return 0;
|
||||
|
||||
return lpsm;
|
||||
@ -2168,7 +2162,7 @@ gboolean mcap_set_data_chan_mode(struct mcap_instance *mi, uint8_t mode,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return bt_io_set(mi->dcio, BT_IO_L2CAP, err, BT_IO_OPT_MODE, mode,
|
||||
return bt_io_set(mi->dcio, err, BT_IO_OPT_MODE, mode,
|
||||
BT_IO_OPT_INVALID);
|
||||
}
|
||||
|
||||
|
@ -363,7 +363,7 @@ static gboolean rfcomm_connect(struct input_conn *iconn, GError **err)
|
||||
struct input_device *idev = iconn->idev;
|
||||
GIOChannel *io;
|
||||
|
||||
io = bt_io_connect(BT_IO_RFCOMM, rfcomm_connect_cb, iconn,
|
||||
io = bt_io_connect(rfcomm_connect_cb, iconn,
|
||||
NULL, err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &idev->src,
|
||||
BT_IO_OPT_DEST_BDADDR, &idev->dst,
|
||||
@ -651,7 +651,7 @@ static int hidp_add_connection(const struct input_device *idev,
|
||||
|
||||
/* Encryption is mandatory for keyboards */
|
||||
if (req->subclass & 0x40) {
|
||||
if (!bt_io_set(iconn->intr_io, BT_IO_L2CAP, &gerr,
|
||||
if (!bt_io_set(iconn->intr_io, &gerr,
|
||||
BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM,
|
||||
BT_IO_OPT_INVALID)) {
|
||||
error("btio: %s", gerr->message);
|
||||
@ -885,7 +885,7 @@ static void control_connect_cb(GIOChannel *chan, GError *conn_err,
|
||||
}
|
||||
|
||||
/* Connect to the HID interrupt channel */
|
||||
io = bt_io_connect(BT_IO_L2CAP, interrupt_connect_cb, iconn,
|
||||
io = bt_io_connect(interrupt_connect_cb, iconn,
|
||||
NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &idev->src,
|
||||
BT_IO_OPT_DEST_BDADDR, &idev->dst,
|
||||
@ -972,7 +972,7 @@ static DBusMessage *input_device_connect(DBusConnection *conn,
|
||||
if (idev->disable_sdp)
|
||||
bt_clear_cached_session(&idev->src, &idev->dst);
|
||||
|
||||
io = bt_io_connect(BT_IO_L2CAP, control_connect_cb, iconn,
|
||||
io = bt_io_connect(control_connect_cb, iconn,
|
||||
NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &idev->src,
|
||||
BT_IO_OPT_DEST_BDADDR, &idev->dst,
|
||||
|
@ -72,7 +72,7 @@ static void connect_event_cb(GIOChannel *chan, GError *err, gpointer data)
|
||||
return;
|
||||
}
|
||||
|
||||
bt_io_get(chan, BT_IO_L2CAP, &gerr,
|
||||
bt_io_get(chan, &gerr,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dst,
|
||||
BT_IO_OPT_PSM, &psm,
|
||||
@ -110,7 +110,7 @@ static void auth_callback(DBusError *derr, void *user_data)
|
||||
bdaddr_t src, dst;
|
||||
GError *err = NULL;
|
||||
|
||||
bt_io_get(server->confirm, BT_IO_L2CAP, &err,
|
||||
bt_io_get(server->confirm, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dst,
|
||||
BT_IO_OPT_INVALID);
|
||||
@ -152,7 +152,7 @@ static void confirm_event_cb(GIOChannel *chan, gpointer user_data)
|
||||
char addr[18];
|
||||
int ret;
|
||||
|
||||
bt_io_get(chan, BT_IO_L2CAP, &err,
|
||||
bt_io_get(chan, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dst,
|
||||
BT_IO_OPT_INVALID);
|
||||
@ -198,7 +198,7 @@ int server_start(const bdaddr_t *src)
|
||||
server = g_new0(struct input_server, 1);
|
||||
bacpy(&server->src, src);
|
||||
|
||||
server->ctrl = bt_io_listen(BT_IO_L2CAP, connect_event_cb, NULL,
|
||||
server->ctrl = bt_io_listen(connect_event_cb, NULL,
|
||||
server, NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, src,
|
||||
BT_IO_OPT_PSM, L2CAP_PSM_HIDP_CTRL,
|
||||
@ -211,7 +211,7 @@ int server_start(const bdaddr_t *src)
|
||||
return -1;
|
||||
}
|
||||
|
||||
server->intr = bt_io_listen(BT_IO_L2CAP, NULL, confirm_event_cb,
|
||||
server->intr = bt_io_listen(NULL, confirm_event_cb,
|
||||
server, NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, src,
|
||||
BT_IO_OPT_PSM, L2CAP_PSM_HIDP_INTR,
|
||||
|
@ -412,7 +412,7 @@ static DBusMessage *connection_connect(DBusConnection *conn,
|
||||
if (nc->state != DISCONNECTED)
|
||||
return btd_error_already_connected(msg);
|
||||
|
||||
nc->io = bt_io_connect(BT_IO_L2CAP, connect_cb, nc,
|
||||
nc->io = bt_io_connect(connect_cb, nc,
|
||||
NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &peer->src,
|
||||
BT_IO_OPT_DEST_BDADDR, &peer->dst,
|
||||
|
@ -504,7 +504,7 @@ static void confirm_event(GIOChannel *chan, gpointer user_data)
|
||||
char address[18];
|
||||
GError *err = NULL;
|
||||
|
||||
bt_io_get(chan, BT_IO_L2CAP, &err,
|
||||
bt_io_get(chan, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dst,
|
||||
BT_IO_OPT_DEST, address,
|
||||
@ -752,7 +752,7 @@ static struct network_adapter *create_adapter(struct btd_adapter *adapter)
|
||||
|
||||
adapter_get_address(adapter, &src);
|
||||
|
||||
na->io = bt_io_listen(BT_IO_L2CAP, NULL, confirm_event, na,
|
||||
na->io = bt_io_listen(NULL, confirm_event, na,
|
||||
NULL, &err,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_PSM, BNEP_PSM,
|
||||
|
@ -1245,7 +1245,7 @@ static void connect_confirm_cb(GIOChannel *io, gpointer data)
|
||||
conn->io = g_io_channel_ref(io);
|
||||
conn->state = SAP_STATE_DISCONNECTED;
|
||||
|
||||
bt_io_get(io, BT_IO_RFCOMM, &gerr,
|
||||
bt_io_get(io, &gerr,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_DEST_BDADDR, &dst,
|
||||
BT_IO_OPT_INVALID);
|
||||
@ -1399,7 +1399,7 @@ int sap_server_register(const char *path, bdaddr_t *src)
|
||||
server->path = g_strdup(path);
|
||||
server->record_id = record->handle;
|
||||
|
||||
io = bt_io_listen(BT_IO_RFCOMM, NULL, connect_confirm_cb, server,
|
||||
io = bt_io_listen(NULL, connect_confirm_cb, server,
|
||||
NULL, &gerr,
|
||||
BT_IO_OPT_SOURCE_BDADDR, src,
|
||||
BT_IO_OPT_CHANNEL, SAP_SERVER_CHANNEL,
|
||||
|
@ -879,9 +879,7 @@ static uint16_t mtu_exchange(struct gatt_channel *channel, uint16_t mtu,
|
||||
|
||||
io = g_attrib_get_channel(channel->attrib);
|
||||
|
||||
bt_io_get(io, BT_IO_L2CAP, &gerr,
|
||||
BT_IO_OPT_IMTU, &imtu,
|
||||
BT_IO_OPT_INVALID);
|
||||
bt_io_get(io, &gerr, BT_IO_OPT_IMTU, &imtu, BT_IO_OPT_INVALID);
|
||||
|
||||
if (gerr)
|
||||
return enc_error_resp(ATT_OP_MTU_REQ, 0,
|
||||
@ -1051,7 +1049,7 @@ guint attrib_channel_attach(GAttrib *attrib)
|
||||
|
||||
channel = g_new0(struct gatt_channel, 1);
|
||||
|
||||
bt_io_get(io, BT_IO_L2CAP, &gerr,
|
||||
bt_io_get(io, &gerr,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &channel->src,
|
||||
BT_IO_OPT_DEST_BDADDR, &channel->dst,
|
||||
BT_IO_OPT_CID, &cid,
|
||||
@ -1123,8 +1121,7 @@ gboolean attrib_channel_detach(GAttrib *attrib, guint id)
|
||||
|
||||
io = g_attrib_get_channel(attrib);
|
||||
|
||||
bt_io_get(io, BT_IO_L2CAP, &gerr, BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_INVALID);
|
||||
bt_io_get(io, &gerr, BT_IO_OPT_SOURCE_BDADDR, &src, BT_IO_OPT_INVALID);
|
||||
|
||||
if (gerr != NULL) {
|
||||
error("bt_io_get: %s", gerr->message);
|
||||
@ -1253,7 +1250,7 @@ int btd_adapter_gatt_server_start(struct btd_adapter *adapter)
|
||||
adapter_get_address(server->adapter, &addr);
|
||||
|
||||
/* BR/EDR socket */
|
||||
server->l2cap_io = bt_io_listen(BT_IO_L2CAP, NULL, confirm_event,
|
||||
server->l2cap_io = bt_io_listen(NULL, confirm_event,
|
||||
NULL, NULL, &gerr,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &addr,
|
||||
BT_IO_OPT_PSM, ATT_PSM,
|
||||
@ -1273,7 +1270,7 @@ int btd_adapter_gatt_server_start(struct btd_adapter *adapter)
|
||||
}
|
||||
|
||||
/* LE socket */
|
||||
server->le_io = bt_io_listen(BT_IO_L2CAP, NULL, confirm_event,
|
||||
server->le_io = bt_io_listen(NULL, confirm_event,
|
||||
&server->le_io, NULL, &gerr,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &addr,
|
||||
BT_IO_OPT_CID, ATT_CID,
|
||||
|
@ -2002,7 +2002,7 @@ static gboolean att_connect(gpointer user_data)
|
||||
attcb->user_data = device;
|
||||
|
||||
if (device_is_bredr(device)) {
|
||||
io = bt_io_connect(BT_IO_L2CAP, att_connect_cb,
|
||||
io = bt_io_connect(att_connect_cb,
|
||||
attcb, NULL, &gerr,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &sba,
|
||||
BT_IO_OPT_DEST_BDADDR, &device->bdaddr,
|
||||
@ -2010,7 +2010,7 @@ static gboolean att_connect(gpointer user_data)
|
||||
BT_IO_OPT_SEC_LEVEL, BT_IO_SEC_MEDIUM,
|
||||
BT_IO_OPT_INVALID);
|
||||
} else {
|
||||
io = bt_io_connect(BT_IO_L2CAP, att_connect_cb,
|
||||
io = bt_io_connect(att_connect_cb,
|
||||
attcb, NULL, &gerr,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &sba,
|
||||
BT_IO_OPT_DEST_BDADDR, &device->bdaddr,
|
||||
@ -2088,7 +2088,7 @@ int device_browse_primary(struct btd_device *device, DBusConnection *conn,
|
||||
attcb->success = att_browse_cb;
|
||||
attcb->user_data = device;
|
||||
|
||||
device->att_io = bt_io_connect(BT_IO_L2CAP, att_connect_cb,
|
||||
device->att_io = bt_io_connect(att_connect_cb,
|
||||
attcb, NULL, NULL,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &src,
|
||||
BT_IO_OPT_DEST_BDADDR, &device->bdaddr,
|
||||
@ -2474,7 +2474,7 @@ DBusMessage *device_create_bonding(struct btd_device *device,
|
||||
attcb = g_new0(struct att_callbacks, 1);
|
||||
attcb->user_data = device;
|
||||
|
||||
device->att_io = bt_io_connect(BT_IO_L2CAP, att_connect_cb,
|
||||
device->att_io = bt_io_connect(att_connect_cb,
|
||||
attcb, NULL, &gerr,
|
||||
BT_IO_OPT_SOURCE_BDADDR, &sba,
|
||||
BT_IO_OPT_DEST_BDADDR, &device->bdaddr,
|
||||
|
107
test/btiotest.c
107
test/btiotest.c
@ -38,7 +38,6 @@ static gint opt_update_sec = 0;
|
||||
struct io_data {
|
||||
guint ref;
|
||||
GIOChannel *io;
|
||||
BtIOType type;
|
||||
gint reject;
|
||||
gint disconn;
|
||||
gint accept;
|
||||
@ -63,14 +62,13 @@ static struct io_data *io_data_ref(struct io_data *data)
|
||||
return data;
|
||||
}
|
||||
|
||||
static struct io_data *io_data_new(GIOChannel *io, BtIOType type, gint reject,
|
||||
gint disconn, gint accept)
|
||||
static struct io_data *io_data_new(GIOChannel *io, int reject, gint disconn,
|
||||
gint accept)
|
||||
{
|
||||
struct io_data *data;
|
||||
|
||||
data = g_new0(struct io_data, 1);
|
||||
data->io = io;
|
||||
data->type = type;
|
||||
data->reject = reject;
|
||||
data->disconn = disconn;
|
||||
data->accept = accept;
|
||||
@ -100,9 +98,8 @@ static void update_sec_level(struct io_data *data)
|
||||
GError *err = NULL;
|
||||
int sec_level;
|
||||
|
||||
if (!bt_io_get(data->io, data->type, &err,
|
||||
BT_IO_OPT_SEC_LEVEL, &sec_level,
|
||||
BT_IO_OPT_INVALID)) {
|
||||
if (!bt_io_get(data->io, &err, BT_IO_OPT_SEC_LEVEL, &sec_level,
|
||||
BT_IO_OPT_INVALID)) {
|
||||
printf("bt_io_get(OPT_SEC_LEVEL): %s\n", err->message);
|
||||
g_clear_error(&err);
|
||||
return;
|
||||
@ -113,9 +110,8 @@ static void update_sec_level(struct io_data *data)
|
||||
if (opt_update_sec == sec_level)
|
||||
return;
|
||||
|
||||
if (!bt_io_set(data->io, data->type, &err,
|
||||
BT_IO_OPT_SEC_LEVEL, opt_update_sec,
|
||||
BT_IO_OPT_INVALID)) {
|
||||
if (!bt_io_set(data->io, &err, BT_IO_OPT_SEC_LEVEL, opt_update_sec,
|
||||
BT_IO_OPT_INVALID)) {
|
||||
printf("bt_io_set(OPT_SEC_LEVEL): %s\n", err->message);
|
||||
g_clear_error(&err);
|
||||
}
|
||||
@ -126,15 +122,15 @@ static void connect_cb(GIOChannel *io, GError *err, gpointer user_data)
|
||||
struct io_data *data = user_data;
|
||||
GIOCondition cond;
|
||||
char addr[18];
|
||||
uint16_t handle;
|
||||
uint8_t cls[3];
|
||||
uint16_t handle, omtu, imtu;
|
||||
uint8_t cls[3], key_size;
|
||||
|
||||
if (err) {
|
||||
printf("Connecting failed: %s\n", err->message);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!bt_io_get(io, data->type, &err,
|
||||
if (!bt_io_get(io, &err,
|
||||
BT_IO_OPT_DEST, addr,
|
||||
BT_IO_OPT_HANDLE, &handle,
|
||||
BT_IO_OPT_CLASS, cls,
|
||||
@ -148,32 +144,20 @@ static void connect_cb(GIOChannel *io, GError *err, gpointer user_data)
|
||||
printf("Successfully connected to %s. handle=%u, class=%02x%02x%02x\n",
|
||||
addr, handle, cls[0], cls[1], cls[2]);
|
||||
|
||||
if (data->type == BT_IO_L2CAP || data->type == BT_IO_SCO) {
|
||||
uint16_t omtu, imtu;
|
||||
|
||||
if (!bt_io_get(io, data->type, &err,
|
||||
BT_IO_OPT_OMTU, &omtu,
|
||||
if (!bt_io_get(io, &err, BT_IO_OPT_OMTU, &omtu,
|
||||
BT_IO_OPT_IMTU, &imtu,
|
||||
BT_IO_OPT_INVALID)) {
|
||||
printf("Unable to get L2CAP MTU sizes: %s\n",
|
||||
err->message);
|
||||
g_clear_error(&err);
|
||||
} else
|
||||
printf("imtu=%u, omtu=%u\n", imtu, omtu);
|
||||
}
|
||||
printf("Unable to get MTU sizes: %s\n", err->message);
|
||||
g_clear_error(&err);
|
||||
} else
|
||||
printf("imtu=%u, omtu=%u\n", imtu, omtu);
|
||||
|
||||
if (data->type == BT_IO_L2CAP) {
|
||||
uint8_t key_size;
|
||||
|
||||
if (!bt_io_get(io, data->type, &err,
|
||||
BT_IO_OPT_KEY_SIZE, &key_size,
|
||||
BT_IO_OPT_INVALID)) {
|
||||
printf("Unable to get L2CAP Key size: %s\n",
|
||||
err->message);
|
||||
g_clear_error(&err);
|
||||
} else
|
||||
printf("key_size=%u\n", key_size);
|
||||
}
|
||||
if (!bt_io_get(io, &err, BT_IO_OPT_KEY_SIZE, &key_size,
|
||||
BT_IO_OPT_INVALID)) {
|
||||
printf("Unable to get Key size: %s\n", err->message);
|
||||
g_clear_error(&err);
|
||||
} else
|
||||
printf("key_size=%u\n", key_size);
|
||||
|
||||
if (data->disconn == 0) {
|
||||
g_io_channel_shutdown(io, TRUE, NULL);
|
||||
@ -234,8 +218,7 @@ static void confirm_cb(GIOChannel *io, gpointer user_data)
|
||||
struct io_data *data = user_data;
|
||||
GError *err = NULL;
|
||||
|
||||
if (!bt_io_get(io, data->type, &err, BT_IO_OPT_DEST, addr,
|
||||
BT_IO_OPT_INVALID)) {
|
||||
if (!bt_io_get(io, &err, BT_IO_OPT_DEST, addr, BT_IO_OPT_INVALID)) {
|
||||
printf("bt_io_get(OPT_DEST): %s\n", err->message);
|
||||
g_clear_error(&err);
|
||||
} else
|
||||
@ -280,10 +263,10 @@ static void l2cap_connect(const char *src, const char *dst, uint16_t psm,
|
||||
|
||||
printf("Connecting to %s L2CAP PSM %u\n", dst, psm);
|
||||
|
||||
data = io_data_new(NULL, BT_IO_L2CAP, -1, disconn, -1);
|
||||
data = io_data_new(NULL, -1, disconn, -1);
|
||||
|
||||
if (src)
|
||||
data->io = bt_io_connect(BT_IO_L2CAP, connect_cb, data,
|
||||
data->io = bt_io_connect(connect_cb, data,
|
||||
(GDestroyNotify) io_data_unref,
|
||||
&err,
|
||||
BT_IO_OPT_SOURCE, src,
|
||||
@ -294,7 +277,7 @@ static void l2cap_connect(const char *src, const char *dst, uint16_t psm,
|
||||
BT_IO_OPT_PRIORITY, prio,
|
||||
BT_IO_OPT_INVALID);
|
||||
else
|
||||
data->io = bt_io_connect(BT_IO_L2CAP, connect_cb, data,
|
||||
data->io = bt_io_connect(connect_cb, data,
|
||||
(GDestroyNotify) io_data_unref,
|
||||
&err,
|
||||
BT_IO_OPT_DEST, dst,
|
||||
@ -331,11 +314,11 @@ static void l2cap_listen(const char *src, uint16_t psm, gint defer,
|
||||
|
||||
printf("Listening on L2CAP PSM %u\n", psm);
|
||||
|
||||
data = io_data_new(NULL, BT_IO_L2CAP, reject, disconn, accept);
|
||||
data = io_data_new(NULL, reject, disconn, accept);
|
||||
|
||||
if (src)
|
||||
l2_srv = bt_io_listen(BT_IO_L2CAP, conn, cfm,
|
||||
data, (GDestroyNotify) io_data_unref,
|
||||
l2_srv = bt_io_listen(conn, cfm, data,
|
||||
(GDestroyNotify) io_data_unref,
|
||||
&err,
|
||||
BT_IO_OPT_SOURCE, src,
|
||||
BT_IO_OPT_PSM, psm,
|
||||
@ -343,8 +326,8 @@ static void l2cap_listen(const char *src, uint16_t psm, gint defer,
|
||||
BT_IO_OPT_MASTER, master,
|
||||
BT_IO_OPT_INVALID);
|
||||
else
|
||||
l2_srv = bt_io_listen(BT_IO_L2CAP, conn, cfm,
|
||||
data, (GDestroyNotify) io_data_unref,
|
||||
l2_srv = bt_io_listen(conn, cfm, data,
|
||||
(GDestroyNotify) io_data_unref,
|
||||
&err,
|
||||
BT_IO_OPT_PSM, psm,
|
||||
BT_IO_OPT_SEC_LEVEL, sec,
|
||||
@ -368,10 +351,10 @@ static void rfcomm_connect(const char *src, const char *dst, uint8_t ch,
|
||||
|
||||
printf("Connecting to %s RFCOMM channel %u\n", dst, ch);
|
||||
|
||||
data = io_data_new(NULL, BT_IO_RFCOMM, -1, disconn, -1);
|
||||
data = io_data_new(NULL, -1, disconn, -1);
|
||||
|
||||
if (src)
|
||||
data->io = bt_io_connect(BT_IO_RFCOMM, connect_cb, data,
|
||||
data->io = bt_io_connect(connect_cb, data,
|
||||
(GDestroyNotify) io_data_unref,
|
||||
&err,
|
||||
BT_IO_OPT_SOURCE, src,
|
||||
@ -380,7 +363,7 @@ static void rfcomm_connect(const char *src, const char *dst, uint8_t ch,
|
||||
BT_IO_OPT_SEC_LEVEL, sec,
|
||||
BT_IO_OPT_INVALID);
|
||||
else
|
||||
data->io = bt_io_connect(BT_IO_RFCOMM, connect_cb, data,
|
||||
data->io = bt_io_connect(connect_cb, data,
|
||||
(GDestroyNotify) io_data_unref,
|
||||
&err,
|
||||
BT_IO_OPT_DEST, dst,
|
||||
@ -413,10 +396,10 @@ static void rfcomm_listen(const char *src, uint8_t ch, gboolean defer,
|
||||
cfm = NULL;
|
||||
}
|
||||
|
||||
data = io_data_new(NULL, BT_IO_RFCOMM, reject, disconn, accept);
|
||||
data = io_data_new(NULL, reject, disconn, accept);
|
||||
|
||||
if (src)
|
||||
rc_srv = bt_io_listen(BT_IO_RFCOMM, conn, cfm,
|
||||
rc_srv = bt_io_listen(conn, cfm,
|
||||
data, (GDestroyNotify) io_data_unref,
|
||||
&err,
|
||||
BT_IO_OPT_SOURCE, src,
|
||||
@ -425,7 +408,7 @@ static void rfcomm_listen(const char *src, uint8_t ch, gboolean defer,
|
||||
BT_IO_OPT_MASTER, master,
|
||||
BT_IO_OPT_INVALID);
|
||||
else
|
||||
rc_srv = bt_io_listen(BT_IO_RFCOMM, conn, cfm,
|
||||
rc_srv = bt_io_listen(conn, cfm,
|
||||
data, (GDestroyNotify) io_data_unref,
|
||||
&err,
|
||||
BT_IO_OPT_CHANNEL, ch,
|
||||
@ -439,9 +422,7 @@ static void rfcomm_listen(const char *src, uint8_t ch, gboolean defer,
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
bt_io_get(rc_srv, BT_IO_RFCOMM, &err,
|
||||
BT_IO_OPT_CHANNEL, &ch,
|
||||
BT_IO_OPT_INVALID);
|
||||
bt_io_get(rc_srv, &err, BT_IO_OPT_CHANNEL, &ch, BT_IO_OPT_INVALID);
|
||||
|
||||
printf("Listening on RFCOMM channel %u\n", ch);
|
||||
|
||||
@ -455,17 +436,17 @@ static void sco_connect(const char *src, const char *dst, gint disconn)
|
||||
|
||||
printf("Connecting SCO to %s\n", dst);
|
||||
|
||||
data = io_data_new(NULL, BT_IO_SCO, -1, disconn, -1);
|
||||
data = io_data_new(NULL, -1, disconn, -1);
|
||||
|
||||
if (src)
|
||||
data->io = bt_io_connect(BT_IO_SCO, connect_cb, data,
|
||||
data->io = bt_io_connect(connect_cb, data,
|
||||
(GDestroyNotify) io_data_unref,
|
||||
&err,
|
||||
BT_IO_OPT_SOURCE, src,
|
||||
BT_IO_OPT_DEST, dst,
|
||||
BT_IO_OPT_INVALID);
|
||||
else
|
||||
data->io = bt_io_connect(BT_IO_SCO, connect_cb, data,
|
||||
data->io = bt_io_connect(connect_cb, data,
|
||||
(GDestroyNotify) io_data_unref,
|
||||
&err,
|
||||
BT_IO_OPT_DEST, dst,
|
||||
@ -486,17 +467,17 @@ static void sco_listen(const char *src, gint disconn)
|
||||
|
||||
printf("Listening for SCO connections\n");
|
||||
|
||||
data = io_data_new(NULL, BT_IO_SCO, -1, disconn, -1);
|
||||
data = io_data_new(NULL, -1, disconn, -1);
|
||||
|
||||
if (src)
|
||||
sco_srv = bt_io_listen(BT_IO_SCO, connect_cb, NULL,
|
||||
data, (GDestroyNotify) io_data_unref,
|
||||
sco_srv = bt_io_listen(connect_cb, NULL, data,
|
||||
(GDestroyNotify) io_data_unref,
|
||||
&err,
|
||||
BT_IO_OPT_SOURCE, src,
|
||||
BT_IO_OPT_INVALID);
|
||||
else
|
||||
sco_srv = bt_io_listen(BT_IO_SCO, connect_cb, NULL,
|
||||
data, (GDestroyNotify) io_data_unref,
|
||||
sco_srv = bt_io_listen(connect_cb, NULL, data,
|
||||
(GDestroyNotify) io_data_unref,
|
||||
&err, BT_IO_OPT_INVALID);
|
||||
|
||||
if (!sco_srv) {
|
||||
|
Loading…
Reference in New Issue
Block a user