# include <ctype.h>
#endif
-#ifdef __APPLE__
+#if defined(__APPLE__) || defined(__NetBSD__)
# include <sys/ioctl.h>
#endif
}
return ret;
}
-#endif
+#endif /* ENABLE_IPV6 */
#ifdef USE_BLUETOOTH
case AF_BLUETOOTH:
struct sockaddr_hci *a = (struct sockaddr_hci *) addr;
#if defined(__NetBSD__) || defined(__DragonFly__)
return makebdaddr(&_BT_HCI_MEMB(a, bdaddr));
-#else
+#else /* __NetBSD__ || __DragonFly__ */
PyObject *ret = NULL;
ret = Py_BuildValue("i", _BT_HCI_MEMB(a, dev));
return ret;
-#endif
+#endif /* !(__NetBSD__ || __DragonFly__) */
}
#if !defined(__FreeBSD__)
struct sockaddr_sco *a = (struct sockaddr_sco *) addr;
return makebdaddr(&_BT_SCO_MEMB(a, bdaddr));
}
-#endif
+#endif /* !__FreeBSD__ */
default:
PyErr_SetString(PyExc_ValueError,
"Unknown Bluetooth protocol");
return NULL;
}
-#endif
+#endif /* USE_BLUETOOTH */
#if defined(HAVE_NETPACKET_PACKET_H) && defined(SIOCGIFNAME)
case AF_PACKET:
{
struct sockaddr_ll *a = (struct sockaddr_ll *)addr;
- char *ifname = "";
+ const char *ifname = "";
struct ifreq ifr;
/* need to look up interface name give index */
if (a->sll_ifindex) {
a->sll_addr,
a->sll_halen);
}
-#endif
+#endif /* HAVE_NETPACKET_PACKET_H && SIOCGIFNAME */
#ifdef HAVE_LINUX_TIPC_H
case AF_TIPC:
return NULL;
}
}
-#endif
+#endif /* HAVE_LINUX_TIPC_H */
-#ifdef AF_CAN
+#if defined(AF_CAN) && defined(SIOCGIFNAME)
case AF_CAN:
{
struct sockaddr_can *a = (struct sockaddr_can *)addr;
- char *ifname = "";
+ const char *ifname = "";
struct ifreq ifr;
/* need to look up interface name given index */
if (a->can_ifindex) {
ifname,
a->can_family);
}
-#endif
+#endif /* AF_CAN && SIOCGIFNAME */
#ifdef PF_SYSTEM
case PF_SYSTEM:
struct sockaddr_ctl *a = (struct sockaddr_ctl *)addr;
return Py_BuildValue("(II)", a->sc_id, a->sc_unit);
}
-#endif
+#endif /* SYSPROTO_CONTROL */
default:
PyErr_SetString(PyExc_ValueError,
"Invalid address type");
return 0;
}
-#endif
+#endif /* PF_SYSTEM */
#ifdef HAVE_SOCKADDR_ALG
case AF_ALG:
a->salg_feat,
a->salg_mask);
}
-#endif
+#endif /* HAVE_SOCKADDR_ALG */
/* More cases here... */
*len_ret = sizeof(*addr);
return 1;
}
-#endif
+#endif /* AF_NETLINK */
#ifdef AF_RDS
case AF_RDS:
/* RDS sockets use sockaddr_in: fall-through */
-#endif
+#endif /* AF_RDS */
case AF_INET:
{
*len_ret = sizeof *addr;
return 1;
}
-#endif
+#endif /* ENABLE_IPV6 */
#ifdef USE_BLUETOOTH
case AF_BLUETOOTH:
case BTPROTO_L2CAP:
{
struct sockaddr_l2 *addr;
- char *straddr;
+ const char *straddr;
addr = (struct sockaddr_l2 *)addr_ret;
memset(addr, 0, sizeof(struct sockaddr_l2));
case BTPROTO_RFCOMM:
{
struct sockaddr_rc *addr;
- char *straddr;
+ const char *straddr;
addr = (struct sockaddr_rc *)addr_ret;
_BT_RC_MEMB(addr, family) = AF_BLUETOOTH;
{
struct sockaddr_hci *addr = (struct sockaddr_hci *)addr_ret;
#if defined(__NetBSD__) || defined(__DragonFly__)
- char *straddr = PyBytes_AS_STRING(args);
-
- _BT_HCI_MEMB(addr, family) = AF_BLUETOOTH;
- if (straddr == NULL) {
+ const char *straddr;
+ _BT_HCI_MEMB(addr, family) = AF_BLUETOOTH;
+ if (!PyBytes_Check(args)) {
PyErr_SetString(PyExc_OSError, "getsockaddrarg: "
"wrong format");
return 0;
}
+ straddr = PyBytes_AS_STRING(args);
if (setbdaddr(straddr, &_BT_HCI_MEMB(addr, bdaddr)) < 0)
return 0;
-#else
+#else /* __NetBSD__ || __DragonFly__ */
_BT_HCI_MEMB(addr, family) = AF_BLUETOOTH;
if (!PyArg_ParseTuple(args, "i", &_BT_HCI_MEMB(addr, dev))) {
PyErr_SetString(PyExc_OSError, "getsockaddrarg: "
"wrong format");
return 0;
}
-#endif
+#endif /* !(__NetBSD__ || __DragonFly__) */
*len_ret = sizeof *addr;
return 1;
}
case BTPROTO_SCO:
{
struct sockaddr_sco *addr;
- char *straddr;
+ const char *straddr;
addr = (struct sockaddr_sco *)addr_ret;
_BT_SCO_MEMB(addr, family) = AF_BLUETOOTH;
*len_ret = sizeof *addr;
return 1;
}
-#endif
+#endif /* !__FreeBSD__ */
default:
PyErr_SetString(PyExc_OSError, "getsockaddrarg: unknown Bluetooth protocol");
return 0;
}
}
-#endif
+#endif /* USE_BLUETOOTH */
#if defined(HAVE_NETPACKET_PACKET_H) && defined(SIOCGIFINDEX)
case AF_PACKET:
{
struct sockaddr_ll* addr;
struct ifreq ifr;
- char *interfaceName;
+ const char *interfaceName;
int protoNumber;
int hatype = 0;
int pkttype = 0;
PyBuffer_Release(&haddr);
return 1;
}
-#endif
+#endif /* HAVE_NETPACKET_PACKET_H && SIOCGIFINDEX */
#ifdef HAVE_LINUX_TIPC_H
case AF_TIPC:
return 1;
}
-#endif
+#endif /* HAVE_LINUX_TIPC_H */
-#if defined(AF_CAN) && defined(CAN_RAW) && defined(CAN_BCM)
+#if defined(AF_CAN) && defined(CAN_RAW) && defined(CAN_BCM) && defined(SIOCGIFINDEX)
case AF_CAN:
switch (s->sock_proto) {
case CAN_RAW:
"getsockaddrarg: unsupported CAN protocol");
return 0;
}
-#endif
+#endif /* AF_CAN && CAN_RAW && CAN_BCM && SIOCGIFINDEX */
#ifdef PF_SYSTEM
case PF_SYSTEM:
*len_ret = sizeof(*addr);
return 1;
}
-#endif
+#endif /* SYSPROTO_CONTROL */
default:
PyErr_SetString(PyExc_OSError,
"getsockaddrarg: unsupported PF_SYSTEM protocol");
return 0;
}
-#endif
+#endif /* PF_SYSTEM */
#ifdef HAVE_SOCKADDR_ALG
case AF_ALG:
{
struct sockaddr_alg *sa;
- char *type;
- char *name;
+ const char *type;
+ const char *name;
sa = (struct sockaddr_alg *)addr_ret;
memset(sa, 0, sizeof(*sa));
*len_ret = sizeof(*sa);
return 1;
}
-#endif
+#endif /* HAVE_SOCKADDR_ALG */
/* More cases here... */
*len_ret = sizeof (struct sockaddr_nl);
return 1;
}
-#endif
+#endif /* AF_NETLINK */
#ifdef AF_RDS
case AF_RDS:
/* RDS sockets use sockaddr_in: fall-through */
-#endif
+#endif /* AF_RDS */
case AF_INET:
{
*len_ret = sizeof (struct sockaddr_in6);
return 1;
}
-#endif
+#endif /* ENABLE_IPV6 */
#ifdef USE_BLUETOOTH
case AF_BLUETOOTH:
case BTPROTO_SCO:
*len_ret = sizeof (struct sockaddr_sco);
return 1;
-#endif
+#endif /* !__FreeBSD__ */
default:
PyErr_SetString(PyExc_OSError, "getsockaddrlen: "
"unknown BT protocol");
}
}
-#endif
+#endif /* USE_BLUETOOTH */
#ifdef HAVE_NETPACKET_PACKET_H
case AF_PACKET:
*len_ret = sizeof (struct sockaddr_ll);
return 1;
}
-#endif
+#endif /* HAVE_NETPACKET_PACKET_H */
#ifdef HAVE_LINUX_TIPC_H
case AF_TIPC:
*len_ret = sizeof (struct sockaddr_tipc);
return 1;
}
-#endif
+#endif /* HAVE_LINUX_TIPC_H */
#ifdef AF_CAN
case AF_CAN:
*len_ret = sizeof (struct sockaddr_can);
return 1;
}
-#endif
+#endif /* AF_CAN */
#ifdef PF_SYSTEM
case PF_SYSTEM:
case SYSPROTO_CONTROL:
*len_ret = sizeof (struct sockaddr_ctl);
return 1;
-#endif
+#endif /* SYSPROTO_CONTROL */
default:
PyErr_SetString(PyExc_OSError, "getsockaddrlen: "
"unknown PF_SYSTEM protocol");
return 0;
}
-#endif
+#endif /* PF_SYSTEM */
#ifdef HAVE_SOCKADDR_ALG
case AF_ALG:
{
*len_ret = sizeof (struct sockaddr_alg);
return 1;
}
-#endif
+#endif /* HAVE_SOCKADDR_ALG */
/* More cases here... */
int result;
#endif
#endif /* HAVE_GETHOSTBYNAME_R */
- char *ap;
+ const char *ap;
int al;
int af;
static PyObject *
socket_getservbyname(PyObject *self, PyObject *args)
{
- char *name, *proto=NULL;
+ const char *name, *proto=NULL;
struct servent *sp;
if (!PyArg_ParseTuple(args, "s|s:getservbyname", &name, &proto))
return NULL;
socket_getservbyport(PyObject *self, PyObject *args)
{
int port;
- char *proto=NULL;
+ const char *proto=NULL;
struct servent *sp;
if (!PyArg_ParseTuple(args, "i|s:getservbyport", &port, &proto))
return NULL;
static PyObject *
socket_getprotobyname(PyObject *self, PyObject *args)
{
- char *name;
+ const char *name;
struct protoent *sp;
if (!PyArg_ParseTuple(args, "s:getprotobyname", &name))
return NULL;
/* Have to use inet_addr() instead */
unsigned int packed_addr;
#endif
- char *ip_addr;
+ const char *ip_addr;
if (!PyArg_ParseTuple(args, "s:inet_aton", &ip_addr))
return NULL;
socket_inet_pton(PyObject *self, PyObject *args)
{
int af;
- char* ip;
+ const char* ip;
int retval;
#ifdef ENABLE_IPV6
char packed[Py_MAX(sizeof(struct in_addr), sizeof(struct in6_addr))];
{
PyObject *sa = (PyObject *)NULL;
int flags;
- char *hostp;
+ const char *hostp;
int port;
unsigned int flowinfo, scope_id;
char hbuf[NI_MAXHOST], pbuf[NI_MAXSERV];