diff options
author | Johan Hedberg <johan.hedberg@nokia.com> | 2008-11-19 15:40:29 +0200 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@nokia.com> | 2008-11-19 15:40:29 +0200 |
commit | d7f6a828761b82721415ea2a21defc989ef9fe70 (patch) | |
tree | 6aa19744f9405dfecb280fbcf29952f489c3fe86 | |
parent | fda7b2d10e986597073c21113ce38bcb878595d0 (diff) | |
download | obexd-d7f6a828761b82721415ea2a21defc989ef9fe70.tar.gz |
Allow server/transport specific MTU's
-rw-r--r-- | src/bluetooth.c | 5 | ||||
-rw-r--r-- | src/main.c | 5 | ||||
-rw-r--r-- | src/obex.c | 8 | ||||
-rw-r--r-- | src/obex.h | 2 |
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) { @@ -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) { @@ -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; @@ -57,6 +57,8 @@ struct server { gboolean secure; GIOChannel *io; guint watch; + guint16 tx_mtu; + guint16 rx_mtu; }; struct obex_session { |