Commit graph

90 commits

Author SHA1 Message Date
Bill Currie
5c2a17f7a8 the /much/ better fix for the server crashing when dropping a client 2002-01-14 17:41:38 +00:00
Bill Currie
86d05b1df0 heh, they already got dropped (zombie packets). Turns out the problem was
SV_DropClient not aborting processing of a client packet, so do the evilness
of using setjmp/longjmp to do so.
2001-12-15 04:58:16 +00:00
Bill Currie
cac001e035 zombied connections get their packets dropped on the floor 2001-12-15 04:13:56 +00:00
Bill Currie
69e1a9aab5 bah, installed headers made my compile tests fail 2001-12-13 22:56:43 +00:00
Bill Currie
650d682d2c fix some nasty security holes causes by oversized connection strings. slows
down overkill slightly :/
2001-12-03 21:06:57 +00:00
Bill Currie
a619739bab fix the server console for static builds (hmm, non-curses only?) 2001-12-02 20:11:21 +00:00
Bill Currie
06622fa164 -mem now also works as a cvar (and there was much rejoycing:). sv_mem_size
(server) and cl_mem_size (client), in megabytes (ie, same as -mem). I haven't
done nq yet as I'm uncertain what to /call/ it :)
2001-11-14 20:18:37 +00:00
Bill Currie
e435414b4b fix a case where the userinfo is 0 that I was not expecting. This fixes the
crash on reconnect
2001-11-10 22:55:10 +00:00
Bill Currie
c5aec15569 This prepares for moving the net_svc code to a branch allowing both network
code cleanups and general performance work to be developed in relative peace.
While cleaning up the networking code /is/ important, fixing QF's perfomance
issues is of much higher priority.
2001-11-07 08:24:56 +00:00
Bill Currie
f91abcb3d5 fix the default for cmd_warncmd for the server 2001-11-05 02:15:30 +00:00
Bill Currie
c443e2c024 info.c:
support unlimited info strings when maxsize is 0
sv_main.c:
	make localinfo unlimited
2001-11-05 02:08:20 +00:00
Bill Currie
bf4570de72 fix some reversed logic that caused the server to send the wrong info keys
to a connecting client.
2001-11-04 23:02:43 +00:00
Bill Currie
dcd9b0040e rewrite the info strings to use hash tables instead of a static string.
This required changes to the api (info_t instead of char *) but should be
a net gain in speed (not a lot, admittedly: it was pretty fast to begin
with, but this paves the way for some other changes I have in mind).
2001-11-04 07:50:39 +00:00
Adam Olsen
d7e5f88ee3 - conver svc_spawnstaticsound, svc_updateuserinfo, svc_setinfo,
svc_serverinfo, and svc_download

I havn't tested svc_download, since I don't want to play with having
seperate dirs for the client vs server on one computer.
2001-11-02 14:52:29 +00:00
Adam Olsen
56f1d6f49b Begin phase 2 :)
- link net_svc.c to the server
- add a NET_SVC_Print_Emit function
- make the server use the above instead of svc_print manually

It's actually kind of ugly, because of how backbuffers are
implimented.  Hopefully I'll be able to clean that up later.
2001-11-02 07:32:19 +00:00
Adam Olsen
c79294f57d - consider ':' and '"' to be special characters in names, just in case
- make sure to update the infostrings if they tried changing a name
  and it was the same after sanitizing
2001-10-31 03:05:59 +00:00
Adam Olsen
388c3a78ee - fix handling of highbit whitespace in names, as well as stripping
all highbits from names
2001-10-31 02:18:09 +00:00
Bill Currie
85c9e0ab1e more externs cleaned up 2001-10-29 17:46:03 +00:00
Bill Currie
78a3e398d5 * taniwha gets medieval on extern 2001-10-28 04:23:37 +00:00
Bill Currie
d62c381262 Con_Printf -> SV_Printf for some cases that should be 2001-10-27 22:33:42 +00:00
Bill Currie
6c0d760102 msg.h:
give mst_t a buffer to hold unterminated message strings
	kill MSG_ReadStaticString and MSG_ReadStringLine
