diff options
author | Larry Hastings <larry@hastings.org> | 2015-04-13 21:48:40 (GMT) |
---|---|---|
committer | Larry Hastings <larry@hastings.org> | 2015-04-13 21:48:40 (GMT) |
commit | a6cc551502aac1fd011009abe40686f4647ba6b0 (patch) | |
tree | f6709fe9bd9475607b37557f803237b7d7970aad | |
parent | d827be8ff1e74b35191aa51e7b66acb8a13b9db9 (diff) | |
download | cpython-a6cc551502aac1fd011009abe40686f4647ba6b0.zip cpython-a6cc551502aac1fd011009abe40686f4647ba6b0.tar.gz cpython-a6cc551502aac1fd011009abe40686f4647ba6b0.tar.bz2 |
Issue #22631: Added Linux-specific socket constant CAN_RAW_FD_FRAMES.
Patch courtesy of Joe Jevnik.
-rw-r--r-- | Doc/library/socket.rst | 12 | ||||
-rw-r--r-- | Doc/whatsnew/3.5.rst | 3 | ||||
-rw-r--r-- | Misc/ACKS | 1 | ||||
-rw-r--r-- | Misc/NEWS | 4 | ||||
-rw-r--r-- | Modules/socketmodule.c | 3 | ||||
-rwxr-xr-x | configure | 30 | ||||
-rw-r--r-- | configure.ac | 10 | ||||
-rw-r--r-- | pyconfig.h.in | 3 |
8 files changed, 65 insertions, 1 deletions
diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst index 530fbb0..84fa10d 100644 --- a/Doc/library/socket.rst +++ b/Doc/library/socket.rst @@ -279,6 +279,18 @@ Constants .. versionadded:: 3.4 +.. data:: CAN_RAW_FD_FRAMES + + Enables CAN FD support in a CAN_RAW socket. This is disabled by default. + This allows your application to send both CAN and CAN FD frames; however, + you one must accept both CAN and CAN FD frames when reading from the socket. + + This constant is documented in the Linux documentation. + + Availability: Linux >= 3.6. + + .. versionadded:: 3.5 + .. data:: AF_RDS PF_RDS SOL_RDS diff --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst index 7a8c3f8..a1130df 100644 --- a/Doc/whatsnew/3.5.rst +++ b/Doc/whatsnew/3.5.rst @@ -792,6 +792,9 @@ Changes in the Python API in Python 3.5, all old `.pyo` files from previous versions of Python are invalid regardless of this PEP. + * The :mod:`socket` module now exports the CAN_RAW_FD_FRAMES constant on linux + 3.6 and greater. + Changes in the C API -------------------- @@ -664,6 +664,7 @@ Flemming Kjær Jensen Philip H. Jensen Philip Jenvey MunSic Jeong +Joe Jevnik Chris Jerdonek Jim Jewett Pedro Diaz Jimenez @@ -1,4 +1,4 @@ -+++++++++++ ++++++++++++ Python News +++++++++++ @@ -9,6 +9,8 @@ Release date: XXX Core and Builtins ----------------- +- Issue #22631: Added Linux-specific socket constant CAN_RAW_FD_FRAMES. + Patch courtesy of Joe Jevnik. - Issue #23731: Implement PEP 488: removal of .pyo files. diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index fd20b17..7610b0c 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -6617,6 +6617,9 @@ PyInit__socket(void) PyModule_AddIntMacro(m, CAN_RAW_LOOPBACK); PyModule_AddIntMacro(m, CAN_RAW_RECV_OWN_MSGS); #endif +#ifdef HAVE_LINUX_CAN_RAW_FD_FRAMES + PyModule_AddIntMacro(m, CAN_RAW_FD_FRAMES); +#endif #ifdef HAVE_LINUX_CAN_BCM_H PyModule_AddIntMacro(m, CAN_BCM); PyModule_AddIntConstant(m, "CAN_BCM_TX_SETUP", TX_SETUP); @@ -10495,6 +10495,36 @@ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then fi fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAN_RAW_FD_FRAMES" >&5 +$as_echo_n "checking for CAN_RAW_FD_FRAMES... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + /* CAN_RAW_FD_FRAMES available check */ +#include <linux/can/raw.h> +int +main () +{ +int can_raw_fd_frames = CAN_RAW_FD_FRAMES; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + +$as_echo "#define HAVE_LINUX_CAN_RAW_FD_FRAMES 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OSX 10.5 SDK or later" >&5 $as_echo_n "checking for OSX 10.5 SDK or later... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext diff --git a/configure.ac b/configure.ac index 69f7b7d..d15f264 100644 --- a/configure.ac +++ b/configure.ac @@ -2876,6 +2876,16 @@ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then fi fi +AC_MSG_CHECKING(for CAN_RAW_FD_FRAMES) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ /* CAN_RAW_FD_FRAMES available check */ +#include <linux/can/raw.h>]], +[[int can_raw_fd_frames = CAN_RAW_FD_FRAMES;]])],[ + AC_DEFINE(HAVE_LINUX_CAN_RAW_FD_FRAMES, 1, [Define if compiling using Linux 3.6 or later.]) + AC_MSG_RESULT(yes) +],[ + AC_MSG_RESULT(no) +]) + AC_MSG_CHECKING(for OSX 10.5 SDK or later) AC_COMPILE_IFELSE([ AC_LANG_PROGRAM([[#include <Carbon/Carbon.h>]], [[FSIORefNum fRef = 0]]) diff --git a/pyconfig.h.in b/pyconfig.h.in index c8ce976..0d40c94 100644 --- a/pyconfig.h.in +++ b/pyconfig.h.in @@ -531,6 +531,9 @@ /* Define to 1 if you have the <linux/can.h> header file. */ #undef HAVE_LINUX_CAN_H +/* Define if compiling using Linux 3.6 or later. */ +#undef HAVE_LINUX_CAN_RAW_FD_FRAMES + /* Define to 1 if you have the <linux/can/raw.h> header file. */ #undef HAVE_LINUX_CAN_RAW_H |