Skip to content

Commit 18ed09e

Browse files
committed
Use 'unsigned long' to parse channel on Windows
1 parent a95b22d commit 18ed09e

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

Modules/socketmodule.c

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2071,13 +2071,19 @@ getsockaddrarg(PySocketSockObject *s, PyObject *args,
20712071
const char *straddr;
20722072
struct sockaddr_rc *addr = &addrbuf->bt_rc;
20732073
_BT_RC_MEMB(addr, family) = AF_BLUETOOTH;
2074+
#ifdef MS_WINDOWS
2075+
unsigned long channel = _BT_RC_MEMB(addr, channel);
2076+
# define FORMAT_CHANNEL "k"
2077+
#else
20742078
unsigned char channel = _BT_RC_MEMB(addr, channel);
2075-
if (!PyArg_ParseTuple(args, "sB", &straddr,
2076-
&channel)) {
2077-
PyErr_Format(PyExc_OSError,
2078-
"%s(): wrong format", caller);
2079+
# define FORMAT_CHANNEL "B"
2080+
#endif
2081+
if (!PyArg_ParseTuple(args, "s" FORMAT_CHANNEL,
2082+
&straddr, &channel)) {
2083+
PyErr_Format(PyExc_OSError, "%s(): wrong format", caller);
20792084
return 0;
20802085
}
2086+
#undef FORMAT_CHANNEL
20812087
_BT_RC_MEMB(addr, channel) = channel;
20822088

20832089
if (setbdaddr(straddr, &_BT_RC_MEMB(addr, bdaddr)) < 0)

0 commit comments

Comments
 (0)