mirror of
https://github.com/FWGS/xash3d-fwgs.git
synced 2026-08-05 03:24:56 +08:00
engine: common: expose network utilities functions needed for broker
This commit is contained in:
@@ -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 )
|
||||
{
|
||||
|
||||
@@ -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 )
|
||||
{
|
||||
|
||||
@@ -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 );
|
||||
|
||||
Reference in New Issue
Block a user