msg.c:
	kill MSG_ReadStaticString and MSG_ReadStringLine
	MSG_ReadString: implement the buffer for unterminated message strings
	and update readcount on badread
cl_main.c:
	go back to MSG_ReadString and fix up the resulting const char * issues
cl_parse.c:
	rewrite the cl_mofake code all because of an uninitialized variable :)
sv_main.c:
	use MSG_ReadString instead of MSG_ReadStringLine because
	Cmd_TokenizeString really doesn't care about a terminating \n
2001-10-18 06:23:26 +00:00
Bill Currie
f9fcf2f09f freebsd fixes 2001-10-17 18:49:25 +00:00
Adam Olsen
9f7e1f864e - add a pr_double_remove cvar, that either ignores (0), warns about
(1), or causes a fatal error (2) when the progs remove an already
  removed entity.  default is 1.
- fix a segfault in FFnickFF parsing that causes a segfault
2001-10-09 22:47:14 +00:00
Adam Olsen
0785610296 - fix a little mistake in SV_PrintToClient that'd cause it to
segfault if your first call was with "".  Probably could cause
  crashes too
- add a string.c file to libQFutil, with a Q_strcasestr function,
  which strcasestr is defined to if it's not already defined.  (we'd
  get that with glibc if we defined __USE_GNU, but we don't)
- make client_t and SV_ExtractFromUserinfo both use NAME_MAX for
  their name arrays, instead of 32 for one and 80 for the other
- rewrite almost all of SV_ExtractFromUserinfo's name handling.
  - \r, \n, and \t are all converted to spaces
  - leading/trailing spaces are stripped
  - consecutive spaces are reduced to a single space
  - empty names are considered bad
  - user-* nicks are considered bad (unless forced to them)
  - a name containing console or admin is considered bad
  - a name that already exists is considered bad
  - if they have a bad name it gets forced to user-%d, where %d is
    their userid
  - netname in the progs is now updated properly
  - name changes are always reported unless it's the initial setting,
    rather than only if they're full connected and not a spectator
  - finally, if the name change fails (info string exceeded), give
    them the boot.  (before this was only done for duplicate names)

That's about it :)
2001-10-04 19:11:39 +00:00
Bill Currie
b1f4a778f9 the rcsid commit from hell }:> 2001-09-28 06:26:31 +00:00
Bill Currie
06da30ac89 mingw build fixes again (including mostly working in sid: got some link issues) 2001-09-25 06:18:30 +00:00
Bill Currie
36de3c147e move Sys_Quit and Sys_Error totally into libQFutil. They will call a list
of pre-registered (Sys_RegisterShutdown) function before actually exiting
the program. This should take care of the pain when an ncurses server
crashes.
2001-09-24 21:00:23 +00:00
Bill Currie
0425afb190 'rcon localinfo motd "hi there"' now works 2001-09-22 02:24:46 +00:00
Bill Currie
49a85718f8 total nukage of Con_*Printf calls from libs (except for video). Sys_*Printf
(Sys_DPrintf is new) is now used exclusively for all lib printing. Con_Init
sets the sys printf recirection to Con_Print (which has been revamped
appropriatly) and the server sets it to SV_Print (which was SV_Printf and
the new SV_Printf calls /it/). This should fix the rcon print redirection
issues.
2001-09-21 04:22:46 +00:00
Bill Currie
4416404982 total nukage of Sys_Printf calls in the client and server source. this paves
the way for libQFutil using Sys_Printf exlusively.
2001-09-21 03:01:14 +00:00
Adam Olsen
bff5a4b4b4 make "Client foo connected" be a normal print instead of a dprint, and
make both that and spectator prints include the ip.
2001-09-20 19:50:24 +00:00
Adam Olsen
ca51e3be02 - cleanup of up/down key handling, as per suggestions from james
- add a sv_console_plugin cvar (guess what it does)
2001-09-20 15:14:44 +00:00
Adam Olsen
0977b555f3 - build fix for without curses (untested, but should fix the problem I
had when I last tried)
- fix sv_filter_automask so it's not inverted (doh, again!)
- cleanups of ip filter prints
2001-09-20 06:51:25 +00:00
Adam Olsen
780cc26b37 - add a sv_filter_automask cvar to automatically get /16 for 1.2.0.0
- update writeip to include filter types.  It makes them all permanent
  though, since addip can't take an absolute expiration time :/
