diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2005-05-19 17:06:50 +0000 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2005-05-19 17:06:50 +0000 |
commit | 72a919e9b1ae03645a63e27dfa6f4190ade6c924 (patch) | |
tree | 202cd3f0390a3935ed175e77693c04cf27388b2f /test | |
parent | 3d6b20f58304faafcb7e3804ac29d1d81379e79e (diff) |
Detect hangup in connect mode
Diffstat (limited to 'test')
-rw-r--r-- | test/l2test.c | 17 |
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) |