Thilo Schulz
9dc32d55e2
Bug 4812 - GCC __attribute__ annotations for printf, non-returning functions etc., patch by linux@youmustbejoking.demon.co.uk and Zack Middleton
2011-07-18 14:56:57 +00:00
Thilo Schulz
242c938d7f
Fix alignment issues in message sending/reading that would crash IRIX, thanks to Canavan for supplying a shell where I could fix this ( #5077 )
2011-07-17 01:41:39 +00:00
Thilo Schulz
ac054c198d
Bug 5075 - Fix comments in quake3 configs, patch by q3urt.undead@gmail.com
2011-07-16 11:06:56 +00:00
Thilo Schulz
e6ba500164
Move rate limiting / queued packet sending logic from Com_Frame() to sv_main.c
2011-07-15 16:51:54 +00:00
Thilo Schulz
265d6e0374
Remove one unnecessary loop in the beginning
2011-07-13 19:16:25 +00:00
Thilo Schulz
1c3ecb3d3c
- Make sure at least one round of download packets and packet queues gets sent each frame
...
- Fix timeVal select timeout value for case of unlimited data rate and now downloads are active
2011-07-13 18:57:32 +00:00
Thilo Schulz
ac30d86db0
- 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
2011-07-13 17:11:30 +00:00
Thilo Schulz
e06c117e9e
- Implement dual protocol support ( #4962 )
...
- Fix several UDP spoofing security issues
2011-07-12 11:59:48 +00:00
Thilo Schulz
309c322b80
Forgot to set default rate back to 100kbyte/s
2011-07-12 11:01:49 +00:00
Thilo Schulz
e52a492f61
- Greatly improve UDP downloading speed for clients
...
- Add download rate control cvar sv_dlRate
- Don't send snapshots to downloading clients
2011-07-12 11:01:20 +00:00
Thilo Schulz
0ed9c43453
Make naming a bit more foolproof for new macro
2011-07-07 16:21:06 +00:00
Thilo Schulz
74e538ffcf
- Add better protection against DoSing connecting users from connecting
...
- Have Com_sprintf return string length
- add STR_LEN macro for static strings
2011-07-07 16:07:58 +00:00
Thilo Schulz
53d89b6c10
More color fixes for railgun
...
Show other players' railgun color and their firetime state.
Show snapshot client's color on world item models of railgun.
Fix the impact mark using color2 (spiral) rather than color1 (beam).
Credits go to Ensiform and Harekiet for the refire portion.
2011-06-28 08:28:12 +00:00
Thilo Schulz
2f502aceb2
- Fix opStack size for vm_x86.c
...
- Change opStack alignment to 16 for vm_x86_64.c
2011-06-27 20:22:32 +00:00
Thilo Schulz
5c4813da51
Add forced VM unloading to Com_Quit_f
2011-06-25 09:05:57 +00:00
Thilo Schulz
19f54e5400
Allow recursive VM entry for VM operations as well
2011-06-23 00:00:27 +00:00
Thilo Schulz
d57ba6a57b
- Automatically reset fs_game to "" if it was supplied by the user and is equal to com_basegame
...
- Fix problem where users could change values of CVAR_INIT variables after the call to Cvar_Get() via Com_StartupVariable()
- Move sound shutdown after client shutdown so VMs don't hold invalid sound handles in memory
2011-06-22 23:00:36 +00:00
Thilo Schulz
664f8e578d
- align sse control word storage space to 16 byte boundary for snapvector
...
- replace some whitespace with tabs in snapvector.c
- Give gcc a bit more freedom in choice of registers
2011-06-22 14:36:11 +00:00
Thilo Schulz
2d1187b287
- Clear ip address listings after a NET_Restart
...
- check for oldGameSet instead of the gamename string
2011-06-21 13:31:19 +00:00
Thilo Schulz
95691ded36
Fix x64 compilation on MSVC
2011-06-21 12:32:43 +00:00
Thilo Schulz
dee3724a13
- Improve game_restart:
...
* differing screen resolutions and network settings are now honoured when changing fs_game
* Fix hunk memory leak on game_restart
* Move cls.state and cls.servername to clc so connection state is fully preserved over game_restart
* Revert back to previous fs_game after disconnecting from a server that triggered a game_restart
* Fix error dialog popping up after every game_restart if an error happened previously (reported by Ensiform)
- Fixed that not all commands added by CL_Init() would be removed by CL_Shutdown()
2011-06-21 11:18:35 +00:00
Thilo Schulz
a5f31084d4
- Fix memory leak in DMA sound after S_Shutdown()
...
- Make codec load use temp hunk memory instead of zone mem
- Fix sound issues with direct sound and game_restart (#4526 )
2011-06-17 23:29:19 +00:00
Ludwig Nussel
d8b7532fc1
remove static VM_BlockCopy from vm_powerpc
2011-06-16 08:09:06 +00:00
Thilo Schulz
8b7870b81f
Fix wrong macro. MSVC win32 build should work again now.
2011-06-16 02:01:13 +00:00
Thilo Schulz
7ac6b087af
Use Q_ftol for vm_interpreted
2011-06-16 01:26:17 +00:00
Thilo Schulz
83522282f1
Various fixes to vm_interpreted.c:
...
- Add opStack protection
- Fix dataMask check for OP_BLOCK_COPY
- Add instruction number check for conditional jumps
- Make errors in VM_PrepareInterpreter nonfatal
2011-06-16 01:11:45 +00:00
Thilo Schulz
af5020c57c
- Don't try to load QVM/DLL files on pure servers
...
- Fallback after failed DLL load will be VMI_COMPILED, not INTERPRETED
2011-06-15 22:25:13 +00:00
Thilo Schulz
9219cde4e8
- Small change to search path order - local files not in .pk3s take precedence over files in pk3s. Should make life easier for modders/mappers wanting to override textures that are already contained in some older pk3
...
- Make VM loading more robust, change loading order: when vm_* == 0 first try loading DLL, then QVM in *each* search directory/path
- Fix FS_FileForHandle that would return a FILE pointer to invalid file handle 0
2011-06-15 22:09:26 +00:00
Thilo Schulz
1ff28b3b2e
Need space of len+1 for snprintf to work
2011-06-15 16:26:51 +00:00
Thilo Schulz
a447aa82af
Fix #if macros for idx64 and id386
2011-06-15 14:10:20 +00:00
Thilo Schulz
bb8f40531b
- Fix macro that uses constant float suffix as argument
...
- retval variables in ftola.c must have type long, not int
2011-06-13 10:39:42 +00:00
Thilo Schulz
03201aff22
- Add MASM assembler files for MSVC x64 projects to support vm_x86 in x64 mode
...
- Clean up ftol()/snapvector() mess
- Make use of SSE instructions for ftol()/snapvector() if available
- move ftol/snapvector pure assembler to inline assembler, this will add x86_64 and improve support for different calling conventions
- Set FPU control word at program startup to get consistent behaviour on all platforms
2011-06-13 09:56:39 +00:00
Thilo Schulz
bd2b704c91
OpenBSD compile fixes, patch provided by Jonathan Gray ( #4994 )
2011-06-06 14:59:54 +00:00
Thilo Schulz
698a9c51ec
Fix newlines in Com_Error, patch by Zack Middleton ( #5023 )
2011-06-06 14:51:02 +00:00
Thilo Schulz
71b8fe477d
- Use EmitCallDoSyscall() to call the jump violations function which guarantees 16-byte stack alignment
...
- Add x64 code for MSVC _asm() blocks, not tested yet.
2011-06-06 14:29:45 +00:00
Thilo Schulz
c174143dc2
- Add x86_64 support to vm_x86.c
...
- Fix warning on mingw64
2011-06-01 15:17:18 +00:00
Thilo Schulz
3e229af710
Fix is*() functions for windows where long value is 4 bytes
2011-06-01 01:50:19 +00:00
Thilo Schulz
eedccac818
Fix compilation on mingw64
2011-05-31 20:47:18 +00:00
Thilo Schulz
bd8d60f55c
Add instruction number checks to jumps and calls to SPARC VM, patch by David Miller
2011-05-24 19:46:52 +00:00
Thilo Schulz
4b1418c4ad
- Implement opStack protection: Use register %ebx for scaled indexed addressing mode to access opStack, make opStack push/pop operate on %bl portion only
...
- Add a third pass to VM compilation for computation of jump address offsets, removing the need to dereference into vm->instructionPointers[] for every call/jump
- Make use of 0F opcode prefix relative jumps
- Call Com_Memcpy for OP_BLOCK_COPY
- Fix several missing range checks for vm->dataBase memory access
2011-05-23 00:46:46 +00:00
Thilo Schulz
e08299faf4
- Do assignment of value 0xDEADBEEF after the 4-byte alignment
...
- Add all GPR to clobber list as GCC function callAsmCall seems to change register r11 without saving it to stack first, which may result in SIGSEGV in VM_CallCompiled()
2011-05-23 00:36:27 +00:00
Thilo Schulz
b8ef880d85
I don't seem to get these constraints right. This should fix it
2011-05-19 03:47:35 +00:00
Thilo Schulz
a42239e1e5
Fix VM call for release version, bug introduced by myself in r1994
2011-05-18 16:06:08 +00:00
Thilo Schulz
61d6e6eb68
Use scaled indexing mode n=4 for addressing opStack, this way we can use the 8 bit offset value in %%bl to address an OPSTACK_SIZE of 1024 which was the old value.
2011-05-18 00:17:02 +00:00
Thilo Schulz
3f9ec83ce0
- Use edx for CALLs instead of ecx, as the latter does not require any push to stack
...
- Make Linux AT&T asm code consistent with the MASM codeblock
2011-05-17 12:07:56 +00:00
Thilo Schulz
c7a68bf283
- Set default opStack size to 256
...
- Fix integer wraparound. opStack offset in rbx will always be >= 0
2011-05-16 18:17:01 +00:00
Thilo Schulz
5aa3da2f84
- Fix SEGV in while loop getop() after t = b = 0
...
- Fix iss8, iss16 and iss32 which would not correctly detect 32-bit signed integer range
- Add support for "addb", "subb" etc. assembler mnemonic
- Change opStack protection for x86_64 VM: No overflow checks necessary anymore as offset register is 1 byte long only
2011-05-16 17:55:07 +00:00
Thilo Schulz
01ed417ee1
Optimise VectorNormalize functions, patch by Matt Turner
2011-05-15 14:55:47 +00:00
Thilo Schulz
b003422d92
- Fix lokisetup makefile problems
...
- Bump version number to 1.36
2011-05-15 14:49:38 +00:00
Thilo Schulz
3cdfb7aea8
Refactor and bugfix COM_*Extension functions, patch by DevHC
2011-05-15 14:11:26 +00:00
Thilo Schulz
b509d770a7
- Remove Q_strrchr(), replace with standard, portable strrchr()
...
- Add strrchr() to bg_lib.c, patch by DevHC
2011-05-15 14:08:03 +00:00
Thilo Schulz
3ddc59a3ba
move MIN/MAX definition, use MIN() instead of min(), patch by DevHC
2011-05-15 13:27:24 +00:00
Thilo Schulz
017bc7e5da
- Add vm_x86.c optimization patch by Eugene C.
...
- Remove ASM syntax specific code (AT&T vs MASM) for OP_CALL and replace with machine code
2011-05-15 13:15:14 +00:00
Thilo Schulz
716caf396e
- Reverting accidentally committed vm_x86.c
...
- Last commit contained some refactoring for vm_x86_64.c
2011-05-14 14:39:48 +00:00
Thilo Schulz
30059eb8ce
ensure that ent->classname is always non-null (for entity numbers up to level.num_entities-1, and ENTITYNUM_WORLD and ENTITYNUM_NONE), for player entities and #ENTITYNUM_NONE in particular, patch by DevHC
2011-05-14 14:34:18 +00:00
Thilo Schulz
4cfb7d376b
Ffffuuuuuu I don't even know....
2011-05-14 14:28:31 +00:00
Thilo Schulz
c95bd0a684
Remove newlines from Com_Error message format strings, patch by DevHC
2011-05-12 14:02:48 +00:00
Thilo Schulz
a9696d3558
Refactoring patch by DevHC
2011-05-11 14:21:27 +00:00
Thilo Schulz
9706e6ca29
whoops, that one was not Com_Error()
2011-05-10 10:18:07 +00:00
Thilo Schulz
d0a095396e
- Remove newlines in Com_Error()
...
- Update register description
2011-05-10 10:07:34 +00:00
Thilo Schulz
a7ea395bd0
Add opStack protection to defend against malicious QVMs
2011-05-10 09:14:49 +00:00
Thilo Schulz
5f63ab9160
Choose better alignment for heavy-duty rendering structures, patch by Matt Turner ( #4981 )
2011-05-09 23:39:40 +00:00
Thilo Schulz
36314a1622
Add error handling to malloc as well
2011-05-09 15:40:30 +00:00
Thilo Schulz
876fd7dcb9
- Add HOMEPATH default name define to q_shared.c, patch by uZu ( #4973 )
...
- Reverted change from (#4972 ) and implemented the other suggestion to be consistent with cl_cgame.c and cl_ui.c
2011-05-04 15:39:35 +00:00
Thilo Schulz
d34c6b7e0b
Revert protocol 69 pending further discussion ( #4962 )
2011-04-27 20:17:45 +00:00
Thilo Schulz
a5580d8974
- Harden the client and server protocol against UDP spoofing attacks. This will defend ioquake3 against http://aluigi.altervista.org/papers/q3noclient.txt ( #3041 )
...
- Retains full compatibility to the old but unsecure protocol between clients and servers
- Harden the connection process against DoS attacks, possibly connected to UDP spoofing
2011-04-27 16:03:35 +00:00
Thilo Schulz
a0582fb21a
Fix a little quirk still
2011-04-26 02:32:05 +00:00
Thilo Schulz
797d127dfc
Use memcmp instead of self-built while loop
2011-04-26 02:30:12 +00:00
Thilo Schulz
6a203bc8e9
- Fix data alignment issue with glReadPixel call, reported by Guillaume Bougard ( #4954 )
...
- Fix data alignment issue in raw AVI recording for weird resolutions (like 1366x768)
2011-04-18 16:06:10 +00:00
Tim Angus
52ead6fa36
* Crash recovery for com_pipeFile (Lakitu7)
2011-03-30 21:58:31 +00:00
Ludwig Nussel
1b27ae23c1
include vm_local.h in vm_powerpc_asm.c
...
Patch by Simon McVittie, bug 4930
2011-03-13 16:54:41 +00:00
Thilo Schulz
641256f7f0
strtod exists in bg_lib.c now so Q_isanumber will work in the VMs, too.
2011-03-11 13:51:36 +00:00
Tim Angus
a9830934ba
* Fix misplaced ; in MSVC _vsnprintf wrapper
2011-03-10 22:06:55 +00:00
Thilo Schulz
3bf8ec2dab
( #4925 ) - com_pipefile to create a named pipe for sending commands from other processes, patch by Chris Schwarz
2011-03-10 01:01:27 +00:00
Thilo Schulz
e5cec15fbf
Fix bug where Com_StartupVariable would set CVAR_USER_CREATED on already existing cvars
2011-03-09 22:50:06 +00:00
Thilo Schulz
8c3f320504
( #3767 ) Some protection from malicious qvms - patches and ideas by Amanieu d'Antras and Ben Millwood
2011-03-08 01:39:34 +00:00
Thilo Schulz
c0cca7a0a8
- Fix potential out-of-bounds read in files.c, fix by using new FS_IsExt
...
- Add capability to load demos with com_protocol suffix, partially applied patches from Simon McVittie
- Fix demo loading if protocol number has more digits than 2
- Minor refactoring, replace all occurances of suffix "dm_" with global macro DEMOEXT
2011-03-07 22:08:48 +00:00
Thilo Schulz
fef4d12d68
Refactoring patch by DevHC
2011-03-05 19:20:37 +00:00
Thilo Schulz
21668c0616
Fix systeminfo command, fix by DevHC
2011-03-05 19:11:56 +00:00
Thilo Schulz
0387b8002e
Add cvar "protocol" so user can change protocol version on command line, for standalone games. Most of the patch by Simon McVittie with a few minor modifications by myself
2011-03-05 19:10:23 +00:00
Thilo Schulz
3639108763
Also send empty valued system cvars, fix proposed by DevHC
2011-03-05 19:07:56 +00:00
Thilo Schulz
34e0a6c6f6
Make NET_Sleep wait 1ms less than requested, then busy-wait the last ms for better timeout precision.
2011-02-23 18:09:17 +00:00
Thilo Schulz
ccd24cd647
- Fix unterminated string errors in Q_vsnprintf() on windows. Thanks to Eugene C. for reporting ( #4907 )
...
- Get rid of bigbuffer in Com_sprintf()
- Get rid of Q_snprintf and replace with Com_sprintf()
2011-02-23 16:17:09 +00:00
Thilo Schulz
4dc750aedb
Merge "which" command upstream from Tremulous, patch provided by Chris Schwarz
2011-02-10 23:07:07 +00:00
Thilo Schulz
614f315ce8
Fix console tab autocomplete for exec and condump on pure servers, patch by Zack Middleton
2011-02-10 19:58:20 +00:00
Thilo Schulz
e05c9ad1c2
- Make some string functions in g_cmds.c cleaner, by DevHC
...
- embed VM_FREEBUFFERS() macro in do-while-loop
2011-02-10 18:56:18 +00:00
Thilo Schulz
544a1c0c1a
- Use MAP_FAILED error code for check whether mmap() was successful
...
- Replace various malloc() with Z_Malloc
- Fix several memory leaks when VM compilation failed and Com_Error is called
- Make failed mmap/VirtualAlloc/malloc calls fatal
2011-02-10 18:45:28 +00:00
Zachary Slater
5e0d0efd2e
http://www.angryflower.com/aposter.html
...
(minor English issues, most of which are via /dev/humancontroller)
2011-02-09 05:51:33 +00:00
Thilo Schulz
3b40467599
Finally fix missionpack compiling for STANDALONE=1, yes, this is tested.
2011-02-09 00:42:54 +00:00
Thilo Schulz
956c9a262a
First batch of getting replacing malloc() with Z_Malloc
2011-02-09 00:02:42 +00:00
Thilo Schulz
eb11388cac
Fix STANDALONE in files.c
2011-02-08 20:27:49 +00:00
Thilo Schulz
2d2bdea553
Cleanup STANDALONE
2011-02-08 19:51:43 +00:00
Thilo Schulz
2b52867b74
Code cleanup patch by devhc
2011-02-08 18:19:31 +00:00
Thilo Schulz
48b03a035b
Ok, getifaddrs() is not POSIX compliant. Fix #3984 as suggested by Vincent Cojot
2011-02-07 05:20:31 +00:00
Thilo Schulz
1d2d67cdde
strdup still not accepted by some systems. *sigh*.
2011-02-07 03:56:15 +00:00
Thilo Schulz
0e6427f3ff
- Hopefully fix ( #3984 ) compiler errors on Solaris while not introducing too many new ones on the other platforms
...
- With _BSD_SOURCE now explicitly defined bring back strdup to vm_x86_64_assembler.c
2011-02-06 20:26:18 +00:00
Thilo Schulz
7bb5906599
Patch by Simon McVittie to improve dynamic library loading ( #4700 )
2011-02-04 17:47:57 +00:00
Thilo Schulz
d2f8b9f4bb
Support GNU/kFreeBSD, patch by Cyril Brulebois. Thanks.
2011-02-04 17:31:12 +00:00
Thilo Schulz
e66abb3237
- Add support for linearly desaturating images via r_greyscale
...
- Use correct luminance values for rendering textures
Patch submitted by Forrest Voight.
2011-02-04 16:04:37 +00:00
Thilo Schulz
2cddb3e0ea
https://bugzilla.icculus.org/show_bug.cgi?id=4460
2011-02-04 13:43:41 +00:00