engine: common: expose network utilities functions needed for broker

This commit is contained in:
SNMetamorph
2026-04-29 18:20:51 +04:00
committed by a1batross
parent b9b0ff5769
commit a707f5933d
3 changed files with 22 additions and 4 deletions

View File

@@ -132,7 +132,7 @@ static CVAR_DEFINE_AUTO( net6_address, "0", FCVAR_PRIVILEGED|FCVAR_READ_ONLY, "c
static void NET_ClearLagData( qboolean bClient, qboolean bServer );
static inline qboolean NET_IsSocketError( int retval )
qboolean NET_IsSocketError( int retval )
{
#if XASH_WIN32 || XASH_DOS4GW
return retval == SOCKET_ERROR ? true : false;
@@ -141,7 +141,7 @@ static inline qboolean NET_IsSocketError( int retval )
#endif
}
static inline qboolean NET_IsSocketValid( int socket )
qboolean NET_IsSocketValid( int socket )
{
#if XASH_WIN32 || XASH_DOS4GW
return socket != INVALID_SOCKET;
@@ -150,6 +150,19 @@ static inline qboolean NET_IsSocketValid( int socket )
#endif
}
qboolean NET_MakeSocketNonBlocking( int socket_fd )
{
#if XASH_WIN32 || XASH_PSVITA
u_long flag = 1;
if( NET_IsSocketError( ioctlsocket( socket_fd, FIONBIO, &flag )))
return false;
#else
if( NET_IsSocketError( fcntl( socket_fd, F_SETFL, O_NONBLOCK )))
return false;
#endif
return true;
}
void NET_NetadrToIP6Bytes( uint8_t *ip6, const netadr_t *adr )
{
memcpy( &ip6[0], adr->ip6_0, 2 );
@@ -177,7 +190,7 @@ static int NET_NetadrIP6Compare( const netadr_t *a, const netadr_t *b )
NET_NetadrToSockadr
====================
*/
static void NET_NetadrToSockadr( netadr_t *a, struct sockaddr_storage *s )
void NET_NetadrToSockadr( netadr_t *a, struct sockaddr_storage *s )
{
netadrtype_t type = NET_NetadrType( a );
@@ -214,7 +227,7 @@ static void NET_NetadrToSockadr( netadr_t *a, struct sockaddr_storage *s )
NET_SockadrToNetAdr
====================
*/
static void NET_SockadrToNetadr( const struct sockaddr_storage *s, netadr_t *a )
void NET_SockadrToNetadr( const struct sockaddr_storage *s, netadr_t *a )
{
if( s->ss_family == AF_INET )
{

View File

@@ -74,6 +74,9 @@ void NET_SendPacket( netsrc_t sock, size_t length, const void *data, netadr_t to
void NET_SendPacketEx( netsrc_t sock, size_t length, const void *data, netadr_t to, size_t splitsize );
void NET_IP6BytesToNetadr( netadr_t *adr, const uint8_t *ip6 );
void NET_NetadrToIP6Bytes( uint8_t *ip6, const netadr_t *adr );
qboolean NET_IsSocketError( int retval );
qboolean NET_IsSocketValid( int socket );
qboolean NET_MakeSocketNonBlocking( int socket_fd );
static inline qboolean NET_IsLocalAddress( netadr_t adr )
{

View File

@@ -101,3 +101,5 @@ static inline socklen_t NET_SockAddrLen( const struct sockaddr_storage *addr )
}
net_gai_state_t NET_StringToSockaddr( const char *s, struct sockaddr_storage *sadr, qboolean nonblocking, int family );
void NET_NetadrToSockadr( netadr_t *a, struct sockaddr_storage *s );
void NET_SockadrToNetadr( const struct sockaddr_storage *s, netadr_t *a );