diff --git a/obexd/src/bluetooth.c b/obexd/src/bluetooth.c
index fc3985c..d6f7d82 100644
--- a/obexd/src/bluetooth.c
+++ b/obexd/src/bluetooth.c
#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)
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/obexd/src/main.c b/obexd/src/main.c
index d8da5bd..cb38b98 100644
--- a/obexd/src/main.c
+++ b/obexd/src/main.c
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)
{
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/obexd/src/obex.c b/obexd/src/obex.c
index 3a0f3c2..9acf246 100644
--- a/obexd/src/obex.c
+++ b/obexd/src/obex.c
#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
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/obexd/src/obex.h b/obexd/src/obex.h
index a1b41bb..d903095 100644
--- a/obexd/src/obex.h
+++ b/obexd/src/obex.h
gboolean secure;
GIOChannel *io;
guint watch;
+ guint16 tx_mtu;
+ guint16 rx_mtu;
};
struct obex_session {