From 41e30382f9a83f41da700465de274266c60248b4 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Thu, 15 Jan 2009 10:44:52 +0100 Subject: Differentiate between buffer and data size --- test/l2test.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'test') 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); } -- cgit