2018-04-13 18:23:45 +02:00
|
|
|
/***
|
|
|
|
*
|
|
|
|
* Copyright (c) 1996-2002, Valve LLC. All rights reserved.
|
2021-01-03 02:28:45 +01:00
|
|
|
*
|
|
|
|
* This product contains software technology licensed from Id
|
|
|
|
* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc.
|
2018-04-13 18:23:45 +02:00
|
|
|
* All Rights Reserved.
|
|
|
|
*
|
|
|
|
* Use, distribution, and modification of this source code and/or resulting
|
|
|
|
* object code is restricted to non-commercial enhancements to products from
|
|
|
|
* Valve LLC. All other use, distribution, or modification is prohibited
|
|
|
|
* without written permission from Valve LLC.
|
|
|
|
*
|
|
|
|
****/
|
|
|
|
|
|
|
|
#ifndef NETADR_H
|
|
|
|
#define NETADR_H
|
|
|
|
|
2022-03-10 02:43:26 +01:00
|
|
|
#include "build.h"
|
|
|
|
#include STDINT_H
|
|
|
|
|
2018-04-13 18:23:45 +02:00
|
|
|
typedef enum
|
|
|
|
{
|
2022-03-20 03:18:14 +01:00
|
|
|
NA_UNUSED = 0,
|
2018-04-13 18:23:45 +02:00
|
|
|
NA_LOOPBACK,
|
|
|
|
NA_BROADCAST,
|
|
|
|
NA_IP,
|
|
|
|
NA_IPX,
|
2022-03-10 02:43:26 +01:00
|
|
|
NA_BROADCAST_IPX,
|
|
|
|
NA_IP6,
|
|
|
|
NA_MULTICAST_IP6, // all nodes multicast
|
2018-04-13 18:23:45 +02:00
|
|
|
} netadrtype_t;
|
|
|
|
|
2022-03-10 02:43:26 +01:00
|
|
|
// Original structure:
|
|
|
|
// typedef struct netadr_s
|
|
|
|
// {
|
|
|
|
// netadrtype_t type;
|
|
|
|
// unsigned char ip[4];
|
|
|
|
// unsigned char ipx[10];
|
|
|
|
// unsigned short port;
|
|
|
|
// } netadr_t;
|
|
|
|
|
2022-03-11 10:10:00 +01:00
|
|
|
#pragma pack( push, 1 )
|
2018-04-13 18:23:45 +02:00
|
|
|
typedef struct netadr_s
|
|
|
|
{
|
2022-03-10 02:43:26 +01:00
|
|
|
union
|
|
|
|
{
|
|
|
|
struct
|
|
|
|
{
|
2022-03-11 10:10:00 +01:00
|
|
|
uint32_t type;
|
2022-06-09 02:07:19 +02:00
|
|
|
union
|
|
|
|
{
|
|
|
|
uint8_t ip[4];
|
|
|
|
uint32_t ip4;
|
|
|
|
};
|
|
|
|
uint8_t ipx[10];
|
2022-03-11 10:10:00 +01:00
|
|
|
};
|
|
|
|
struct
|
|
|
|
{
|
2022-03-10 02:43:26 +01:00
|
|
|
#if XASH_LITTLE_ENDIAN
|
|
|
|
uint16_t type6;
|
2022-03-28 03:07:40 +02:00
|
|
|
uint8_t ip6[16];
|
2022-03-10 02:43:26 +01:00
|
|
|
#elif XASH_BIG_ENDIAN
|
2022-03-28 03:07:40 +02:00
|
|
|
uint8_t ip6_0[2];
|
2022-03-10 02:43:26 +01:00
|
|
|
uint16_t type6;
|
2022-03-28 03:07:40 +02:00
|
|
|
uint8_t ip6_2[14];
|
2022-03-10 02:43:26 +01:00
|
|
|
#endif
|
|
|
|
};
|
|
|
|
};
|
2022-03-11 10:10:00 +01:00
|
|
|
uint16_t port;
|
2018-04-13 18:23:45 +02:00
|
|
|
} netadr_t;
|
2022-03-11 10:10:00 +01:00
|
|
|
#pragma pack( pop )
|
2018-04-13 18:23:45 +02:00
|
|
|
|
2022-11-17 17:44:44 +01:00
|
|
|
STATIC_ASSERT( sizeof( netadr_t ) == 20, "invalid netadr_t size" );
|
2022-03-10 02:43:26 +01:00
|
|
|
|
2019-10-27 20:26:57 +01:00
|
|
|
#endif//NETADR_H
|