Skip to content

Instantly share code, notes, and snippets.

@ThomasChiroux
Created February 3, 2015 18:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ThomasChiroux/c4701f4b7a9c9695db2b to your computer and use it in GitHub Desktop.
Save ThomasChiroux/c4701f4b7a9c9695db2b to your computer and use it in GitHub Desktop.
test bt socket python 2
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(PyExc_OSError, "getsockaddrarg: "
"wrong format");
return 0;
}
if (setbdaddr(straddr, &_BT_HCI_MEMB(addr, bdaddr)) < 0)
return 0;
#else
printf("AF: %d\n", AF_BLUETOOTH);
printf("BT avant set: %d\n", _BT_HCI_MEMB(addr, family));
_BT_HCI_MEMB(addr, family) = AF_BLUETOOTH;
printf("BT apres set: %d\n", _BT_HCI_MEMB(addr, family));
int titi;
PyArg_ParseTuple(args, "i", &titi);
printf("result PyArg_ParseTuple: %d\n", titi);
_BT_HCI_MEMB(addr, dev) = 43;
printf("BT apres set 2 family: %d\n", _BT_HCI_MEMB(addr, family));
printf("BT apres set 2 dev: %d\n", _BT_HCI_MEMB(addr, dev));
if (!PyArg_ParseTuple(args, "i", &_BT_HCI_MEMB(addr, dev))) {
PyErr_SetString(PyExc_OSError, "getsockaddrarg: "
"wrong format");
return 0;
}
#endif
printf("BT apres set 3 family: %d\n", _BT_HCI_MEMB(addr, family));
printf("BT apres set 3 dev: %d\n", _BT_HCI_MEMB(addr, dev));
printf("===> Family: %d\n", (addr)->hci_family);
printf("===> Dev: %d\n", (addr)->hci_dev);
*len_ret = sizeof *addr;
return 1;
}
@ThomasChiroux
Copy link
Author

result:
AF: 31
BT avant set: 45556
BT apres set: 31
result PyArg_ParseTuple: 42
BT apres set 2 family: 31
BT apres set 2 dev: 43
BT apres set 3 family: 42
BT apres set 3 dev: 0
===> Family: 42
===> Dev: 0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment