From 323dd70b48c1a665eb96a7e32636fdad03bd5dc1 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Wed, 27 Oct 2010 20:27:14 +0000 Subject: Merged revisions 85868 via svnmerge from svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r85868 | antoine.pitrou | 2010-10-27 22:13:57 +0200 (mer., 27 oct. 2010) | 3 lines Issue #8852: Allow the socket module to build on OpenSolaris. ........ --- Misc/NEWS | 2 ++ Modules/socketmodule.c | 40 ++++++++++++++++++++++++++++------------ 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/Misc/NEWS b/Misc/NEWS index b92cdc8..0893c7f 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -635,6 +635,8 @@ Extension Modules Build ----- +- Issue #8852: Allow the socket module to build on OpenSolaris. + - Issue #10054: Some platforms provide uintptr_t in inttypes.h. Patch by Akira Kitada. diff --git a/Modules/socketmodule.c b/Modules/socketmodule.c index 834fc69..9bdca0c 100644 --- a/Modules/socketmodule.c +++ b/Modules/socketmodule.c @@ -1065,7 +1065,7 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto) } #endif -#ifdef HAVE_NETPACKET_PACKET_H +#if defined(HAVE_NETPACKET_PACKET_H) && defined(SIOCGIFNAME) case AF_PACKET: { struct sockaddr_ll *a = (struct sockaddr_ll *)addr; @@ -1381,7 +1381,7 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args, } #endif -#ifdef HAVE_NETPACKET_PACKET_H +#if defined(HAVE_NETPACKET_PACKET_H) && defined(SIOCGIFINDEX) case AF_PACKET: { struct sockaddr_ll* addr; @@ -4434,16 +4434,32 @@ PyInit__socket(void) PyModule_AddStringConstant(m, "BDADDR_LOCAL", "00:00:00:FF:FF:FF"); #endif -#ifdef HAVE_NETPACKET_PACKET_H - PyModule_AddIntConstant(m, "AF_PACKET", AF_PACKET); - PyModule_AddIntConstant(m, "PF_PACKET", PF_PACKET); - PyModule_AddIntConstant(m, "PACKET_HOST", PACKET_HOST); - PyModule_AddIntConstant(m, "PACKET_BROADCAST", PACKET_BROADCAST); - PyModule_AddIntConstant(m, "PACKET_MULTICAST", PACKET_MULTICAST); - PyModule_AddIntConstant(m, "PACKET_OTHERHOST", PACKET_OTHERHOST); - PyModule_AddIntConstant(m, "PACKET_OUTGOING", PACKET_OUTGOING); - PyModule_AddIntConstant(m, "PACKET_LOOPBACK", PACKET_LOOPBACK); - PyModule_AddIntConstant(m, "PACKET_FASTROUTE", PACKET_FASTROUTE); +#ifdef AF_PACKET + PyModule_AddIntMacro(m, AF_PACKET); +#endif +#ifdef PF_PACKET + PyModule_AddIntMacro(m, PF_PACKET); +#endif +#ifdef PACKET_HOST + PyModule_AddIntMacro(m, PACKET_HOST); +#endif +#ifdef PACKET_BROADCAST + PyModule_AddIntMacro(m, PACKET_BROADCAST); +#endif +#ifdef PACKET_MULTICAST + PyModule_AddIntMacro(m, PACKET_MULTICAST); +#endif +#ifdef PACKET_OTHERHOST + PyModule_AddIntMacro(m, PACKET_OTHERHOST); +#endif +#ifdef PACKET_OUTGOING + PyModule_AddIntMacro(m, PACKET_OUTGOING); +#endif +#ifdef PACKET_LOOPBACK + PyModule_AddIntMacro(m, PACKET_LOOPBACK); +#endif +#ifdef PACKET_FASTROUTE + PyModule_AddIntMacro(m, PACKET_FASTROUTE); #endif #ifdef HAVE_LINUX_TIPC_H -- cgit v0.12