@@ -463,18 +463,18 @@ - (dispatch_source_t)_createDispatchSourceWithListeningSocket:(int)listeningSock
463463 dispatch_source_set_event_handler (source, ^{
464464
465465 @autoreleasepool {
466- struct sockaddr remoteSockAddr;
466+ struct sockaddr_storage remoteSockAddr;
467467 socklen_t remoteAddrLen = sizeof (remoteSockAddr);
468- int socket = accept (listeningSocket, &remoteSockAddr, &remoteAddrLen);
468+ int socket = accept (listeningSocket, ( struct sockaddr*) &remoteSockAddr, &remoteAddrLen);
469469 if (socket > 0 ) {
470470 NSData * remoteAddress = [NSData dataWithBytes: &remoteSockAddr length: remoteAddrLen];
471471
472- struct sockaddr localSockAddr;
472+ struct sockaddr_storage localSockAddr;
473473 socklen_t localAddrLen = sizeof (localSockAddr);
474474 NSData * localAddress = nil ;
475- if (getsockname (socket, &localSockAddr, &localAddrLen) == 0 ) {
475+ if (getsockname (socket, ( struct sockaddr*) &localSockAddr, &localAddrLen) == 0 ) {
476476 localAddress = [NSData dataWithBytes: &localSockAddr length: localAddrLen];
477- GWS_DCHECK ((!isIPv6 && localSockAddr.sa_family == AF_INET) || (isIPv6 && localSockAddr.sa_family == AF_INET6));
477+ GWS_DCHECK ((!isIPv6 && localSockAddr.ss_family == AF_INET) || (isIPv6 && localSockAddr.ss_family == AF_INET6));
478478 } else {
479479 GWS_DNOT_REACHED ();
480480 }
@@ -511,11 +511,10 @@ - (BOOL)_start:(NSError**)error {
511511 return NO ;
512512 }
513513 if (port == 0 ) {
514- struct sockaddr addr;
514+ struct sockaddr_in addr;
515515 socklen_t addrlen = sizeof (addr);
516- if (getsockname (listeningSocket4, &addr, &addrlen) == 0 ) {
517- struct sockaddr_in* sockaddr = (struct sockaddr_in*)&addr;
518- port = ntohs (sockaddr->sin_port );
516+ if (getsockname (listeningSocket4, (struct sockaddr*)&addr, &addrlen) == 0 ) {
517+ port = ntohs (addr.sin_port );
519518 } else {
520519 GWS_LOG_ERROR (@" Failed retrieving socket address: %s (%i )" , strerror (errno), errno);
521520 }
0 commit comments