1 $NetBSD: patch-ap,v 1.2 2009/04/24 01:32:50 hasso Exp $
3 --- Modules/socketmodule.c.orig 2010-05-23 15:22:08.000000000 +0000
4 +++ Modules/socketmodule.c
5 @@ -379,7 +379,7 @@ const char *inet_ntop(int af, const void
6 #define SOCKETCLOSE close
9 -#if defined(HAVE_BLUETOOTH_H) || defined(HAVE_BLUETOOTH_BLUETOOTH_H) && !defined(__NetBSD__)
10 +#if defined(HAVE_BLUETOOTH_H) || defined(HAVE_BLUETOOTH_BLUETOOTH_H) && !defined(__NetBSD__) && !defined(__DragonFly__)
11 #define USE_BLUETOOTH 1
12 #if defined(__FreeBSD__)
13 #define BTPROTO_L2CAP BLUETOOTH_PROTO_L2CAP
14 @@ -393,11 +393,13 @@ const char *inet_ntop(int af, const void
15 #define _BT_L2_MEMB(sa, memb) ((sa)->l2cap_##memb)
16 #define _BT_RC_MEMB(sa, memb) ((sa)->rfcomm_##memb)
17 #define _BT_HCI_MEMB(sa, memb) ((sa)->hci_##memb)
18 -#elif defined(__NetBSD__)
19 +#elif defined(__NetBSD__) || defined(__DragonFly__)
20 #define sockaddr_l2 sockaddr_bt
21 #define sockaddr_rc sockaddr_bt
22 #define sockaddr_hci sockaddr_bt
23 #define sockaddr_sco sockaddr_bt
24 +#define SOL_HCI BTPROTO_HCI
25 +#define HCI_DATA_DIR SO_HCI_DIRECTION
26 #define _BT_L2_MEMB(sa, memb) ((sa)->bt_##memb)
27 #define _BT_RC_MEMB(sa, memb) ((sa)->bt_##memb)
28 #define _BT_HCI_MEMB(sa, memb) ((sa)->bt_##memb)
29 @@ -1076,9 +1078,13 @@ makesockaddr(int sockfd, struct sockaddr
32 struct sockaddr_hci *a = (struct sockaddr_hci *) addr;
33 +#if defined(__NetBSD__) || defined(__DragonFly__)
34 + return makebdaddr(&_BT_HCI_MEMB(a, bdaddr));
37 ret = Py_BuildValue("i", _BT_HCI_MEMB(a, dev));
42 #if !defined(__FreeBSD__)
43 @@ -1350,12 +1356,25 @@ getsockaddrarg(PySocketSockObject *s, Py
46 struct sockaddr_hci *addr = (struct sockaddr_hci *)addr_ret;
47 +#if defined(__NetBSD__) || defined(__DragonFly__)
48 + char *straddr = PyString_AsString(args);
50 + _BT_HCI_MEMB(addr, family) = AF_BLUETOOTH;
51 + if (straddr == NULL) {
52 + PyErr_SetString(socket_error, "getsockaddrarg: "
56 + if (setbdaddr(straddr, &_BT_HCI_MEMB(addr, bdaddr)) < 0)
59 _BT_HCI_MEMB(addr, family) = AF_BLUETOOTH;
60 if (!PyArg_ParseTuple(args, "i", &_BT_HCI_MEMB(addr, dev))) {
61 PyErr_SetString(socket_error, "getsockaddrarg: "
66 *len_ret = sizeof *addr;
69 @@ -4588,9 +4607,13 @@ init_socket(void)
70 PyModule_AddIntConstant(m, "BTPROTO_L2CAP", BTPROTO_L2CAP);
71 PyModule_AddIntConstant(m, "BTPROTO_HCI", BTPROTO_HCI);
72 PyModule_AddIntConstant(m, "SOL_HCI", SOL_HCI);
73 +#if !defined(__NetBSD__) && !defined(__DragonFly__)
74 PyModule_AddIntConstant(m, "HCI_FILTER", HCI_FILTER);
76 #if !defined(__FreeBSD__)
77 +#if !defined(__NetBSD__) && !defined(__DragonFly__)
78 PyModule_AddIntConstant(m, "HCI_TIME_STAMP", HCI_TIME_STAMP);
80 PyModule_AddIntConstant(m, "HCI_DATA_DIR", HCI_DATA_DIR);
81 PyModule_AddIntConstant(m, "BTPROTO_SCO", BTPROTO_SCO);