--- Python-2.6.1/Modules/socketmodule.c 2008-08-12 07:49:50.000000000 -0700 +++ Python-2.6.1-patched/Modules/socketmodule.c 2009-03-17 20:03:08.000000000 -0700 @@ -1077,7 +1077,11 @@ makesockaddr(int sockfd, struct sockaddr { struct sockaddr_hci *a = (struct sockaddr_hci *) addr; PyObject *ret = NULL; +#if defined __NetBSD__ + ret = Py_BuildValue("i", _BT_HCI_MEMB(a, bdaddr)); +#else ret = Py_BuildValue("i", _BT_HCI_MEMB(a, dev)); +#endif return ret; } @@ -1346,7 +1350,11 @@ getsockaddrarg(PySocketSockObject *s, Py { struct sockaddr_hci *addr = (struct sockaddr_hci *)addr_ret; _BT_HCI_MEMB(addr, family) = AF_BLUETOOTH; +#if defined(__NetBSD__) + if (!PyArg_ParseTuple(args, "i", &_BT_HCI_MEMB(addr, bdaddr))) { +#else if (!PyArg_ParseTuple(args, "i", &_BT_HCI_MEMB(addr, dev))) { +#endif PyErr_SetString(socket_error, "getsockaddrarg: " "wrong format"); return 0; @@ -4559,9 +4567,11 @@ init_socket(void) PyModule_AddIntConstant(m, "AF_BLUETOOTH", AF_BLUETOOTH); PyModule_AddIntConstant(m, "BTPROTO_L2CAP", BTPROTO_L2CAP); PyModule_AddIntConstant(m, "BTPROTO_HCI", BTPROTO_HCI); +#if !defined(__NetBSD__) PyModule_AddIntConstant(m, "SOL_HCI", SOL_HCI); PyModule_AddIntConstant(m, "HCI_FILTER", HCI_FILTER); -#if !defined(__FreeBSD__) +#endif +#if !defined(__FreeBSD__) && !defined(__NetBSD__) PyModule_AddIntConstant(m, "HCI_TIME_STAMP", HCI_TIME_STAMP); PyModule_AddIntConstant(m, "HCI_DATA_DIR", HCI_DATA_DIR); PyModule_AddIntConstant(m, "BTPROTO_SCO", BTPROTO_SCO);