Diff between 7673e8a6dd08a3367e49a70e66d7cd6106ad045b and 0f030347cc357097aa6e6926fb534b40264c8049

Changed Files

File Additions Deletions Status
obexd/src/bluetooth.c +5 -0 modified
obexd/src/main.c +5 -0 modified
obexd/src/obex.c +4 -4 modified
obexd/src/obex.h +2 -0 modified

Full Patch

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
@@ -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/obexd/src/main.c b/obexd/src/main.c
index d8da5bd..cb38b98 100644
--- a/obexd/src/main.c
+++ b/obexd/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/obexd/src/obex.c b/obexd/src/obex.c
index 3a0f3c2..9acf246 100644
--- a/obexd/src/obex.c
+++ b/obexd/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/obexd/src/obex.h b/obexd/src/obex.h
index a1b41bb..d903095 100644
--- a/obexd/src/obex.h
+++ b/obexd/src/obex.h
@@ -57,6 +57,8 @@ struct server {
 	gboolean	secure;
 	GIOChannel	*io;
 	guint		watch;
+	guint16		tx_mtu;
+	guint16		rx_mtu;
 };
 
 struct obex_session {