2001-09-19 12:58:02 +00:00
Adam Olsen
8f4d39002c - add support for ipv4 embedded in ipv6 addresses. filtering should
now be fully functional for ipv6.  I really oughta test ipv6 sooner
  or later ;)
2001-09-17 07:31:15 +00:00
Adam Olsen
d77fcc8695 - fix /0 and /9 masks to not give an error
- consolidate some duplicate code into SV_PrintIP, which returns a
  readable ip address allocated from a static buffer
- remove some debugging prints (addip is now silent on success)
2001-09-17 06:10:39 +00:00
Adam Olsen
de716f07e7 - fix an off by one error with implicit masks
- don't attempt to ban/mute/cuff non-existant clients :)
2001-09-17 05:41:17 +00:00
Adam Olsen
dcbc9ada26 - rework the parser to regain support for 1.2 ips. No longer uses
inet_pton for ipv4.

These are untested (other than compiling), as I've got issues with the
console I need to sort out.
2001-09-17 05:08:13 +00:00
Adam Olsen
f90fcf855e Massive cleanups of ip filtering
- addip now supports a ban time, and a ban/cuff/mute paramter
- addresses now can have /8 for the mask, instead of it being implicit
- removes support for 1.2 which meant 1.2.0.0/16.  use 1.2.0.0/16 or
  1.2.0.0 (implies a /16)
- ipv6 should mostly be supported, but there's a few places that
  aren't finished.  currently gives a compile error

(it WAS working, but now I cvs up'd and I gotta wait for a long test
build.  I don't feel like waiting any longer)
2001-09-16 15:40:21 +00:00
Bill Currie
aade80a8d7 /finally/, libQFconsole is being used (qw-server only so far). Still has
some minor nits with ncurses and probably has some isues without ncurses
(quit didn't seem to work when I tried).
2001-09-16 05:41:28 +00:00
Bill Currie
e27878e156 bring forward the sv_extentions and stdver changes from 0.3 2001-09-11 03:50:24 +00:00
Bill Currie
74e9f89e8c forward port the client info string filtering from 0.3 and remove info.h from
a couple of c files that no longer need it.
2001-09-11 03:10:29 +00:00
Bill Currie
882adf295a implement KK's ban, mute and cuff 2001-09-09 04:51:08 +00:00
Ragnvald Maartmann-Moe IV
f4fd3178f4 More header and whitespace horror reduction. 2001-08-28 02:43:24 +00:00
Bill Currie
330044ec72 don't need sv_misc anymore 2001-08-27 22:36:28 +00:00
Adam Olsen
770fecd4bc Replace sv_gc with pr_gc and pr_gc_interval. pr_gc has 0 for off, 1
for on, and 2 for auto (on for newer progs, off otherwise).
2001-08-20 21:06:25 +00:00
Bill Currie
fb42199637 change all the SVFIELD calls to SVtype. this should make the code a little
easier to read.
2001-08-08 20:28:53 +00:00
Adam Olsen
513347effd Fix that classic "playing without joining a team" TF cheat :) 2001-08-01 00:38:16 +00:00
Bill Currie
fb26d8b18a make Info_Set* take flags indicating wether funchars should be stripped or not 2001-07-31 18:27:49 +00:00
Adam Olsen
2f223924f4 Add a set of "crudefile" file io functions. Reads or writes an
entire C string (including terminating nul).  Read the source for
more details :)
2001-07-22 19:03:26 +00:00