@@ -14,7 +14,7 @@ from .includes.python cimport PyMem_Malloc, PyMem_Free, \
14
14
PyErr_SetInterrupt
15
15
16
16
from libc.stdint cimport uint64_t
17
- from libc.string cimport memset, strerror
17
+ from libc.string cimport memset, strerror, memcpy
18
18
from libc cimport errno
19
19
20
20
from cpython cimport PyObject
@@ -1307,9 +1307,9 @@ cdef class Loop:
1307
1307
system.addrinfo * lai_iter = NULL
1308
1308
1309
1309
system.addrinfo rai_static
1310
- system.sockaddr rai_addr_static
1310
+ system.sockaddr_storage rai_addr_static
1311
1311
system.addrinfo lai_static
1312
- system.sockaddr lai_addr_static
1312
+ system.sockaddr_storage lai_addr_static
1313
1313
1314
1314
object app_protocol
1315
1315
object protocol
@@ -1340,7 +1340,7 @@ cdef class Loop:
1340
1340
try :
1341
1341
__static_getaddrinfo(
1342
1342
host, port, family, uv.SOCK_STREAM,
1343
- proto, & rai_addr_static)
1343
+ proto, < system.sockaddr * > & rai_addr_static)
1344
1344
except LookupError :
1345
1345
f1 = self ._getaddrinfo(
1346
1346
host, port, family,
@@ -1349,7 +1349,7 @@ cdef class Loop:
1349
1349
1350
1350
fs.append(f1)
1351
1351
else :
1352
- rai_static.ai_addr = & rai_addr_static
1352
+ rai_static.ai_addr = < system.sockaddr * > & rai_addr_static
1353
1353
rai_static.ai_next = NULL
1354
1354
rai = & rai_static
1355
1355
@@ -1363,7 +1363,7 @@ cdef class Loop:
1363
1363
__static_getaddrinfo(
1364
1364
local_addr[0 ], local_addr[1 ],
1365
1365
family, uv.SOCK_STREAM,
1366
- proto, & lai_addr_static)
1366
+ proto, < system.sockaddr * > & lai_addr_static)
1367
1367
except LookupError :
1368
1368
f2 = self ._getaddrinfo(
1369
1369
local_addr[0 ], local_addr[1 ], family,
@@ -1372,7 +1372,7 @@ cdef class Loop:
1372
1372
1373
1373
fs.append(f2)
1374
1374
else :
1375
- lai_static.ai_addr = & lai_addr_static
1375
+ lai_static.ai_addr = < system.sockaddr * > & lai_addr_static
1376
1376
lai_static.ai_next = NULL
1377
1377
lai = & rai_static
1378
1378
@@ -2209,7 +2209,7 @@ cdef class Loop:
2209
2209
udp = UDPTransport.__new__ (UDPTransport)
2210
2210
rai = (< AddrInfo> rads).data
2211
2211
udp._init(self , rai.ai_family)
2212
- udp._set_remote_address(rai.ai_addr[ 0 ] )
2212
+ udp._set_remote_address(rai.ai_addr, rai.ai_addrlen )
2213
2213
else :
2214
2214
if family not in (uv.AF_INET, uv.AF_INET6):
2215
2215
raise ValueError (' unexpected address family' )
@@ -2253,14 +2253,14 @@ cdef class Loop:
2253
2253
if rai.ai_protocol != lai.ai_protocol:
2254
2254
rai = rai.ai_next
2255
2255
continue
2256
- udp._set_remote_address(rai.ai_addr[ 0 ] )
2256
+ udp._set_remote_address(rai.ai_addr, rai.ai_addrlen )
2257
2257
break
2258
2258
else :
2259
2259
raise OSError (
2260
2260
' could not bind to remote_addr {}' .format(
2261
2261
remote_addr))
2262
2262
2263
- udp._set_remote_address(rai.ai_addr[ 0 ] )
2263
+ udp._set_remote_address(rai.ai_addr, rai.ai_addrlen )
2264
2264
2265
2265
if allow_broadcast:
2266
2266
udp._set_broadcast(1 )
0 commit comments