applying netbsd-wizs-mod.patch from issue5510 -
fixes for netbsd (and dragonflybsd?)
This commit is contained in:
parent
b603d03f15
commit
3e85dfd15e
|
@ -379,7 +379,7 @@ dup_socket(SOCKET handle)
|
|||
#define SOCKETCLOSE close
|
||||
#endif
|
||||
|
||||
#if (defined(HAVE_BLUETOOTH_H) || defined(HAVE_BLUETOOTH_BLUETOOTH_H)) && !defined(__NetBSD__)
|
||||
#if (defined(HAVE_BLUETOOTH_H) || defined(HAVE_BLUETOOTH_BLUETOOTH_H)) && !defined(__NetBSD__) && !defined(__DragonFly__)
|
||||
#define USE_BLUETOOTH 1
|
||||
#if defined(__FreeBSD__)
|
||||
#define BTPROTO_L2CAP BLUETOOTH_PROTO_L2CAP
|
||||
|
@ -393,11 +393,13 @@ dup_socket(SOCKET handle)
|
|||
#define _BT_L2_MEMB(sa, memb) ((sa)->l2cap_##memb)
|
||||
#define _BT_RC_MEMB(sa, memb) ((sa)->rfcomm_##memb)
|
||||
#define _BT_HCI_MEMB(sa, memb) ((sa)->hci_##memb)
|
||||
#elif defined(__NetBSD__)
|
||||
#elif defined(__NetBSD__) || defined(__DragonFly__)
|
||||
#define sockaddr_l2 sockaddr_bt
|
||||
#define sockaddr_rc sockaddr_bt
|
||||
#define sockaddr_hci sockaddr_bt
|
||||
#define sockaddr_sco sockaddr_bt
|
||||
#define SOL_HCI BTPROTO_HCI
|
||||
#define HCI_DATA_DIR SO_HCI_DIRECTION
|
||||
#define _BT_L2_MEMB(sa, memb) ((sa)->bt_##memb)
|
||||
#define _BT_RC_MEMB(sa, memb) ((sa)->bt_##memb)
|
||||
#define _BT_HCI_MEMB(sa, memb) ((sa)->bt_##memb)
|
||||
|
@ -1113,9 +1115,13 @@ makesockaddr(SOCKET_T sockfd, struct sockaddr *addr, size_t addrlen, int proto)
|
|||
case BTPROTO_HCI:
|
||||
{
|
||||
struct sockaddr_hci *a = (struct sockaddr_hci *) addr;
|
||||
#if defined(__NetBSD__) || defined(__DragonFly__)
|
||||
return makebdaddr(&_BT_HCI_MEMB(a, bdaddr));
|
||||
#else
|
||||
PyObject *ret = NULL;
|
||||
ret = Py_BuildValue("i", _BT_HCI_MEMB(a, dev));
|
||||
return ret;
|
||||
#endif
|
||||
}
|
||||
|
||||
#if !defined(__FreeBSD__)
|
||||
|
@ -1399,12 +1405,25 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
|
|||
case BTPROTO_HCI:
|
||||
{
|
||||
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) {
|
||||
PyErr_SetString(socket_error, "getsockaddrarg: "
|
||||
"wrong format");
|
||||
return 0;
|
||||
}
|
||||
if (setbdaddr(straddr, &_BT_HCI_MEMB(addr, bdaddr)) < 0)
|
||||
return 0;
|
||||
#else
|
||||
_BT_HCI_MEMB(addr, family) = AF_BLUETOOTH;
|
||||
if (!PyArg_ParseTuple(args, "i", &_BT_HCI_MEMB(addr, dev))) {
|
||||
PyErr_SetString(socket_error, "getsockaddrarg: "
|
||||
"wrong format");
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
*len_ret = sizeof *addr;
|
||||
return 1;
|
||||
}
|
||||
|
@ -4544,9 +4563,13 @@ PyInit__socket(void)
|
|||
PyModule_AddIntConstant(m, "BTPROTO_L2CAP", BTPROTO_L2CAP);
|
||||
PyModule_AddIntConstant(m, "BTPROTO_HCI", BTPROTO_HCI);
|
||||
PyModule_AddIntConstant(m, "SOL_HCI", SOL_HCI);
|
||||
#if !defined(__NetBSD__) && !defined(__DragonFly__)
|
||||
PyModule_AddIntConstant(m, "HCI_FILTER", HCI_FILTER);
|
||||
#endif
|
||||
#if !defined(__FreeBSD__)
|
||||
#if !defined(__NetBSD__) && !defined(__DragonFly__)
|
||||
PyModule_AddIntConstant(m, "HCI_TIME_STAMP", HCI_TIME_STAMP);
|
||||
#endif
|
||||
PyModule_AddIntConstant(m, "HCI_DATA_DIR", HCI_DATA_DIR);
|
||||
PyModule_AddIntConstant(m, "BTPROTO_SCO", BTPROTO_SCO);
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue