summaryrefslogtreecommitdiffstats
path: root/Modules
diff options
context:
space:
mode:
authorCharles-François Natali <cf.natali@gmail.com>2013-02-05 18:42:01 (GMT)
committerCharles-François Natali <cf.natali@gmail.com>2013-02-05 18:42:01 (GMT)
commit773e42dff813bb18cb25016ae1fe1ed0886fd484 (patch)
treed0a6331ff5cdd70f2d3e73ac851e626c8ebdb968 /Modules
parentc44911f49aeb0cdb54f006f99111b562b29fc46f (diff)
downloadcpython-773e42dff813bb18cb25016ae1fe1ed0886fd484.zip
cpython-773e42dff813bb18cb25016ae1fe1ed0886fd484.tar.gz
cpython-773e42dff813bb18cb25016ae1fe1ed0886fd484.tar.bz2
Issue #15359: Add CAN_BCM protocol support to the socket module. Patch by Brian
Thorne.
Diffstat (limited to 'Modules')
-rw-r--r--Modules/socketmodule.c17
-rw-r--r--Modules/socketmodule.h4
2 files changed, 21 insertions, 0 deletions
diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c
index 94793c9..f405130 100644
--- a/Modules/socketmodule.c
+++ b/Modules/socketmodule.c
@@ -1598,6 +1598,8 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
case AF_CAN:
switch (s->sock_proto) {
case CAN_RAW:
+ /* fall-through */
+ case CAN_BCM:
{
struct sockaddr_can *addr;
PyObject *interfaceName;
@@ -6031,6 +6033,21 @@ PyInit__socket(void)
PyModule_AddIntConstant(m, "CAN_RAW_LOOPBACK", CAN_RAW_LOOPBACK);
PyModule_AddIntConstant(m, "CAN_RAW_RECV_OWN_MSGS", CAN_RAW_RECV_OWN_MSGS);
#endif
+#ifdef HAVE_LINUX_CAN_BCM_H
+ PyModule_AddIntConstant(m, "CAN_BCM", CAN_BCM);
+ PyModule_AddIntConstant(m, "CAN_BCM_TX_SETUP", TX_SETUP);
+ PyModule_AddIntConstant(m, "CAN_BCM_TX_DELETE", TX_DELETE);
+ PyModule_AddIntConstant(m, "CAN_BCM_TX_READ", TX_READ);
+ PyModule_AddIntConstant(m, "CAN_BCM_TX_SEND", TX_SEND);
+ PyModule_AddIntConstant(m, "CAN_BCM_RX_SETUP", RX_SETUP);
+ PyModule_AddIntConstant(m, "CAN_BCM_RX_DELETE", RX_DELETE);
+ PyModule_AddIntConstant(m, "CAN_BCM_RX_READ", RX_READ);
+ PyModule_AddIntConstant(m, "CAN_BCM_TX_STATUS", TX_STATUS);
+ PyModule_AddIntConstant(m, "CAN_BCM_TX_EXPIRED", TX_EXPIRED);
+ PyModule_AddIntConstant(m, "CAN_BCM_RX_STATUS", RX_STATUS);
+ PyModule_AddIntConstant(m, "CAN_BCM_RX_TIMEOUT", RX_TIMEOUT);
+ PyModule_AddIntConstant(m, "CAN_BCM_RX_CHANGED", RX_CHANGED);
+#endif
#ifdef SOL_RDS
PyModule_AddIntConstant(m, "SOL_RDS", SOL_RDS);
#endif
diff --git a/Modules/socketmodule.h b/Modules/socketmodule.h
index 48e0fd4..b83f9af 100644
--- a/Modules/socketmodule.h
+++ b/Modules/socketmodule.h
@@ -80,6 +80,10 @@ typedef int socklen_t;
#include <linux/can/raw.h>
#endif
+#ifdef HAVE_LINUX_CAN_BCM_H
+#include <linux/can/bcm.h>
+#endif
+
#ifdef HAVE_SYS_SYS_DOMAIN_H
#include <sys/sys_domain.h>
#endif