summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2005-05-19 17:06:50 +0000
committerMarcel Holtmann <marcel@holtmann.org>2005-05-19 17:06:50 +0000
commit72a919e9b1ae03645a63e27dfa6f4190ade6c924 (patch)
tree202cd3f0390a3935ed175e77693c04cf27388b2f
parent3d6b20f58304faafcb7e3804ac29d1d81379e79e (diff)
Detect hangup in connect mode
-rw-r--r--test/l2test.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/test/l2test.c b/test/l2test.c
index f3ff2bc4..8d337a9d 100644
--- a/test/l2test.c
+++ b/test/l2test.c
@@ -275,6 +275,9 @@ 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]);
+ if (data_size > opts.omtu)
+ data_size = opts.omtu;
+
return sk;
error:
@@ -625,12 +628,24 @@ static void reconnect_mode(char *svr)
static void connect_mode(char *svr)
{
+ struct pollfd p;
int sk;
if ((sk = do_connect(svr)) < 0)
exit(1);
- sleep(99999999);
+ p.fd = sk;
+ p.events = POLLERR | POLLHUP;
+
+ while (1) {
+ p.revents = 0;
+ if (poll(&p, 1, 100))
+ break;
+ }
+
+ syslog(LOG_INFO, "Disconnected");
+
+ close(sk);
}
static void multi_connect_mode(char *svr)