@@ -208,6 +208,12 @@ shutdown(how) -- shut down traffic in one or both directions\n\
208208# include <sys/ioctl.h>
209209#endif
210210
211+ #ifdef HAVE_BLUETOOTH_H
212+ # include <netbt/l2cap.h>
213+ # include <netbt/rfcomm.h>
214+ # include <netbt/hci.h>
215+ # include <netbt/sco.h>
216+ #endif
211217
212218#if defined(__sgi ) && _COMPILER_VERSION > 700 && !_SGIAPI
213219/* make sure that the reentrant (gethostbyaddr_r etc)
@@ -474,6 +480,7 @@ remove_unusable_flags(PyObject *m)
474480# define BTPROTO_SCO BLUETOOTH_PROTO_SCO
475481# define SOL_HCI SOL_HCI_RAW
476482# define HCI_FILTER SO_HCI_RAW_FILTER
483+ # define HCI_DATA_DIR SO_HCI_RAW_DIRECTION
477484# define sockaddr_l2 sockaddr_l2cap
478485# define sockaddr_rc sockaddr_rfcomm
479486# define hci_dev hci_node
@@ -491,7 +498,10 @@ remove_unusable_flags(PyObject *m)
491498# define bt_sco bt
492499# define bt_hci bt
493500# define bt_cid bt_channel
501+ # define SOL_L2CAP BTPROTO_L2CAP
502+ # define SOL_RFCOMM BTPROTO_RFCOMM
494503# define SOL_HCI BTPROTO_HCI
504+ # define SOL_SCO BTPROTO_SCO
495505# define HCI_DATA_DIR SO_HCI_DIRECTION
496506# define _BT_L2_MEMB (sa , memb ) ((sa)->bt_##memb)
497507# define _BT_RC_MEMB (sa , memb ) ((sa)->bt_##memb)
@@ -7879,38 +7889,157 @@ socket_exec(PyObject *m)
78797889 ADD_INT_MACRO (m , AF_BLUETOOTH );
78807890#ifdef BTPROTO_L2CAP
78817891 ADD_INT_MACRO (m , BTPROTO_L2CAP );
7892+ ADD_INT_MACRO (m , SOL_L2CAP );
78827893#if defined(BDADDR_BREDR )
78837894 ADD_INT_MACRO (m , BDADDR_BREDR );
78847895 ADD_INT_MACRO (m , BDADDR_LE_PUBLIC );
78857896 ADD_INT_MACRO (m , BDADDR_LE_RANDOM );
78867897#endif
7898+ #ifdef SO_L2CAP_IMTU
7899+ ADD_INT_MACRO (m , SO_L2CAP_IMTU );
7900+ ADD_INT_MACRO (m , SO_L2CAP_OMTU );
7901+ ADD_INT_MACRO (m , SO_L2CAP_FLUSH );
7902+ #endif
7903+ #ifdef SO_L2CAP_IQOS
7904+ ADD_INT_MACRO (m , SO_L2CAP_IQOS );
7905+ ADD_INT_MACRO (m , SO_L2CAP_OQOS );
7906+ #endif
7907+ #ifdef SO_L2CAP_ENCRYPTED
7908+ ADD_INT_MACRO (m , SO_L2CAP_ENCRYPTED );
7909+ #endif
7910+ #ifdef L2CAP_LM
7911+ ADD_INT_MACRO (m , L2CAP_LM );
7912+ ADD_INT_MACRO (m , L2CAP_LM_MASTER );
7913+ ADD_INT_MACRO (m , L2CAP_LM_AUTH );
7914+ ADD_INT_MACRO (m , L2CAP_LM_ENCRYPT );
7915+ ADD_INT_MACRO (m , L2CAP_LM_TRUSTED );
7916+ ADD_INT_MACRO (m , L2CAP_LM_RELIABLE );
7917+ ADD_INT_MACRO (m , L2CAP_LM_SECURE );
7918+ #endif
7919+ #ifdef SO_L2CAP_LM
7920+ ADD_INT_MACRO (m , SO_L2CAP_LM );
7921+ ADD_INT_MACRO (m , L2CAP_LM_AUTH );
7922+ ADD_INT_MACRO (m , L2CAP_LM_ENCRYPT );
7923+ ADD_INT_MACRO (m , L2CAP_LM_SECURE );
7924+ #endif
78877925#endif /* BTPROTO_L2CAP */
78887926#ifdef BTPROTO_HCI
78897927 ADD_INT_MACRO (m , BTPROTO_HCI );
78907928 ADD_INT_MACRO (m , SOL_HCI );
7891- #if defined(HCI_CHANNEL_RAW )
7929+ #ifdef HAVE_BLUETOOTH_BLUETOOTH_H
7930+ ADD_INT_MACRO (m , HCI_DEV_NONE );
78927931 ADD_INT_MACRO (m , HCI_CHANNEL_RAW );
78937932 ADD_INT_MACRO (m , HCI_CHANNEL_USER );
78947933 ADD_INT_MACRO (m , HCI_CHANNEL_MONITOR );
78957934 ADD_INT_MACRO (m , HCI_CHANNEL_CONTROL );
78967935 ADD_INT_MACRO (m , HCI_CHANNEL_LOGGING );
78977936#endif
7898- #if defined( HCI_FILTER )
7937+ #ifdef HCI_FILTER
78997938 ADD_INT_MACRO (m , HCI_FILTER );
79007939#endif
7901- #if defined(HCI_TIME_STAMP )
7902- ADD_INT_MACRO (m , HCI_TIME_STAMP );
7940+ #ifdef HCI_DATA_DIR
79037941 ADD_INT_MACRO (m , HCI_DATA_DIR );
79047942#endif
7943+ #ifdef HCI_TIME_STAMP
7944+ ADD_INT_MACRO (m , HCI_TIME_STAMP );
7945+ #endif
7946+ #ifdef SO_HCI_EVT_FILTER
7947+ ADD_INT_MACRO (m , SO_HCI_EVT_FILTER );
7948+ ADD_INT_MACRO (m , SO_HCI_PKT_FILTER );
7949+ #endif
79057950#endif /* BTPROTO_HCI */
79067951#ifdef BTPROTO_RFCOMM
79077952 ADD_INT_MACRO (m , BTPROTO_RFCOMM );
7953+ ADD_INT_MACRO (m , SOL_RFCOMM );
7954+ #ifdef SO_RFCOMM_MTU
7955+ ADD_INT_MACRO (m , SO_RFCOMM_MTU );
7956+ ADD_INT_MACRO (m , SO_RFCOMM_FC_INFO );
7957+ #endif
7958+ #ifdef SO_RFCOMM_LM
7959+ ADD_INT_MACRO (m , SO_RFCOMM_LM );
7960+ ADD_INT_MACRO (m , RFCOMM_LM_AUTH );
7961+ ADD_INT_MACRO (m , RFCOMM_LM_ENCRYPT );
7962+ ADD_INT_MACRO (m , RFCOMM_LM_SECURE );
7963+ #endif
7964+ #ifdef MS_WINDOWS_DESKTOP
7965+ ADD_INT_MACRO (m , SO_BTH_ENCRYPT );
7966+ ADD_INT_MACRO (m , SO_BTH_MTU );
7967+ ADD_INT_MACRO (m , SO_BTH_MTU_MAX );
7968+ ADD_INT_MACRO (m , SO_BTH_MTU_MIN );
7969+ #endif
79087970#endif /* BTPROTO_RFCOMM */
79097971 ADD_STR_CONST (m , "BDADDR_ANY" , "00:00:00:00:00:00" );
79107972 ADD_STR_CONST (m , "BDADDR_LOCAL" , "00:00:00:FF:FF:FF" );
79117973#ifdef BTPROTO_SCO
79127974 ADD_INT_MACRO (m , BTPROTO_SCO );
7975+ ADD_INT_MACRO (m , SOL_SCO );
7976+ #ifdef SO_SCO_MTU
7977+ ADD_INT_MACRO (m , SO_SCO_MTU );
7978+ #endif
7979+ #ifdef SO_SCO_CONNINFO
7980+ ADD_INT_MACRO (m , SO_SCO_CONNINFO );
7981+ #endif
7982+ #ifdef SO_SCO_HANDLE
7983+ ADD_INT_MACRO (m , SO_SCO_HANDLE );
7984+ #endif
79137985#endif /* BTPROTO_SCO */
7986+ #ifdef HAVE_BLUETOOTH_BLUETOOTH_H
7987+ ADD_INT_MACRO (m , SOL_BLUETOOTH );
7988+ ADD_INT_MACRO (m , BT_SECURITY );
7989+ ADD_INT_MACRO (m , BT_SECURITY_SDP );
7990+ ADD_INT_MACRO (m , BT_SECURITY_LOW );
7991+ ADD_INT_MACRO (m , BT_SECURITY_MEDIUM );
7992+ ADD_INT_MACRO (m , BT_SECURITY_HIGH );
7993+ #ifdef BT_SECURITY_FIPS
7994+ ADD_INT_MACRO (m , BT_SECURITY_FIPS );
7995+ #endif
7996+ #ifdef BT_DEFER_SETUP
7997+ ADD_INT_MACRO (m , BT_DEFER_SETUP );
7998+ #endif
7999+ ADD_INT_MACRO (m , BT_FLUSHABLE );
8000+ ADD_INT_MACRO (m , BT_FLUSHABLE_OFF );
8001+ ADD_INT_MACRO (m , BT_FLUSHABLE_ON );
8002+ ADD_INT_MACRO (m , BT_POWER );
8003+ ADD_INT_MACRO (m , BT_POWER_FORCE_ACTIVE_OFF );
8004+ ADD_INT_MACRO (m , BT_POWER_FORCE_ACTIVE_ON );
8005+ ADD_INT_MACRO (m , BT_CHANNEL_POLICY );
8006+ ADD_INT_MACRO (m , BT_CHANNEL_POLICY_BREDR_ONLY );
8007+ ADD_INT_MACRO (m , BT_CHANNEL_POLICY_BREDR_PREFERRED );
8008+ ADD_INT_MACRO (m , BT_CHANNEL_POLICY_BREDR_PREFERRED );
8009+ ADD_INT_MACRO (m , BT_VOICE );
8010+ ADD_INT_MACRO (m , BT_VOICE_TRANSPARENT );
8011+ ADD_INT_MACRO (m , BT_VOICE_CVSD_16BIT );
8012+ #ifdef BT_VOICE_TRANSPARENT_16BIT
8013+ ADD_INT_MACRO (m , BT_VOICE_TRANSPARENT_16BIT );
8014+ #endif
8015+ ADD_INT_MACRO (m , BT_SNDMTU );
8016+ ADD_INT_MACRO (m , BT_RCVMTU );
8017+ ADD_INT_MACRO (m , BT_PHY );
8018+ ADD_INT_MACRO (m , BT_PHY_BR_1M_1SLOT );
8019+ ADD_INT_MACRO (m , BT_PHY_BR_1M_3SLOT );
8020+ ADD_INT_MACRO (m , BT_PHY_BR_1M_5SLOT );
8021+ ADD_INT_MACRO (m , BT_PHY_EDR_2M_1SLOT );
8022+ ADD_INT_MACRO (m , BT_PHY_EDR_2M_3SLOT );
8023+ ADD_INT_MACRO (m , BT_PHY_EDR_2M_5SLOT );
8024+ ADD_INT_MACRO (m , BT_PHY_EDR_3M_1SLOT );
8025+ ADD_INT_MACRO (m , BT_PHY_EDR_3M_3SLOT );
8026+ ADD_INT_MACRO (m , BT_PHY_EDR_3M_5SLOT );
8027+ ADD_INT_MACRO (m , BT_PHY_LE_1M_TX );
8028+ ADD_INT_MACRO (m , BT_PHY_LE_1M_RX );
8029+ ADD_INT_MACRO (m , BT_PHY_LE_2M_TX );
8030+ ADD_INT_MACRO (m , BT_PHY_LE_2M_RX );
8031+ ADD_INT_MACRO (m , BT_PHY_LE_CODED_TX );
8032+ ADD_INT_MACRO (m , BT_PHY_LE_CODED_RX );
8033+ ADD_INT_MACRO (m , BT_MODE );
8034+ ADD_INT_MACRO (m , BT_MODE_BASIC );
8035+ ADD_INT_MACRO (m , BT_MODE_ERTM );
8036+ ADD_INT_MACRO (m , BT_MODE_STREAMING );
8037+ ADD_INT_MACRO (m , BT_MODE_LE_FLOWCTL );
8038+ ADD_INT_MACRO (m , BT_MODE_EXT_FLOWCTL );
8039+ ADD_INT_MACRO (m , BT_PKT_STATUS );
8040+ ADD_INT_MACRO (m , BT_ISO_QOS );
8041+ ADD_INT_MACRO (m , BT_CODEC );
8042+ #endif /* HAVE_BLUETOOTH_BLUETOOTH_H */
79148043#endif /* USE_BLUETOOTH */
79158044
79168045#ifdef AF_CAN
0 commit comments