@@ -208,6 +208,12 @@ shutdown(how) -- shut down traffic in one or both directions\n\
208
208
# include <sys/ioctl.h>
209
209
#endif
210
210
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
211
217
212
218
#if defined(__sgi ) && _COMPILER_VERSION > 700 && !_SGIAPI
213
219
/* make sure that the reentrant (gethostbyaddr_r etc)
@@ -474,6 +480,7 @@ remove_unusable_flags(PyObject *m)
474
480
# define BTPROTO_SCO BLUETOOTH_PROTO_SCO
475
481
# define SOL_HCI SOL_HCI_RAW
476
482
# define HCI_FILTER SO_HCI_RAW_FILTER
483
+ # define HCI_DATA_DIR SO_HCI_RAW_DIRECTION
477
484
# define sockaddr_l2 sockaddr_l2cap
478
485
# define sockaddr_rc sockaddr_rfcomm
479
486
# define hci_dev hci_node
@@ -491,7 +498,10 @@ remove_unusable_flags(PyObject *m)
491
498
# define bt_sco bt
492
499
# define bt_hci bt
493
500
# define bt_cid bt_channel
501
+ # define SOL_L2CAP BTPROTO_L2CAP
502
+ # define SOL_RFCOMM BTPROTO_RFCOMM
494
503
# define SOL_HCI BTPROTO_HCI
504
+ # define SOL_SCO BTPROTO_SCO
495
505
# define HCI_DATA_DIR SO_HCI_DIRECTION
496
506
# define _BT_L2_MEMB (sa , memb ) ((sa)->bt_##memb)
497
507
# define _BT_RC_MEMB (sa , memb ) ((sa)->bt_##memb)
@@ -7879,38 +7889,157 @@ socket_exec(PyObject *m)
7879
7889
ADD_INT_MACRO (m , AF_BLUETOOTH );
7880
7890
#ifdef BTPROTO_L2CAP
7881
7891
ADD_INT_MACRO (m , BTPROTO_L2CAP );
7892
+ ADD_INT_MACRO (m , SOL_L2CAP );
7882
7893
#if defined(BDADDR_BREDR )
7883
7894
ADD_INT_MACRO (m , BDADDR_BREDR );
7884
7895
ADD_INT_MACRO (m , BDADDR_LE_PUBLIC );
7885
7896
ADD_INT_MACRO (m , BDADDR_LE_RANDOM );
7886
7897
#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
7887
7925
#endif /* BTPROTO_L2CAP */
7888
7926
#ifdef BTPROTO_HCI
7889
7927
ADD_INT_MACRO (m , BTPROTO_HCI );
7890
7928
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 );
7892
7931
ADD_INT_MACRO (m , HCI_CHANNEL_RAW );
7893
7932
ADD_INT_MACRO (m , HCI_CHANNEL_USER );
7894
7933
ADD_INT_MACRO (m , HCI_CHANNEL_MONITOR );
7895
7934
ADD_INT_MACRO (m , HCI_CHANNEL_CONTROL );
7896
7935
ADD_INT_MACRO (m , HCI_CHANNEL_LOGGING );
7897
7936
#endif
7898
- #if defined( HCI_FILTER )
7937
+ #ifdef HCI_FILTER
7899
7938
ADD_INT_MACRO (m , HCI_FILTER );
7900
7939
#endif
7901
- #if defined(HCI_TIME_STAMP )
7902
- ADD_INT_MACRO (m , HCI_TIME_STAMP );
7940
+ #ifdef HCI_DATA_DIR
7903
7941
ADD_INT_MACRO (m , HCI_DATA_DIR );
7904
7942
#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
7905
7950
#endif /* BTPROTO_HCI */
7906
7951
#ifdef BTPROTO_RFCOMM
7907
7952
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
7908
7970
#endif /* BTPROTO_RFCOMM */
7909
7971
ADD_STR_CONST (m , "BDADDR_ANY" , "00:00:00:00:00:00" );
7910
7972
ADD_STR_CONST (m , "BDADDR_LOCAL" , "00:00:00:FF:FF:FF" );
7911
7973
#ifdef BTPROTO_SCO
7912
7974
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
7913
7985
#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 */
7914
8043
#endif /* USE_BLUETOOTH */
7915
8044
7916
8045
#ifdef AF_CAN
0 commit comments