summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2012-02-13 13:37:47 +0200
committerJohan Hedberg <johan.hedberg@intel.com>2012-02-14 14:47:56 +0200
commita734c52c62cd39a0b1dd3ae7e723773eb0a7a29e (patch)
tree39a469e2c100704a94e6b5b6faaf01505ea392be /src
parent7e588df737ffb151d7b71a2c8b5c1738b503d812 (diff)
downloadobexd-a734c52c62cd39a0b1dd3ae7e723773eb0a7a29e.tar.gz
bluetooth: Add support for L2CAP transport
This uses driver port, if set (!= 0), as psm and export it in the service record.
Diffstat (limited to 'src')
-rw-r--r--src/obex-priv.h2
-rw-r--r--src/obex.c7
-rw-r--r--src/server.c5
-rw-r--r--src/server.h3
4 files changed, 11 insertions, 6 deletions
diff --git a/src/obex-priv.h b/src/obex-priv.h
index ee03bf4..5b72942 100644
--- a/src/obex-priv.h
+++ b/src/obex-priv.h
@@ -53,4 +53,4 @@ struct obex_session {
};
int obex_session_start(GIOChannel *io, uint16_t tx_mtu, uint16_t rx_mtu,
- struct obex_server *server);
+ gboolean stream, struct obex_server *server);
diff --git a/src/obex.c b/src/obex.c
index b14e0e0..05cc068 100644
--- a/src/obex.c
+++ b/src/obex.c
@@ -1119,10 +1119,11 @@ static void disconn_func(GObex *obex, GError *err, gpointer user_data)
}
int obex_session_start(GIOChannel *io, uint16_t tx_mtu, uint16_t rx_mtu,
- struct obex_server *server)
+ gboolean stream, struct obex_server *server)
{
struct obex_session *os;
GObex *obex;
+ GObexTransportType type;
static uint32_t id = 0;
DBG("");
@@ -1135,7 +1136,9 @@ int obex_session_start(GIOChannel *io, uint16_t tx_mtu, uint16_t rx_mtu,
os->server = server;
os->size = OBJECT_SIZE_DELETE;
- obex = g_obex_new(io, G_OBEX_TRANSPORT_STREAM, rx_mtu, tx_mtu);
+ type = stream ? G_OBEX_TRANSPORT_STREAM : G_OBEX_TRANSPORT_PACKET;
+
+ obex = g_obex_new(io, type, rx_mtu, tx_mtu);
if (!obex) {
obex_session_free(os);
return -EIO;
diff --git a/src/server.c b/src/server.c
index e5dc22d..52f7f1e 100644
--- a/src/server.c
+++ b/src/server.c
@@ -136,7 +136,8 @@ struct obex_service_driver *obex_server_find_driver(
}
int obex_server_new_connection(struct obex_server *server, GIOChannel *io,
- uint16_t tx_mtu, uint16_t rx_mtu)
+ uint16_t tx_mtu, uint16_t rx_mtu,
+ gboolean stream)
{
- return obex_session_start(io, tx_mtu, rx_mtu, server);
+ return obex_session_start(io, tx_mtu, rx_mtu, stream, server);
}
diff --git a/src/server.h b/src/server.h
index 81c0b5d..e211f1f 100644
--- a/src/server.h
+++ b/src/server.h
@@ -35,4 +35,5 @@ void obex_server_exit(void);
struct obex_service_driver *obex_server_find_driver(struct obex_server *server,
uint8_t channel);
int obex_server_new_connection(struct obex_server *server, GIOChannel *io,
- uint16_t tx_mtu, uint16_t rx_mtu);
+ uint16_t tx_mtu, uint16_t rx_mtu,
+ gboolean stream);