int dev_id = -1;
int i, sk, err = 0;
- sk = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
+ sk = socket(AF_BLUETOOTH, SOCK_RAW | SOCK_CLOEXEC, BTPROTO_HCI);
if (sk < 0)
return -1;
{
int dd, err, ret;
- dd = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
+ dd = socket(AF_BLUETOOTH, SOCK_RAW | SOCK_CLOEXEC, BTPROTO_HCI);
if (dd < 0)
return dd;
}
}
- dd = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
+ dd = socket(AF_BLUETOOTH, SOCK_RAW | SOCK_CLOEXEC, BTPROTO_HCI);
if (dd < 0)
return dd;
int dd, err;
/* Create HCI socket */
- dd = socket(AF_BLUETOOTH, SOCK_RAW, BTPROTO_HCI);
+ dd = socket(AF_BLUETOOTH, SOCK_RAW | SOCK_CLOEXEC, BTPROTO_HCI);
if (dd < 0)
return dd;
{
struct sockaddr_un sa;
- session->sock = socket(PF_UNIX, SOCK_STREAM, 0);
+ session->sock = socket(PF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
if (session->sock < 0)
return -1;
session->local = 1;
uint32_t flags = session->flags;
struct sockaddr_l2 sa;
int sk;
+ int sockflags = SOCK_SEQPACKET | SOCK_CLOEXEC;
- session->sock = socket(PF_BLUETOOTH, SOCK_SEQPACKET, BTPROTO_L2CAP);
+ if (flags & SDP_NON_BLOCKING)
+ sockflags |= SOCK_NONBLOCK;
+
+ session->sock = socket(PF_BLUETOOTH, sockflags, BTPROTO_L2CAP);
if (session->sock < 0)
return -1;
session->local = 0;
sk = session->sock;
- if (flags & SDP_NON_BLOCKING) {
- long arg = fcntl(sk, F_GETFL, 0);
- fcntl(sk, F_SETFL, arg | O_NONBLOCK);
- }
-
memset(&sa, 0, sizeof(sa));
sa.l2_family = AF_BLUETOOTH;