Direct-BT  2.3.1
Direct-BT - Direct Bluetooth Programming.
Macros
L2CAPComm.cpp File Reference
#include <cstring>
#include <string>
#include <memory>
#include <cstdint>
#include <vector>
#include <cstdio>
#include <algorithm>
#include <jau/debug.hpp>
#include "BTIoctl.hpp"
#include "HCIIoctl.hpp"
#include "L2CAPIoctl.hpp"
#include "HCIComm.hpp"
#include "L2CAPComm.hpp"
#include "BTAdapter.hpp"
#include <unistd.h>
#include <sys/socket.h>
#include <poll.h>
#include <signal.h>
Include dependency graph for L2CAPComm.cpp:

Go to the source code of this file.

Macros

#define SET_BT_SECURITY_POST_CONNECT   1
 Setting BT_SECURITY within open() after bind() and before connect() causes BlueZ/Kernel to immediately process SMP, leading to a potential deadlock. More...
 

Macro Definition Documentation

◆ SET_BT_SECURITY_POST_CONNECT

#define SET_BT_SECURITY_POST_CONNECT   1

Setting BT_SECURITY within open() after bind() and before connect() causes BlueZ/Kernel to immediately process SMP, leading to a potential deadlock.

Here we experience, setting security level before connect() will block the thread within connect(), potentially a mutex used in the SMP procedure.

Hence we set BT_SECURITY after connect() within open().

Definition at line 129 of file L2CAPComm.cpp.