From fb022821661f5cc051061fe01818d58bad4cfd06 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Fri, 9 Apr 2004 15:37:46 +0000 Subject: Try to release the TTY if no device node is found --- rfcomm/main.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'rfcomm') diff --git a/rfcomm/main.c b/rfcomm/main.c index 52701d40..5d061fb7 100644 --- a/rfcomm/main.c +++ b/rfcomm/main.c @@ -323,14 +323,21 @@ static void cmd_connect(int ctl, int dev, bdaddr_t *bdaddr, int argc, char **arg } snprintf(devname, MAXPATHLEN - 1, "/dev/rfcomm%d", dev); - if ((fd = open(devname, O_RDONLY | O_NOCTTY)) < 0) { + while ((fd = open(devname, O_RDONLY | O_NOCTTY)) < 0) { snprintf(devname, MAXPATHLEN - 1, "/dev/bluetooth/rfcomm/%d", dev); - while ((fd = open(devname, O_RDONLY | O_NOCTTY)) < 0) { + if ((fd = open(devname, O_RDONLY | O_NOCTTY)) < 0) { if (try--) { + snprintf(devname, MAXPATHLEN - 1, "/dev/rfcomm%d", dev); sleep(1); continue; } perror("Can't open RFCOMM device"); + + memset(&req, 0, sizeof(req)); + req.dev_id = dev; + req.flags = (1 << RFCOMM_HANGUP_NOW); + ioctl(ctl, RFCOMMRELEASEDEV, &req); + close(sk); return; } -- cgit