Eryk Sun added the comment:
Unless someone has a better (more automated) way to handle the Winsock IPPROTO
enum, I suggest we either special-case the individual tests for MS_WINDOWS when
we know that Winsock defines the value; or just define macros for the values in
the enum:
#ifdef MS_WINDOWS /* Macros based on the IPPROTO enum. */
#define IPPROTO_ICMP IPPROTO_ICMP
#define IPPROTO_IGMP IPPROTO_IGMP
#define IPPROTO_GGP IPPROTO_GGP
#define IPPROTO_TCP IPPROTO_TCP
#define IPPROTO_PUP IPPROTO_PUP
#define IPPROTO_UDP IPPROTO_UDP
#define IPPROTO_IDP IPPROTO_IDP
#define IPPROTO_ND IPPROTO_ND
#define IPPROTO_RAW IPPROTO_RAW
#define IPPROTO_MAX IPPROTO_MAX
#if (_WIN32_WINNT >= 0x0501)
#define IPPROTO_HOPOPTS IPPROTO_HOPOPTS
#define IPPROTO_IPV4 IPPROTO_IPV4
#define IPPROTO_IPV6 IPPROTO_IPV6
#define IPPROTO_ROUTING IPPROTO_ROUTING
#define IPPROTO_FRAGMENT IPPROTO_FRAGMENT
#define IPPROTO_ESP IPPROTO_ESP
#define IPPROTO_AH IPPROTO_AH
#define IPPROTO_ICMPV6 IPPROTO_ICMPV6
#define IPPROTO_NONE IPPROTO_NONE
#define IPPROTO_DSTOPTS IPPROTO_DSTOPTS
#define IPPROTO_ICLFXBM IPPROTO_ICLFXBM
#endif /* (_WIN32_WINNT >= 0x0501) */
#if (_WIN32_WINNT >= 0x0600)
#define IPPROTO_ST IPPROTO_ST
#define IPPROTO_CBT IPPROTO_CBT
#define IPPROTO_EGP IPPROTO_EGP
#define IPPROTO_IGP IPPROTO_IGP
#define IPPROTO_RDP IPPROTO_RDP
#define IPPROTO_PIM IPPROTO_PIM
#define IPPROTO_PGM IPPROTO_PGM
#define IPPROTO_L2TP IPPROTO_L2TP
#define IPPROTO_SCTP IPPROTO_SCTP
#endif /* (_WIN32_WINNT >= 0x0600) */
#endif /* MS_WINDOWS */
or call PyModule_AddIntConstant(m, "IPPROTO_ICMP", IPPROTO_ICMP) and so on for
each enum value.
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue29515>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com