summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohan Hedberg <johan.hedberg@nokia.com>2008-11-19 15:40:29 +0200
committerJohan Hedberg <johan.hedberg@nokia.com>2008-11-19 15:40:29 +0200
commitd7f6a828761b82721415ea2a21defc989ef9fe70 (patch)
tree6aa19744f9405dfecb280fbcf29952f489c3fe86
parentfda7b2d10e986597073c21113ce38bcb878595d0 (diff)
downloadobexd-d7f6a828761b82721415ea2a21defc989ef9fe70.tar.gz
Allow server/transport specific MTU's
-rw-r--r--src/bluetooth.c5
-rw-r--r--src/main.c5
-rw-r--r--src/obex.c8
-rw-r--r--src/obex.h2
4 files changed, 16 insertions, 4 deletions
diff --git a/src/bluetooth.c b/src/bluetooth.c
index fc3985c..d6f7d82 100644
--- a/src/bluetooth.c
+++ b/src/bluetooth.c
@@ -46,6 +46,9 @@
#include "obex.h"
#include "dbus.h"
+#define BT_RX_MTU 32767
+#define BT_TX_MTU 32767
+
static GSList *servers = NULL;
static gboolean connect_event(GIOChannel *io, GIOCondition cond, gpointer user_data)
@@ -183,6 +186,8 @@ static gint server_register(guint16 service, const gchar *name, guint8 channel,
server->channel = channel;
server->handle = handle;
server->secure = secure;
+ server->rx_mtu = BT_RX_MTU;
+ server->tx_mtu = BT_TX_MTU;
err = server_start(server);
if (err < 0) {
diff --git a/src/main.c b/src/main.c
index d8da5bd..cb38b98 100644
--- a/src/main.c
+++ b/src/main.c
@@ -64,6 +64,9 @@ static int services = 0;
static gboolean tty_needs_reinit = FALSE;
static int signal_pipe[2];
+#define TTY_RX_MTU 65535
+#define TTY_TX_MTU 65535
+
int tty_init(int services, const gchar *root_path,
const gchar *capability, const gchar *devnode)
{
@@ -91,6 +94,8 @@ int tty_init(int services, const gchar *root_path,
server->auto_accept = TRUE;
server->capability = g_strdup(capability);
server->devnode = g_strdup(devnode);
+ server->rx_mtu = TTY_RX_MTU;
+ server->tx_mtu = TTY_TX_MTU;
ret = obex_session_start(fd, server);
if (ret < 0) {
diff --git a/src/obex.c b/src/obex.c
index 3a0f3c2..9acf246 100644
--- a/src/obex.c
+++ b/src/obex.c
@@ -49,8 +49,8 @@
#include "dbus.h"
/* Default MTU's */
-#define RX_MTU 32767
-#define TX_MTU 32767
+#define DEFAULT_RX_MTU 32767
+#define DEFAULT_TX_MTU 32767
#define TARGET_SIZE 16
@@ -970,8 +970,8 @@ gint obex_session_start(gint fd, struct server *server)
os->current_folder = g_strdup(server->folder);
os->server = server;
- os->rx_mtu = RX_MTU;
- os->tx_mtu = TX_MTU;
+ os->rx_mtu = server->rx_mtu ? server->rx_mtu : DEFAULT_RX_MTU;
+ os->tx_mtu = server->tx_mtu ? server->tx_mtu : DEFAULT_TX_MTU;
os->fd = -1;
os->size = OBJECT_SIZE_DELETE;
diff --git a/src/obex.h b/src/obex.h
index a1b41bb..d903095 100644
--- a/src/obex.h
+++ b/src/obex.h
@@ -57,6 +57,8 @@ struct server {
gboolean secure;
GIOChannel *io;
guint watch;
+ guint16 tx_mtu;
+ guint16 rx_mtu;
};
struct obex_session {