From 20c6b4ab406b9b3b2bf27098273b6175b910305c Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Thu, 17 May 2007 13:39:30 +0000 Subject: Error out on access denied --- rfcomm/main.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/rfcomm/main.c b/rfcomm/main.c index b66bcdce..8835967a 100644 --- a/rfcomm/main.c +++ b/rfcomm/main.c @@ -393,6 +393,18 @@ static void cmd_connect(int ctl, int dev, bdaddr_t *bdaddr, int argc, char **arg snprintf(devname, MAXPATHLEN - 1, "/dev/rfcomm%d", dev); while ((fd = open(devname, O_RDONLY | O_NOCTTY)) < 0) { + if (errno == EACCES) { + 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; + } + snprintf(devname, MAXPATHLEN - 1, "/dev/bluetooth/rfcomm/%d", dev); if ((fd = open(devname, O_RDONLY | O_NOCTTY)) < 0) { if (try--) { -- cgit