mirror of
https://github.com/FWGS/xash3d-fwgs.git
synced 2026-08-05 03:24:56 +08:00
engine: client: introduce cookie protocol extension, when client connects to the server, it provides randomized 64-bit value to be prefixed into netchan messages
* Prevent clientuseragent from leaking data. * Process qport in netchan, cleaning up code
This commit is contained in:
@@ -167,10 +167,11 @@ typedef enum fragsize_e
|
||||
|
||||
typedef enum netchan_flags_e
|
||||
{
|
||||
NETCHAN_USE_MUNGE = BIT( 0 ),
|
||||
NETCHAN_USE_BZIP2 = BIT( 1 ),
|
||||
NETCHAN_GOLDSRC = BIT( 2 ),
|
||||
NETCHAN_USE_LZSS = BIT( 3 ), // mutually exclusive with bzip2
|
||||
NETCHAN_USE_MUNGE = BIT( 0 ),
|
||||
NETCHAN_USE_BZIP2 = BIT( 1 ),
|
||||
NETCHAN_GOLDSRC = BIT( 2 ),
|
||||
NETCHAN_USE_LZSS = BIT( 3 ), // mutually exclusive with bzip2
|
||||
NETCHAN_USE_COOKIE = BIT( 4 ), // per-connection 64-bit cookie prefixed to every sequenced packet (NET_EXT_NETCHAN_COOKIE)
|
||||
} netchan_flags_t;
|
||||
|
||||
// Network Connection Channel
|
||||
@@ -240,6 +241,8 @@ typedef struct netchan_s
|
||||
qboolean use_bz2;
|
||||
qboolean use_lzss;
|
||||
qboolean gs_netchan;
|
||||
qboolean use_cookie;
|
||||
uint64_t cookie;
|
||||
} netchan_t;
|
||||
|
||||
extern netadr_t net_from;
|
||||
@@ -252,6 +255,7 @@ extern int net_drop;
|
||||
void Netchan_Init( void );
|
||||
void Netchan_Shutdown( void );
|
||||
void Netchan_Setup( netsrc_t sock, netchan_t *chan, netadr_t adr, int qport, void *client, int (*pfnBlockSize)(void *, fragsize_t mode ), uint flags );
|
||||
void Netchan_SetCookie( netchan_t *chan, uint64_t cookie );
|
||||
void Netchan_CreateFileFragmentsFromBuffer( netchan_t *chan, const char *filename, byte *pbuf, int size );
|
||||
qboolean Netchan_CopyNormalFragments( netchan_t *chan, sizebuf_t *msg, size_t *length );
|
||||
qboolean Netchan_CopyFileFragments( netchan_t *chan, sizebuf_t *msg );
|
||||
|
||||
Reference in New Issue
Block a user