@@ -14,7 +14,7 @@ from .includes.python cimport PyMem_Malloc, PyMem_Free, \
1414 PyErr_SetInterrupt
1515
1616from libc.stdint cimport uint64_t
17- from libc.string cimport memset, strerror
17+ from libc.string cimport memset, strerror, memcpy
1818from libc cimport errno
1919
2020from cpython cimport PyObject
@@ -1307,9 +1307,9 @@ cdef class Loop:
13071307 system.addrinfo * lai_iter = NULL
13081308
13091309 system.addrinfo rai_static
1310- system.sockaddr rai_addr_static
1310+ system.sockaddr_storage rai_addr_static
13111311 system.addrinfo lai_static
1312- system.sockaddr lai_addr_static
1312+ system.sockaddr_storage lai_addr_static
13131313
13141314 object app_protocol
13151315 object protocol
@@ -1340,7 +1340,7 @@ cdef class Loop:
13401340 try :
13411341 __static_getaddrinfo(
13421342 host, port, family, uv.SOCK_STREAM,
1343- proto, & rai_addr_static)
1343+ proto, < system.sockaddr * > & rai_addr_static)
13441344 except LookupError :
13451345 f1 = self ._getaddrinfo(
13461346 host, port, family,
@@ -1349,7 +1349,7 @@ cdef class Loop:
13491349
13501350 fs.append(f1)
13511351 else :
1352- rai_static.ai_addr = & rai_addr_static
1352+ rai_static.ai_addr = < system.sockaddr * > & rai_addr_static
13531353 rai_static.ai_next = NULL
13541354 rai = & rai_static
13551355
@@ -1363,7 +1363,7 @@ cdef class Loop:
13631363 __static_getaddrinfo(
13641364 local_addr[0 ], local_addr[1 ],
13651365 family, uv.SOCK_STREAM,
1366- proto, & lai_addr_static)
1366+ proto, < system.sockaddr * > & lai_addr_static)
13671367 except LookupError :
13681368 f2 = self ._getaddrinfo(
13691369 local_addr[0 ], local_addr[1 ], family,
@@ -1372,7 +1372,7 @@ cdef class Loop:
13721372
13731373 fs.append(f2)
13741374 else :
1375- lai_static.ai_addr = & lai_addr_static
1375+ lai_static.ai_addr = < system.sockaddr * > & lai_addr_static
13761376 lai_static.ai_next = NULL
13771377 lai = & rai_static
13781378
@@ -2209,7 +2209,7 @@ cdef class Loop:
22092209 udp = UDPTransport.__new__ (UDPTransport)
22102210 rai = (< AddrInfo> rads).data
22112211 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 )
22132213 else :
22142214 if family not in (uv.AF_INET, uv.AF_INET6):
22152215 raise ValueError (' unexpected address family' )
@@ -2253,14 +2253,14 @@ cdef class Loop:
22532253 if rai.ai_protocol != lai.ai_protocol:
22542254 rai = rai.ai_next
22552255 continue
2256- udp._set_remote_address(rai.ai_addr[ 0 ] )
2256+ udp._set_remote_address(rai.ai_addr, rai.ai_addrlen )
22572257 break
22582258 else :
22592259 raise OSError (
22602260 ' could not bind to remote_addr {}' .format(
22612261 remote_addr))
22622262
2263- udp._set_remote_address(rai.ai_addr[ 0 ] )
2263+ udp._set_remote_address(rai.ai_addr, rai.ai_addrlen )
22642264
22652265 if allow_broadcast:
22662266 udp._set_broadcast(1 )
0 commit comments