gh-132734: Add new constants for Bluetooth sockets (GH-132735)

This commit is contained in:
Serhiy Storchaka 2025-04-22 14:02:13 +03:00 committed by GitHub
parent 05d0559db0
commit e84624450d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 271 additions and 8 deletions

View file

@ -208,6 +208,12 @@ shutdown(how) -- shut down traffic in one or both directions\n\
# include <sys/ioctl.h>
#endif
#ifdef HAVE_BLUETOOTH_H
# include <netbt/l2cap.h>
# include <netbt/rfcomm.h>
# include <netbt/hci.h>
# include <netbt/sco.h>
#endif
#if defined(__sgi) && _COMPILER_VERSION>700 && !_SGIAPI
/* make sure that the reentrant (gethostbyaddr_r etc)
@ -474,6 +480,7 @@ remove_unusable_flags(PyObject *m)
# define BTPROTO_SCO BLUETOOTH_PROTO_SCO
# define SOL_HCI SOL_HCI_RAW
# define HCI_FILTER SO_HCI_RAW_FILTER
# define HCI_DATA_DIR SO_HCI_RAW_DIRECTION
# define sockaddr_l2 sockaddr_l2cap
# define sockaddr_rc sockaddr_rfcomm
# define hci_dev hci_node
@ -491,7 +498,10 @@ remove_unusable_flags(PyObject *m)
# define bt_sco bt
# define bt_hci bt
# define bt_cid bt_channel
# define SOL_L2CAP BTPROTO_L2CAP
# define SOL_RFCOMM BTPROTO_RFCOMM
# define SOL_HCI BTPROTO_HCI
# define SOL_SCO BTPROTO_SCO
# define HCI_DATA_DIR SO_HCI_DIRECTION
# define _BT_L2_MEMB(sa, memb) ((sa)->bt_##memb)
# define _BT_RC_MEMB(sa, memb) ((sa)->bt_##memb)
@ -7879,38 +7889,157 @@ socket_exec(PyObject *m)
ADD_INT_MACRO(m, AF_BLUETOOTH);
#ifdef BTPROTO_L2CAP
ADD_INT_MACRO(m, BTPROTO_L2CAP);
ADD_INT_MACRO(m, SOL_L2CAP);
#if defined(BDADDR_BREDR)
ADD_INT_MACRO(m, BDADDR_BREDR);
ADD_INT_MACRO(m, BDADDR_LE_PUBLIC);
ADD_INT_MACRO(m, BDADDR_LE_RANDOM);
#endif
#ifdef SO_L2CAP_IMTU
ADD_INT_MACRO(m, SO_L2CAP_IMTU);
ADD_INT_MACRO(m, SO_L2CAP_OMTU);
ADD_INT_MACRO(m, SO_L2CAP_FLUSH);
#endif
#ifdef SO_L2CAP_IQOS
ADD_INT_MACRO(m, SO_L2CAP_IQOS);
ADD_INT_MACRO(m, SO_L2CAP_OQOS);
#endif
#ifdef SO_L2CAP_ENCRYPTED
ADD_INT_MACRO(m, SO_L2CAP_ENCRYPTED);
#endif
#ifdef L2CAP_LM
ADD_INT_MACRO(m, L2CAP_LM);
ADD_INT_MACRO(m, L2CAP_LM_MASTER);
ADD_INT_MACRO(m, L2CAP_LM_AUTH);
ADD_INT_MACRO(m, L2CAP_LM_ENCRYPT);
ADD_INT_MACRO(m, L2CAP_LM_TRUSTED);
ADD_INT_MACRO(m, L2CAP_LM_RELIABLE);
ADD_INT_MACRO(m, L2CAP_LM_SECURE);
#endif
#ifdef SO_L2CAP_LM
ADD_INT_MACRO(m, SO_L2CAP_LM);
ADD_INT_MACRO(m, L2CAP_LM_AUTH);
ADD_INT_MACRO(m, L2CAP_LM_ENCRYPT);
ADD_INT_MACRO(m, L2CAP_LM_SECURE);
#endif
#endif /* BTPROTO_L2CAP */
#ifdef BTPROTO_HCI
ADD_INT_MACRO(m, BTPROTO_HCI);
ADD_INT_MACRO(m, SOL_HCI);
#if defined(HCI_CHANNEL_RAW)
#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
ADD_INT_MACRO(m, HCI_DEV_NONE);
ADD_INT_MACRO(m, HCI_CHANNEL_RAW);
ADD_INT_MACRO(m, HCI_CHANNEL_USER);
ADD_INT_MACRO(m, HCI_CHANNEL_MONITOR);
ADD_INT_MACRO(m, HCI_CHANNEL_CONTROL);
ADD_INT_MACRO(m, HCI_CHANNEL_LOGGING);
#endif
#if defined(HCI_FILTER)
#ifdef HCI_FILTER
ADD_INT_MACRO(m, HCI_FILTER);
#endif
#if defined(HCI_TIME_STAMP)
ADD_INT_MACRO(m, HCI_TIME_STAMP);
#ifdef HCI_DATA_DIR
ADD_INT_MACRO(m, HCI_DATA_DIR);
#endif
#ifdef HCI_TIME_STAMP
ADD_INT_MACRO(m, HCI_TIME_STAMP);
#endif
#ifdef SO_HCI_EVT_FILTER
ADD_INT_MACRO(m, SO_HCI_EVT_FILTER);
ADD_INT_MACRO(m, SO_HCI_PKT_FILTER);
#endif
#endif /* BTPROTO_HCI */
#ifdef BTPROTO_RFCOMM
ADD_INT_MACRO(m, BTPROTO_RFCOMM);
ADD_INT_MACRO(m, SOL_RFCOMM);
#ifdef SO_RFCOMM_MTU
ADD_INT_MACRO(m, SO_RFCOMM_MTU);
ADD_INT_MACRO(m, SO_RFCOMM_FC_INFO);
#endif
#ifdef SO_RFCOMM_LM
ADD_INT_MACRO(m, SO_RFCOMM_LM);
ADD_INT_MACRO(m, RFCOMM_LM_AUTH);
ADD_INT_MACRO(m, RFCOMM_LM_ENCRYPT);
ADD_INT_MACRO(m, RFCOMM_LM_SECURE);
#endif
#ifdef MS_WINDOWS_DESKTOP
ADD_INT_MACRO(m, SO_BTH_ENCRYPT);
ADD_INT_MACRO(m, SO_BTH_MTU);
ADD_INT_MACRO(m, SO_BTH_MTU_MAX);
ADD_INT_MACRO(m, SO_BTH_MTU_MIN);
#endif
#endif /* BTPROTO_RFCOMM */
ADD_STR_CONST(m, "BDADDR_ANY", "00:00:00:00:00:00");
ADD_STR_CONST(m, "BDADDR_LOCAL", "00:00:00:FF:FF:FF");
#ifdef BTPROTO_SCO
ADD_INT_MACRO(m, BTPROTO_SCO);
ADD_INT_MACRO(m, SOL_SCO);
#ifdef SO_SCO_MTU
ADD_INT_MACRO(m, SO_SCO_MTU);
#endif
#ifdef SO_SCO_CONNINFO
ADD_INT_MACRO(m, SO_SCO_CONNINFO);
#endif
#ifdef SO_SCO_HANDLE
ADD_INT_MACRO(m, SO_SCO_HANDLE);
#endif
#endif /* BTPROTO_SCO */
#ifdef HAVE_BLUETOOTH_BLUETOOTH_H
ADD_INT_MACRO(m, SOL_BLUETOOTH);
ADD_INT_MACRO(m, BT_SECURITY);
ADD_INT_MACRO(m, BT_SECURITY_SDP);
ADD_INT_MACRO(m, BT_SECURITY_LOW);
ADD_INT_MACRO(m, BT_SECURITY_MEDIUM);
ADD_INT_MACRO(m, BT_SECURITY_HIGH);
#ifdef BT_SECURITY_FIPS
ADD_INT_MACRO(m, BT_SECURITY_FIPS);
#endif
#ifdef BT_DEFER_SETUP
ADD_INT_MACRO(m, BT_DEFER_SETUP);
#endif
ADD_INT_MACRO(m, BT_FLUSHABLE);
ADD_INT_MACRO(m, BT_FLUSHABLE_OFF);
ADD_INT_MACRO(m, BT_FLUSHABLE_ON);
ADD_INT_MACRO(m, BT_POWER);
ADD_INT_MACRO(m, BT_POWER_FORCE_ACTIVE_OFF);
ADD_INT_MACRO(m, BT_POWER_FORCE_ACTIVE_ON);
ADD_INT_MACRO(m, BT_CHANNEL_POLICY);
ADD_INT_MACRO(m, BT_CHANNEL_POLICY_BREDR_ONLY);
ADD_INT_MACRO(m, BT_CHANNEL_POLICY_BREDR_PREFERRED);
ADD_INT_MACRO(m, BT_CHANNEL_POLICY_BREDR_PREFERRED);
ADD_INT_MACRO(m, BT_VOICE);
ADD_INT_MACRO(m, BT_VOICE_TRANSPARENT);
ADD_INT_MACRO(m, BT_VOICE_CVSD_16BIT);
#ifdef BT_VOICE_TRANSPARENT_16BIT
ADD_INT_MACRO(m, BT_VOICE_TRANSPARENT_16BIT);
#endif
ADD_INT_MACRO(m, BT_SNDMTU);
ADD_INT_MACRO(m, BT_RCVMTU);
ADD_INT_MACRO(m, BT_PHY);
ADD_INT_MACRO(m, BT_PHY_BR_1M_1SLOT);
ADD_INT_MACRO(m, BT_PHY_BR_1M_3SLOT);
ADD_INT_MACRO(m, BT_PHY_BR_1M_5SLOT);
ADD_INT_MACRO(m, BT_PHY_EDR_2M_1SLOT);
ADD_INT_MACRO(m, BT_PHY_EDR_2M_3SLOT);
ADD_INT_MACRO(m, BT_PHY_EDR_2M_5SLOT);
ADD_INT_MACRO(m, BT_PHY_EDR_3M_1SLOT);
ADD_INT_MACRO(m, BT_PHY_EDR_3M_3SLOT);
ADD_INT_MACRO(m, BT_PHY_EDR_3M_5SLOT);
ADD_INT_MACRO(m, BT_PHY_LE_1M_TX);
ADD_INT_MACRO(m, BT_PHY_LE_1M_RX);
ADD_INT_MACRO(m, BT_PHY_LE_2M_TX);
ADD_INT_MACRO(m, BT_PHY_LE_2M_RX);
ADD_INT_MACRO(m, BT_PHY_LE_CODED_TX);
ADD_INT_MACRO(m, BT_PHY_LE_CODED_RX);
ADD_INT_MACRO(m, BT_MODE);
ADD_INT_MACRO(m, BT_MODE_BASIC);
ADD_INT_MACRO(m, BT_MODE_ERTM);
ADD_INT_MACRO(m, BT_MODE_STREAMING);
ADD_INT_MACRO(m, BT_MODE_LE_FLOWCTL);
ADD_INT_MACRO(m, BT_MODE_EXT_FLOWCTL);
ADD_INT_MACRO(m, BT_PKT_STATUS);
ADD_INT_MACRO(m, BT_ISO_QOS);
ADD_INT_MACRO(m, BT_CODEC);
#endif /* HAVE_BLUETOOTH_BLUETOOTH_H */
#endif /* USE_BLUETOOTH */
#ifdef AF_CAN