summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-01-15 10:44:52 +0100
committerMarcel Holtmann <marcel@holtmann.org>2009-01-15 10:44:52 +0100
commit41e30382f9a83f41da700465de274266c60248b4 (patch)
tree1df622fc3ddc2abecd3abdd17765dc9084c1e1cd /test
parentf213783e7d4068268187310251fedc546b9f212f (diff)
Differentiate between buffer and data size
Diffstat (limited to 'test')
-rw-r--r--test/l2test.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/test/l2test.c b/test/l2test.c
index 5c7955bc..5b6e2689 100644
--- a/test/l2test.c
+++ b/test/l2test.c
@@ -72,6 +72,7 @@ static int omtu = 0;
/* Default data size */
static long data_size = -1;
+static long buffer_size = 2048;
/* Default addr and psm */
static bdaddr_t bdaddr;
@@ -305,8 +306,8 @@ static int do_connect(char *svr)
opts.imtu, opts.omtu, opts.flush_to, opts.mode, conn.hci_handle,
conn.dev_class[2], conn.dev_class[1], conn.dev_class[0]);
- omtu = opts.omtu;
- imtu = opts.imtu;
+ omtu = (opts.omtu > buffer_size) ? buffer_size : opts.omtu;
+ imtu = (opts.imtu > buffer_size) ? buffer_size : opts.imtu;
return sk;
@@ -470,6 +471,9 @@ static void do_listen(void (*handler)(int sk))
ba, opts.imtu, opts.omtu, opts.flush_to, opts.mode, conn.hci_handle,
conn.dev_class[2], conn.dev_class[1], conn.dev_class[0]);
+ omtu = (opts.omtu > buffer_size) ? buffer_size : opts.omtu;
+ imtu = (opts.imtu > buffer_size) ? buffer_size : opts.imtu;
+
#if 0
/* Enable SO_TIMESTAMP */
if (timestamp) {
@@ -525,6 +529,9 @@ static void dump_mode(int sk)
socklen_t optlen;
int opt, len;
+ if (data_size < 0)
+ data_size = imtu;
+
if (defer_setup) {
len = read(sk, buf, sizeof(buf));
if (len < 0)
@@ -582,6 +589,9 @@ static void recv_mode(int sk)
socklen_t optlen;
int opt, len;
+ if (data_size < 0)
+ data_size = imtu;
+
if (defer_setup) {
len = read(sk, buf, sizeof(buf));
if (len < 0)
@@ -685,6 +695,9 @@ static void do_send(int sk)
syslog(LOG_INFO, "Sending ...");
+ if (data_size < 0)
+ data_size = omtu;
+
if (filename) {
fd = open(filename, O_RDONLY);
if (fd < 0) {
@@ -1142,9 +1155,11 @@ int main(int argc, char *argv[])
}
if (data_size < 0)
- data_size = (omtu > imtu) ? omtu : imtu;
+ buffer_size = (omtu > imtu) ? omtu : imtu;
+ else
+ buffer_size = data_size;
- if (!(buf = malloc(data_size))) {
+ if (!(buf = malloc(buffer_size))) {
perror("Can't allocate data buffer");
exit(1);
}