@@ -2044,10 +2044,10 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2044
2044
struct sockaddr_l2 * addr = & addrbuf -> bt_l2 ;
2045
2045
memset (addr , 0 , sizeof (struct sockaddr_l2 ));
2046
2046
_BT_L2_MEMB (addr , family ) = AF_BLUETOOTH ;
2047
- int psm ;
2048
- int cid = 0 ;
2047
+ unsigned short psm ;
2048
+ unsigned short cid = 0 ;
2049
2049
unsigned char bdaddr_type = BDADDR_BREDR ;
2050
- if (!PyArg_ParseTuple (args , "si|iB " , & straddr ,
2050
+ if (!PyArg_ParseTuple (args , "sH|HB " , & straddr ,
2051
2051
& psm ,
2052
2052
& cid ,
2053
2053
& bdaddr_type )) {
@@ -2071,12 +2071,15 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2071
2071
const char * straddr ;
2072
2072
struct sockaddr_rc * addr = & addrbuf -> bt_rc ;
2073
2073
_BT_RC_MEMB (addr , family ) = AF_BLUETOOTH ;
2074
- if (!PyArg_ParseTuple (args , "si" , & straddr ,
2075
- & _BT_RC_MEMB (addr , channel ))) {
2074
+ uint8_t channel = _BT_RC_MEMB (addr , channel );
2075
+ if (!PyArg_ParseTuple (args , "sB" , & straddr ,
2076
+ & channel )) {
2076
2077
PyErr_Format (PyExc_OSError ,
2077
2078
"%s(): wrong format" , caller );
2078
2079
return 0 ;
2079
2080
}
2081
+ _BT_RC_MEMB (addr , channel ) = channel ;
2082
+
2080
2083
if (setbdaddr (straddr , & _BT_RC_MEMB (addr , bdaddr )) < 0 )
2081
2084
return 0 ;
2082
2085
@@ -2100,11 +2103,13 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
2100
2103
return 0 ;
2101
2104
#else /* __NetBSD__ || __DragonFly__ */
2102
2105
_BT_HCI_MEMB (addr , family ) = AF_BLUETOOTH ;
2103
- if (!PyArg_ParseTuple (args , "i" , & _BT_HCI_MEMB (addr , dev ))) {
2106
+ unsigned short dev = _BT_HCI_MEMB (addr , dev );
2107
+ if (!PyArg_ParseTuple (args , "H" , & dev )) {
2104
2108
PyErr_Format (PyExc_OSError ,
2105
2109
"%s(): wrong format" , caller );
2106
2110
return 0 ;
2107
2111
}
2112
+ _BT_HCI_MEMB (addr , dev ) = dev ;
2108
2113
#endif /* !(__NetBSD__ || __DragonFly__) */
2109
2114
* len_ret = sizeof * addr ;
2110
2115
return 1 ;
0 commit comments