- Improve snapshot rate and data rate control

- Make server send packet fragments and queued packets when server is idle
- Voip protocol detection is tied to com_protocol making past-end-of-message reading unncessary
- Use Hunk_AllocateTempMemory() for buffering VOIP packets and fix buffering scheme that ryan hates so much
- Disable packet scrambling for new protocol as it is useless now
- Get rid of the old packet scrambling functions predating latest point release
- Use Hunk_AllocateTempMemory() for netchan packet queue to fix memory leak when client gets disconnected with packets in the queue
- Use Hunk_AllocateTempMemory() for download blocks to fix memory leak when client gets disconnected with download blocks in the queue
- Fix SV_RateMsec to account for udp/udp6 packet lengths
This commit is contained in:
Thilo Schulz 2011-07-13 17:11:30 +00:00
parent a844c94af1
commit ac30d86db0
15 changed files with 345 additions and 356 deletions

View file

@ -227,6 +227,8 @@ typedef struct {
byte unsentBuffer[MAX_MSGLEN];
int challenge;
int lastSentTime;
int lastSentSize;
#ifdef LEGACY_PROTOCOL
qboolean compat;
@ -250,7 +252,7 @@ PROTOCOL
==============================================================
*/
#define PROTOCOL_VERSION 69
#define PROTOCOL_VERSION 70
#define PROTOCOL_LEGACY_VERSION 68
// 1.31 - 67
@ -296,9 +298,7 @@ enum svc_ops_e {
svc_snapshot,
svc_EOF,
// svc_extension follows a svc_EOF, followed by another svc_* ...
// this keeps legacy clients compatible.
svc_extension,
// new commands, supported only by ioquake3 protocol but not legacy
svc_voip, // not wrapped in USE_VOIP, so this value is reserved.
};
@ -314,9 +314,7 @@ enum clc_ops_e {
clc_clientCommand, // [string] message
clc_EOF,
// clc_extension follows a clc_EOF, followed by another clc_* ...
// this keeps legacy servers compatible.
clc_extension,
// new commands, supported only by ioquake3 protocol but not legacy
clc_voip, // not wrapped in USE_VOIP, so this value is reserved.
};
@ -1042,7 +1040,7 @@ void SV_PacketEvent( netadr_t from, msg_t *msg );
int SV_FrameMsec(void);
qboolean SV_GameCommand( void );
int SV_SendDownloadMessages(void);
int SV_SendQueuedMessages(void);
//
// UI interface