diff --git a/stepmania/src/NetworkSyncManager.cpp b/stepmania/src/NetworkSyncManager.cpp index 1bf0d21e0c..bf9f5ad741 100644 --- a/stepmania/src/NetworkSyncManager.cpp +++ b/stepmania/src/NetworkSyncManager.cpp @@ -540,7 +540,7 @@ void NetworkSyncManager::Update(float fDeltaTime) ThisServer.Name = BroadIn.ReadNT(); int port = BroadIn.Read2(); BroadIn.Read2(); //Num players connected. - unsigned long addy = ntohl(BroadcastReception->fromAddr.sin_addr.S_un.S_addr); + unsigned long addy = EzSockets::LongFromAddrIn(BroadcastReception->fromAddr); ThisServer.Address = ssprintf( "%d.%d.%d.%d:%d", (addy<<0)>>24, (addy<<8)>>24, (addy<<16)>>24, (addy<<24)>>24, port ); diff --git a/stepmania/src/ezsockets.cpp b/stepmania/src/ezsockets.cpp index 65879c3422..093a3e923a 100644 --- a/stepmania/src/ezsockets.cpp +++ b/stepmania/src/ezsockets.cpp @@ -265,6 +265,15 @@ void EzSockets::update() pUpdateWrite(); } +unsigned long EzSockets::LongFromAddrIn( const sockaddr_in & s ) +{ +#if defined(_XBOX) || defined(_WINDOWS) + return ntohl(s.sin_addr.S_un.S_addr); +#else + return ntohl(s.sin_addr.s_addr); +#endif +} + /*********************\ | Raw Data System | diff --git a/stepmania/src/ezsockets.h b/stepmania/src/ezsockets.h index eb48d895f7..a283833dd8 100644 --- a/stepmania/src/ezsockets.h +++ b/stepmania/src/ezsockets.h @@ -109,8 +109,10 @@ public: skCONNECTED, skERROR }; + struct sockaddr_in fromAddr; unsigned long fromAddr_len; + static unsigned long LongFromAddrIn( const sockaddr_in & s ); //The following possibly should be private. string inBuffer;