summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2009-02-17 13:09:25 -0300
committerJohan Hedberg <johan.hedberg@nokia.com>2009-02-19 14:30:39 +0200
commit88e4d0af74c00654e24709b3784756c5523c66bd (patch)
tree65a4e9587207376fe4c1d22a32c1690312637cde /common
parentd048052453e0a8ea53061e68424f671df8c405a0 (diff)
Cleanup old BtIO code.
Diffstat (limited to 'common')
-rw-r--r--common/glib-helper.c873
-rw-r--r--common/glib-helper.h55
2 files changed, 0 insertions, 928 deletions
diff --git a/common/glib-helper.c b/common/glib-helper.c
index b833d569..29d72e56 100644
--- a/common/glib-helper.c
+++ b/common/glib-helper.c
@@ -57,10 +57,6 @@ struct cached_sdp_session {
static GSList *cached_sdp_sessions = NULL;
-typedef int (*resolver_t) (int fd, char *src, char *dst);
-typedef BtIOReturn (*connect_t) (BtIO *io, BtIOFunc func);
-typedef BtIOReturn (*listen_t) (BtIO *io, BtIOFunc func);
-
struct hci_cmd_data {
bt_hci_result_t cb;
uint16_t handle;
@@ -68,9 +64,6 @@ struct hci_cmd_data {
gpointer caller_data;
};
-static BtIOReturn bt_io_connect(BtIO *io, const char *uuid, BtIOFunc func);
-static BtIOReturn bt_io_listen(BtIO *io, const char *uuid, BtIOFunc func);
-
static gboolean cached_session_expired(gpointer user_data)
{
struct cached_sdp_session *cached = user_data;
@@ -146,29 +139,6 @@ int set_nonblocking(int fd)
return 0;
}
-struct io_context {
- int fd;
- GIOChannel *io;
- BtIOFunc func;
- bt_io_callback_t cb;
- resolver_t resolver;
- gpointer user_data;
-};
-
-struct bt_io {
- char src[18];
- char dst[18];
- guint32 flags;
- guint8 channel;
- guint16 psm;
- guint16 mtu;
- BtIOTransport type;
- connect_t connect;
- listen_t listen;
- struct io_context *io_ctxt;
- int refcount;
-};
-
struct search_context {
bdaddr_t src;
bdaddr_t dst;
@@ -622,494 +592,6 @@ GSList *bt_string2list(const gchar *str)
return l;
}
-static inline int resolve_names(int fd, struct sockaddr *host,
- struct sockaddr *peer, socklen_t len)
-{
- int err;
- socklen_t namelen;
-
- namelen = len;
- memset(host, 0, len);
- err = getsockname(fd, host, &namelen);
- if (err < 0)
- return err;
-
- namelen = len;
- memset(peer, 0, len);
- err = getpeername(fd, peer, &namelen);
- if (err < 0)
- return err;
-
- return 0;
-}
-
-static int rfcomm_resolver(int fd, char *src, char *dst)
-{
- struct sockaddr_rc host, peer;
- socklen_t len;
- int err;
-
- len = sizeof(host);
- err = resolve_names(fd, (struct sockaddr *) &host,
- (struct sockaddr *) &peer, len);
- if (err < 0)
- return err;
-
- ba2str(&host.rc_bdaddr, src);
- ba2str(&peer.rc_bdaddr, dst);
-
- return 0;
-}
-
-static int l2cap_resolver(int fd, char *src, char *dst)
-{
- struct sockaddr_l2 host, peer;
- socklen_t len;
- int err;
-
- len = sizeof(host);
- err = resolve_names(fd, (struct sockaddr *) &host,
- (struct sockaddr *) &peer, len);
- if (err < 0)
- return err;
-
- ba2str(&host.l2_bdaddr, src);
- ba2str(&peer.l2_bdaddr, dst);
-
- return 0;
-}
-
-static int sco_resolver(int fd, char *src, char *dst)
-{
- struct sockaddr_sco host, peer;
- socklen_t len;
- int err;
-
- len = sizeof(host);
- err = resolve_names(fd, (struct sockaddr *) &host,
- (struct sockaddr *) &peer, len);
- if (err < 0)
- return err;
-
- ba2str(&host.sco_bdaddr, src);
- ba2str(&peer.sco_bdaddr, dst);
-
- return 0;
-}
-
-static gboolean listen_cb(GIOChannel *chan, GIOCondition cond,
- gpointer user_data)
-{
- BtIO *io = user_data;
- struct io_context *io_ctxt = io->io_ctxt;
- int fd, err = 0;
- GIOChannel *gio;
- struct sockaddr addr;
- socklen_t len;
- bdaddr_t src, dst;
-
- if (cond & G_IO_NVAL)
- return FALSE;
-
- if (cond & (G_IO_HUP | G_IO_ERR)) {
- g_io_channel_close(chan);
- g_io_channel_unref(chan);
- g_free(io_ctxt);
- return FALSE;
- }
-
- len = sizeof(addr);
- memset(&addr, 0, len);
- fd = accept(io_ctxt->fd, &addr, &len);
- if (fd < 0)
- goto drop;
-
- if (io_ctxt->resolver) {
- err = io_ctxt->resolver(fd, io->src, io->dst);
- if (err < 0) {
- close(fd);
- goto drop;
- }
- }
-
- gio = g_io_channel_unix_new(fd);
- if (!gio)
- err = -ENOMEM;
-
- if (io_ctxt->func)
- io_ctxt->func(io, err, gio, io_ctxt->user_data);
- if (io_ctxt->cb) {
- str2ba(io->src, &src);
- str2ba(io->dst, &dst);
- io_ctxt->cb(gio, err, &src, &dst, io_ctxt->user_data);
- }
-
- return TRUE;
-
-drop:
- if (io_ctxt->func)
- io_ctxt->func(io, -errno, NULL, io_ctxt->user_data);
- if (io_ctxt->cb)
- io_ctxt->cb(NULL, err, NULL, NULL, io_ctxt->user_data);
-
- return TRUE;
-}
-
-static int transport_listen(BtIO *io)
-{
- struct io_context *io_ctxt = io->io_ctxt;
- int err;
-
- err = listen(io_ctxt->fd, 5);
- if (err < 0)
- return -errno;
-
- io_ctxt->io = g_io_channel_unix_new(io_ctxt->fd);
- if (!io_ctxt->io)
- return -ENOMEM;
-
- g_io_add_watch(io_ctxt->io, G_IO_IN | G_IO_ERR | G_IO_HUP | G_IO_NVAL,
- (GIOFunc) listen_cb, io);
-
- return 0;
-}
-
-static gboolean connect_cb(GIOChannel *gio, GIOCondition cond,
- gpointer user_data)
-{
- BtIO *io = user_data;
- struct io_context *io_ctxt = io->io_ctxt;
- int err = 0, ret;
- socklen_t len;
- bdaddr_t src, dst;
-
- if (cond & G_IO_NVAL)
- return FALSE;
-
- len = sizeof(ret);
- if (getsockopt(io_ctxt->fd, SOL_SOCKET, SO_ERROR, &ret, &len) < 0) {
- err = -errno;
- goto done;
- }
-
- if (ret != 0) {
- err = -ret;
- goto done;
- }
-
- if (io_ctxt->resolver) {
- err = io_ctxt->resolver(io_ctxt->fd, io->src, io->dst);
- if (err < 0)
- goto done;
- }
-
- io_ctxt->io = NULL;
-
-done:
- if (io_ctxt->func)
- io_ctxt->func(io, err, gio, io_ctxt->user_data);
- if (io_ctxt->cb) {
- str2ba(io->src, &src);
- str2ba(io->dst, &dst);
- io_ctxt->cb(gio, err, &src, &dst, io_ctxt->user_data);
- }
- if (io_ctxt->io) {
- g_io_channel_close(io_ctxt->io);
- g_io_channel_unref(io_ctxt->io);
- }
- g_free(io_ctxt);
-
- return FALSE;
-}
-
-static int transport_connect(BtIO *io, struct sockaddr *addr,
- socklen_t addrlen)
-{
- struct io_context *io_ctxt = io->io_ctxt;
- int err;
-
- io_ctxt->io = g_io_channel_unix_new(io_ctxt->fd);
- if (!io_ctxt->io)
- return -ENOMEM;
-
- err = g_io_channel_set_flags(io_ctxt->io, G_IO_FLAG_NONBLOCK, NULL);
- if (err != G_IO_STATUS_NORMAL)
- return -EPERM;
-
- err = connect(io_ctxt->fd, addr, addrlen);
- if (err < 0 && !(errno == EAGAIN || errno == EINPROGRESS))
- return -errno;
-
- g_io_add_watch(io_ctxt->io, G_IO_OUT | G_IO_ERR | G_IO_HUP | G_IO_NVAL,
- (GIOFunc) connect_cb, io);
-
- return 0;
-}
-
-static int sco_bind(struct io_context *io_ctxt, const char *address,
- uint16_t mtu, struct sockaddr_sco *addr)
-{
- int err;
- struct sco_options sco_opt;
-
- io_ctxt->fd = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_SCO);
- if (io_ctxt->fd < 0)
- return -errno;
-
- memset(addr, 0, sizeof(*addr));
- addr->sco_family = AF_BLUETOOTH;
- str2ba(address, &addr->sco_bdaddr);
-
- err = bind(io_ctxt->fd, (struct sockaddr *) addr, sizeof(*addr));
- if (err < 0) {
- close(io_ctxt->fd);
- return -errno;
- }
-
- if (mtu) {
- socklen_t olen = sizeof(sco_opt);
- memset(&sco_opt, 0, olen);
- getsockopt(io_ctxt->fd, SOL_SCO, SCO_OPTIONS, &sco_opt, &olen);
- sco_opt.mtu = mtu;
- setsockopt(io_ctxt->fd, SOL_SCO, SCO_OPTIONS, &sco_opt,
- sizeof(sco_opt));
- }
-
- return 0;
-}
-
-static BtIOReturn sco_connect(BtIO *io, BtIOFunc func)
-{
- struct io_context *io_ctxt = io->io_ctxt;
- struct sockaddr_sco addr;
- int err;
-
- io_ctxt->func = func;
-
- err = sco_bind(io_ctxt, io->src, 0, &addr);
- if (err < 0)
- return BT_IO_FAILED;
-
- memset(&addr, 0, sizeof(addr));
- addr.sco_family = AF_BLUETOOTH;
- str2ba(io->dst, &addr.sco_bdaddr);
-
- err = transport_connect(io, (struct sockaddr *) &addr,
- sizeof(addr));
- if (err < 0) {
- close(io_ctxt->fd);
- return BT_IO_FAILED;
- }
-
- return BT_IO_SUCCESS;
-}
-
-static int l2cap_bind(struct io_context *io_ctxt, const char *address,
- uint16_t psm, uint16_t mtu, uint32_t flags,
- struct sockaddr_l2 *addr)
-{
- int err;
- struct l2cap_options l2o;
-
- io_ctxt->fd = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP);
- if (io_ctxt->fd < 0)
- return -errno;
-
- memset(addr, 0, sizeof(*addr));
- addr->l2_family = AF_BLUETOOTH;
- str2ba(address, &addr->l2_bdaddr);
- addr->l2_psm = htobs(psm);
-
- err = bind(io_ctxt->fd, (struct sockaddr *) addr, sizeof(*addr));
- if (err < 0) {
- close(io_ctxt->fd);
- return -errno;
- }
-
- if (mtu) {
- socklen_t olen = sizeof(l2o);
- memset(&l2o, 0, olen);
- getsockopt(io_ctxt->fd, SOL_L2CAP, L2CAP_OPTIONS, &l2o, &olen);
- l2o.imtu = l2o.omtu = mtu;
- setsockopt(io_ctxt->fd, SOL_L2CAP, L2CAP_OPTIONS, &l2o, sizeof(l2o));
- }
-
- if (flags) {
- int opt = flags;
- err = setsockopt(io_ctxt->fd, SOL_L2CAP, L2CAP_LM, &opt,
- sizeof(opt));
- if (err < 0) {
- close(io_ctxt->fd);
- return -errno;
- }
- }
-
- return 0;
-}
-
-static BtIOReturn l2cap_listen(BtIO *io, BtIOFunc func)
-{
- struct io_context *io_ctxt = io->io_ctxt;
- struct sockaddr_l2 addr;
- int err;
-
- io_ctxt->func = func;
-
- err = l2cap_bind(io_ctxt, io->src, io->psm, io->mtu, io->flags, &addr);
- if (err < 0)
- return BT_IO_FAILED;
-
- err = transport_listen(io);
- if (err < 0) {
- close(io_ctxt->fd);
- return BT_IO_FAILED;
- }
-
- return BT_IO_SUCCESS;
-}
-
-static BtIOReturn l2cap_connect(BtIO *io, BtIOFunc func)
-{
- struct io_context *io_ctxt = io->io_ctxt;
- struct sockaddr_l2 l2a;
- int err;
-
- io_ctxt->func = func;
-
- err = l2cap_bind(io_ctxt, io->src, 0, io->mtu, 0, &l2a);
- if (err < 0)
- return BT_IO_FAILED;
-
- memset(&l2a, 0, sizeof(l2a));
- l2a.l2_family = AF_BLUETOOTH;
- str2ba(io->dst, &l2a.l2_bdaddr);
- l2a.l2_psm = htobs(io->psm);
-
- err = transport_connect(io, (struct sockaddr *) &l2a,
- sizeof(l2a));
- if (err < 0) {
- close(io_ctxt->fd);
- return BT_IO_FAILED;
- }
-
- return BT_IO_SUCCESS;
-}
-
-static BtIOReturn rfcomm_bind(struct io_context *io_ctxt, const char *address,
- uint8_t channel, uint32_t flags,
- struct sockaddr_rc *addr)
-{
- int err;
-
- io_ctxt->fd = socket(PF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);
- if (io_ctxt->fd < 0)
- return BT_IO_FAILED;
-
-
- memset(addr, 0, sizeof(*addr));
- addr->rc_family = AF_BLUETOOTH;
- str2ba(address, &addr->rc_bdaddr);
- addr->rc_channel = channel;
-
- err = bind(io_ctxt->fd, (struct sockaddr *) addr, sizeof(*addr));
- if (err < 0) {
- close(io_ctxt->fd);
- return BT_IO_FAILED;
- }
-
- if (flags) {
- int opt = flags;
- err = setsockopt(io_ctxt->fd, SOL_RFCOMM, RFCOMM_LM, &opt,
- sizeof(opt));
- if (err < 0) {
- close(io_ctxt->fd);
- return BT_IO_FAILED;
- }
- }
-
- return BT_IO_SUCCESS;
-}
-
-static BtIOReturn rfcomm_listen(BtIO *io, BtIOFunc func)
-{
- struct io_context *io_ctxt = io->io_ctxt;
- struct sockaddr_rc addr;
- socklen_t sa_len;
- int err;
-
- io_ctxt->func = func;
-
- err = rfcomm_bind(io_ctxt, io->src, io->channel, io->flags, &addr);
- if (err < 0)
- return BT_IO_FAILED;
-
- err = transport_listen(io);
- if (err < 0) {
- close(io_ctxt->fd);
- return BT_IO_FAILED;
- }
-
- sa_len = sizeof(struct sockaddr_rc);
- memset(&addr, 0, sizeof(addr));
- if (getsockname(io_ctxt->fd, (struct sockaddr *) &addr, &sa_len) < 0) {
- err = -errno;
- close(io_ctxt->fd);
- return BT_IO_FAILED;
- }
-
- io->channel = addr.rc_channel;
-
- return BT_IO_SUCCESS;
-}
-
-static BtIOReturn rfcomm_connect(BtIO *io, BtIOFunc func)
-{
- struct io_context *io_ctxt = io->io_ctxt;
- struct sockaddr_rc addr;
- int err;
-
- io_ctxt->func = func;
-
- err = rfcomm_bind(io_ctxt, io->src, 0, 0, &addr);
- if (err < 0)
- return BT_IO_FAILED;
-
- memset(&addr, 0, sizeof(addr));
- addr.rc_family = AF_BLUETOOTH;
- str2ba(io->dst, &addr.rc_bdaddr);
- addr.rc_channel = io->channel;
-
- err = transport_connect(io, (struct sockaddr *) &addr,
- sizeof(addr));
- if (err < 0) {
- close(io_ctxt->fd);
- return BT_IO_FAILED;
- }
-
- return BT_IO_SUCCESS;
-}
-
-static BtIOReturn sco_listen(BtIO *io, BtIOFunc func)
-{
- struct io_context *io_ctxt = io->io_ctxt;
- struct sockaddr_sco addr;
- int err;
-
- io_ctxt->func = func;
-
- err = sco_bind(io_ctxt, io->src, io->mtu, &addr);
- if (err < 0)
- return BT_IO_FAILED;
-
- err = transport_listen(io);
- if (err < 0) {
- close(io_ctxt->fd);
- return BT_IO_FAILED;
- }
-
- return BT_IO_SUCCESS;
-}
-
static gboolean hci_event_watch(GIOChannel *io,
GIOCondition cond, gpointer user_data)
{
@@ -1288,358 +770,3 @@ failed:
return -err;
}
-
-static int create_io_context(struct io_context **io_ctxt, BtIOFunc func,
- gpointer cb, gpointer resolver, gpointer user_data)
-{
- *io_ctxt = g_try_malloc0(sizeof(struct search_context));
- if (!*io_ctxt)
- return -ENOMEM;
-
- (*io_ctxt)->cb = cb;
- (*io_ctxt)->func = func;
- (*io_ctxt)->resolver = resolver;
- (*io_ctxt)->user_data = user_data;
-
- return 0;
-}
-
-static void io_context_cleanup(struct io_context *io_ctxt)
-{
- if (io_ctxt->io) {
- g_io_channel_close(io_ctxt->io);
- g_io_channel_unref(io_ctxt->io);
- }
- g_free(io_ctxt);
-}
-
-static GIOChannel *rfcomm_listen_internal(const bdaddr_t *src, uint8_t *channel,
- uint32_t flags, bt_io_callback_t cb, void *user_data)
-{
- BtIO *io;
- BtIOReturn err;
-
- io = bt_io_create(BT_IO_TRANS_RFCOMM, user_data, NULL);
- if (!io)
- return NULL;
-
- ba2str(src, io->src);
- io->channel = *channel;
- io->flags = flags;
- io->io_ctxt->cb = cb;
- err = bt_io_listen(io, NULL, NULL);
- if (err != BT_IO_SUCCESS) {
- bt_io_unref(io);
- return NULL;
- }
-
- *channel = io->channel;
-
- return io->io_ctxt->io;
-}
-
-GIOChannel *bt_rfcomm_listen_allocate(const bdaddr_t *src, uint8_t *channel,
- uint32_t flags, bt_io_callback_t cb, void *user_data)
-{
- if (!channel)
- return NULL;
-
- *channel = 0;
-
- return rfcomm_listen_internal(src, channel, flags, cb, user_data);
-}
-
-GIOChannel *bt_rfcomm_listen(const bdaddr_t *src, uint8_t channel,
- uint32_t flags, bt_io_callback_t cb, void *user_data)
-{
- if (channel < 1 || channel > 30)
- return NULL;
-
- return rfcomm_listen_internal(src, &channel, flags, cb, user_data);
-
-}
-
-int bt_rfcomm_connect(const bdaddr_t *src, const bdaddr_t *dst,
- uint8_t channel, bt_io_callback_t cb, void *user_data)
-{
- BtIO *io;
- BtIOReturn err;
-
- io = bt_io_create(BT_IO_TRANS_RFCOMM, user_data, NULL);
- if (!io)
- return -1;
-
- ba2str(src, io->src);
- ba2str(dst, io->dst);
- io->channel = channel;
- io->io_ctxt->cb = cb;
- err = bt_io_connect(io, NULL, NULL);
- if (err != BT_IO_SUCCESS) {
- bt_io_unref(io);
- return -1;
- }
-
- return 0;
-}
-
-GIOChannel *bt_l2cap_listen(const bdaddr_t *src, uint16_t psm, uint16_t mtu,
- uint32_t flags, bt_io_callback_t cb, void *user_data)
-{
- BtIO *io;
- BtIOReturn err;
-
- io = bt_io_create(BT_IO_TRANS_L2CAP, user_data, NULL);
- if (!io)
- return NULL;
-
- ba2str(src, io->src);
- io->psm = psm;
- io->mtu = mtu;
- io->flags = flags;
- io->io_ctxt->cb = cb;
- err = bt_io_listen(io, NULL, NULL);
- if (err != BT_IO_SUCCESS) {
- bt_io_unref(io);
- return NULL;
- }
-
- return io->io_ctxt->io;
-}
-
-int bt_l2cap_connect(const bdaddr_t *src, const bdaddr_t *dst,
- uint16_t psm, uint16_t mtu, bt_io_callback_t cb,
- void *user_data)
-{
- BtIO *io;
- BtIOReturn err;
-
- io = bt_io_create(BT_IO_TRANS_L2CAP, user_data, NULL);
- if (!io)
- return -1;
-
- ba2str(src, io->src);
- ba2str(dst, io->dst);
- io->psm = psm;
- io->mtu = mtu;
- io->io_ctxt->cb = cb;
- err = bt_io_connect(io, NULL, NULL);
- if (err != BT_IO_SUCCESS) {
- bt_io_unref(io);
- return -1;
- }
-
- return 0;
-}
-
-GIOChannel *bt_sco_listen(const bdaddr_t *src, uint16_t mtu,
- bt_io_callback_t cb, void *user_data)
-{
- BtIO *io;
- BtIOReturn err;
-
- io = bt_io_create(BT_IO_TRANS_SCO, user_data, NULL);
- if (!io)
- return NULL;
-
- ba2str(src, io->src);
- io->io_ctxt->cb = cb;
- err = bt_io_listen(io, NULL, NULL);
- if (err != BT_IO_SUCCESS) {
- bt_io_unref(io);
- return NULL;
- }
-
- return io->io_ctxt->io;
-}
-
-
-int bt_sco_connect(const bdaddr_t *src, const bdaddr_t *dst,
- bt_io_callback_t cb, void *user_data)
-{
- BtIO *io;
- BtIOReturn err;
-
- io = bt_io_create(BT_IO_TRANS_SCO, user_data, NULL);
- if (!io)
- return -1;
-
- ba2str(src, io->src);
- ba2str(dst, io->dst);
- io->io_ctxt->cb = cb;
- err = bt_io_connect(io, NULL, NULL);
- if (err != BT_IO_SUCCESS) {
- bt_io_unref(io);
- return -1;
- }
-
- return 0;
-}
-
-/* Experiemental bt_io API */
-
-BtIO *bt_io_create(BtIOTransport type, gpointer user_data, GDestroyNotify notify)
-{
- BtIO *io;
- int err;
-
- io = g_new0(BtIO, 1);
- if (!io)
- return NULL;
-
- io->refcount = 1;
-
- switch (type) {
- case BT_IO_TRANS_L2CAP:
- err = create_io_context(&io->io_ctxt, NULL, NULL,
- l2cap_resolver, user_data);
- io->connect = l2cap_connect;
- io->listen = l2cap_listen;
- break;
- case BT_IO_TRANS_RFCOMM:
- err = create_io_context(&io->io_ctxt, NULL, NULL,
- rfcomm_resolver, user_data);
- io->connect = rfcomm_connect;
- io->listen = rfcomm_listen;
- break;
- case BT_IO_TRANS_SCO:
- err = create_io_context(&io->io_ctxt, NULL, NULL,
- sco_resolver, user_data);
- io->connect = sco_connect;
- io->listen = sco_listen;
- break;
- default:
- return NULL;
- }
-
- if (err < 0) {
- bt_io_unref(io);
- return NULL;
- }
-
- return io;
-}
-
-BtIO *bt_io_ref(BtIO *io)
-{
- io->refcount++;
-
- return io;
-}
-
-void bt_io_unref(BtIO *io)
-{
- io->refcount--;
-
- if (io->refcount)
- return;
-
- io_context_cleanup(io->io_ctxt);
- g_free(io);
-}
-
-gboolean bt_io_set_source(BtIO *io, const char *address)
-{
- if (strlen(address) != sizeof(io->src))
- return FALSE;
-
- memcpy(io->src, address, sizeof(io->src));
-
- return TRUE;
-}
-
-const char *bt_io_get_source(BtIO *io)
-{
- return io->src;
-}
-
-gboolean bt_io_set_destination(BtIO *io, const char *address)
-{
- if (strlen(address) != sizeof(io->dst))
- return FALSE;
-
- memcpy(io->dst, address, sizeof(io->dst));
-
- return TRUE;
-}
-
-const char *bt_io_get_destination(BtIO *io)
-{
- return io->dst;
-}
-
-gboolean bt_io_set_flags(BtIO *io, guint32 flags)
-{
- io->flags = flags;
-
- return TRUE;
-}
-
-guint32 bt_io_get_flags(BtIO *io)
-{
- return io->flags;
-}
-
-gboolean bt_io_set_channel(BtIO *io, guint8 channel)
-{
- if (io->type != BT_IO_TRANS_RFCOMM)
- return FALSE;
-
- io->channel = channel;
-
- return TRUE;
-}
-
-guint8 bt_io_get_channel(BtIO *io)
-{
- return io->channel;
-}
-
-gboolean bt_io_set_psm(BtIO *io, guint16 psm)
-{
- if (io->type != BT_IO_TRANS_L2CAP)
- return FALSE;
-
- io->psm = psm;
-
- return TRUE;
-}
-
-guint16 bt_io_get_psm(BtIO *io)
-{
- return io->psm;
-}
-
-gboolean bt_io_set_mtu(BtIO *io, guint16 mtu)
-{
- io->mtu = mtu;
-
- return TRUE;
-}
-
-guint16 bt_io_get_mtu(BtIO *io)
-{
- return io->mtu;
-}
-
-static BtIOReturn bt_io_connect(BtIO *io, const char *uuid, BtIOFunc func)
-{
- if (!io->connect)
- return BT_IO_FAILED;
-
- return io->connect(io, func);
-}
-
-static BtIOReturn bt_io_listen(BtIO *io, const char *uuid, BtIOFunc func)
-{
- if (!io->listen)
- return BT_IO_FAILED;
-
- return io->listen(io, func);
-}
-
-BtIOReturn bt_io_shutdown(BtIO *io)
-{
- io_context_cleanup(io->io_ctxt);
-
- return BT_IO_SUCCESS;
-}
diff --git a/common/glib-helper.h b/common/glib-helper.h
index 087f1644..751f3a7d 100644
--- a/common/glib-helper.h
+++ b/common/glib-helper.h
@@ -23,8 +23,6 @@
int set_nonblocking(int fd);
-typedef void (*bt_io_callback_t) (GIOChannel *io, int err, const bdaddr_t *src,
- const bdaddr_t *dst, gpointer user_data);
typedef void (*bt_callback_t) (sdp_list_t *recs, int err, gpointer user_data);
typedef void (*bt_destroy_t) (gpointer user_data);
typedef void (*bt_hci_result_t) (uint8_t status, gpointer user_data);
@@ -44,58 +42,5 @@ int bt_string2uuid(uuid_t *uuid, const char *string);
gchar *bt_list2string(GSList *list);
GSList *bt_string2list(const gchar *str);
-GIOChannel *bt_rfcomm_listen(const bdaddr_t *src, uint8_t channel,
- uint32_t flags, bt_io_callback_t cb, void *user_data);
-GIOChannel *bt_rfcomm_listen_allocate(const bdaddr_t *src, uint8_t *channel,
- uint32_t flags, bt_io_callback_t cb, void *user_data);
-int bt_rfcomm_connect(const bdaddr_t *src, const bdaddr_t *dst,
- uint8_t channel, bt_io_callback_t cb, void *user_data);
-
-GIOChannel *bt_l2cap_listen(const bdaddr_t *src, uint16_t psm, uint16_t mtu,
- uint32_t flags, bt_io_callback_t cb, void *user_data);
-int bt_l2cap_connect(const bdaddr_t *src, const bdaddr_t *dst,
- uint16_t psm, uint16_t mtu, bt_io_callback_t cb,
- void *user_data);
-int bt_sco_connect(const bdaddr_t *src, const bdaddr_t *dst,
- bt_io_callback_t cb, void *user_data);
-GIOChannel *bt_sco_listen(const bdaddr_t *src, uint16_t mtu,
- bt_io_callback_t cb, void *user_data);
-
int bt_acl_encrypt(const bdaddr_t *src, const bdaddr_t *dst,
bt_hci_result_t cb, gpointer user_data);
-
-/* Experiemental bt_io API */
-
-typedef struct bt_io BtIO;
-
-typedef enum {
- BT_IO_TRANS_AUTO,
- BT_IO_TRANS_L2CAP,
- BT_IO_TRANS_RFCOMM,
- BT_IO_TRANS_SCO,
-} BtIOTransport;
-
-typedef enum {
- BT_IO_SUCCESS,
- BT_IO_FAILED,
-} BtIOReturn;
-
-typedef void (*BtIOFunc) (BtIO *io, BtIOReturn err, GIOChannel *chan,
- gpointer user_data);
-
-BtIO *bt_io_create(BtIOTransport type, gpointer user_data, GDestroyNotify notify);
-BtIO *bt_io_ref(BtIO *io);
-void bt_io_unref(BtIO *io);
-gboolean bt_io_set_source(BtIO *io, const char *address);
-const char *bt_io_get_source(BtIO *io);
-gboolean bt_io_set_destination(BtIO *io, const char *address);
-const char *bt_io_get_destination(BtIO *io);
-gboolean bt_io_set_flags(BtIO *io, guint32 flags);
-guint32 bt_io_get_flags(BtIO *io);
-gboolean bt_io_set_channel(BtIO *io, guint8 channel);
-guint8 bt_io_get_channel(BtIO *io);
-gboolean bt_io_set_psm(BtIO *io, guint16 psm);
-guint16 bt_io_get_psm(BtIO *io);
-gboolean bt_io_set_mtu(BtIO *io, guint16 mtu);
-guint16 bt_io_get_mtu(BtIO *io);
-BtIOReturn bt_io_shutdown(BtIO *io);