Commit graph

706 commits

Author SHA1 Message Date
Adam Olsen
5c299b0b85 - fix a missing space in net_packetlog's output for svc_qwsound
- make entity remapping for baseline entities permanent.  (atleast for
  0 through 255.  don't want to make ALL mappings permanent)
2001-12-21 18:22:56 +00:00
Adam Olsen
417bf41353 - whoops, forgot to add this file. kinda important :) 2001-12-21 14:09:34 +00:00
Adam Olsen
4e45592439 - remove an extra NET_Init prototype
- add MAX_NET_EDICTS and MAX_NET_EDICTS_MASK defines, which are 512
  and 511 respectively
- change baselines to access the array directly, rather than through
  the entity's "data" field
- cleanup SV_ReliableSVC_Emit
- add entity remapping.  the entity number used internally in the
  server no longer matches the number sent to the client, and it
  releases the mapping after 10 seconds of inuse, so there's no
  "512 entity limit" anymore.  Still the MAX_EDICTS limit though,
  which is currently 768, but it can probably be defined to something
  much higher without any trouble.
2001-12-21 07:39:49 +00:00
Adam Olsen
a7687a7fda - tweak the description string for cl_timeframes
- when getting a new connection request and searching for matching
  connections, treat cs_zombie the same as cs_free (ignore it), so
  that we don't attempt to drop it twice.
2001-12-12 13:31:04 +00:00
Adam Olsen
93bd170770 - add some comments to SV_ReliableSVC_Emit
- don't push back the backbuffer if it's got max buffers already
2001-12-09 09:40:53 +00:00
Adam Olsen
24529530f3 - fix printing of Host_NetError message
- fix downloading of files >65535 in size
2001-12-06 08:51:17 +00:00
Adam Olsen
8fd46ab578 - parse A2A_ACK in with normal connectionless packets
- only parse A2A_ACK packets missing the connectionless prefix if the
  packet is 1 or 2 bytes long.  if longer it gets treated as a normal
  sequenced packet

The packetloss on localhost bug (except during connect) is now gone. :)
2001-12-06 07:20:32 +00:00
Adam Olsen
12cb517f84 - change the pr_gc_interval default to 600, which at 20fps
(serverside) is 30 seconds
2001-12-05 20:03:52 +00:00
Adam Olsen
3fdad3ce45 - make SV_ReliableSVC_Emit mark overflowed clients as such, and die if
we ever giet a NET_ERROR
- fix the baselines so all entities have the QSG2 extensions (alpha,
  scale, etc) inited, instead of just the entities that the map
  started with
- make the server not include empty deltas in a
  svc_deltapacketentities for updated entities
- change a silly for (; foo;) to while (foo)
2001-12-05 15:41:25 +00:00
Adam Olsen
f646786bf5 oops, should be calling NET_CLC_Emit for clc_delta, not NET_SVC_Emit.
Misty, this could be a big factor in your packet loss issues, since it
prevented any deltas from happening.
2001-12-05 10:54:59 +00:00
Adam Olsen
6b10cb7c4b - revert the early-out "optimizations", since they were found to not
actually work.
2001-12-05 08:03:50 +00:00
Adam Olsen
2ac69ccae0 - revert the cast, since I didn't do it properly, and taniwha seems
intent on removing the check anyway.
2001-11-29 07:12:03 +00:00
Adam Olsen
0688e3a197 - cast cls.qport to (unsigned short) when passing to networking, so it
doesn't trigger PARANOID in msg.c
2001-11-29 06:54:38 +00:00
Adam Olsen
74e074bbef - fix the broken failsafe in CL_EntityState_Copy 2001-11-29 00:23:33 +00:00
Adam Olsen
01e6e14230 - add some early-out optimizations 2001-11-29 00:01:50 +00:00
Adam Olsen
980fd84300 - make NET_SVC_Delta_* static inline
- fix handling of sv_maxrate > 10000
- make SV_ExtractFromUserInfo only update netchan.rate when the rate
  is changed
- make SV_ExtractFromUserInfo use if (*val) instead of if
  (strlen(val))
2001-11-28 21:33:41 +00:00
Adam Olsen
7f10b0f237 - split net_clc.h into net_clc.h and net_clc_qw.h
- move clc_t into net_clc.h from net_protocol.h
- split packet processing stuff from net.h into net_packet.h
- add a is_server arg to Log_{Incoming,Outgoing}_Packet, so libs/net is
  oblivious to if we're running a server or not (except with the arg,
  obviously)
- remove the long obsolete (even in original quake) svc_spawnbinary
  stuff
- make nq use QF/net_svc.h
- make nq link to libQFnet too
- make qw's cl_parse.c use net_svc_qw_any_t instead of net_svc_any_t
2001-11-18 11:39:12 +00:00
Adam Olsen
2994824bc6 - convert MSG_Write to the same overflow checking MSG_Read uses, so
errors can be handled
- add a MSG_ReadBlock and MSG_WriteBlock, which write arbitrary
- add a MSG_PeekByte, although I never actually used it..
- canonicalize the svc's, so that if qw and nq have a svc with the
  same name but different contents, they get different names
- add all the nq stuff to svc_t, so it has both nq and qw.  fun enum
  that :)
- fix all the sizebuf_t usages so they init all the fields properly
- move qw's net_svc.c, net_clc.c, net_packetlog.c, and msg_ucmd.c
  (renamed to net_ucmd.c) into libs/net
- move headers for the above in include/QF
- convert remaining clc bits to NET_CLC (I think I got them all)
- I split net_svc into net_svc_common and net_svc_qw too, in
  preperation for adding nq
- moved movevars_t into "QF/net_svc_qw.h", from pmove.h
- made the CL_Parse* functions in qw get the net_svc_*_t as a param,
  instead of parsing themselves
- use a jumptable for CL_Parse*
- probably other machinates I've forgotten
- and of course, probably added numerous bugs :)
2001-11-10 23:52:35 +00:00
Bill Currie
edb540cd6e This completes the move of the networking code to its own branch allowing
two conflicting developement tracks to better co-exist. To work on this brance,
use "cvs up -r net_svc" and then update and commit as normal: committing to
the branche will be automatic once the branch is checked out.

Again: cvs up -r net_svc
2001-11-07 08:31:04 +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
Brian Koropoff
ccd665e80c This commit removes maplist.c and replaces it with filelist.c, which
contains general functions for creating lists of a type of file and
provides the commands maplist, skinlist, skyboxlist, and demolist.
2001-11-06 07:14:29 +00:00
Bill Currie
42f8b98f27 win32 compile fix 2001-11-06 04:44:26 +00:00
Bill Currie
15b381909e move maplist from quakefs.c to console/maplist.c. Unfortunatly, until the
client console plugin is usable, this means the clients link maplist.o
directly.
2001-11-05 22:24:16 +00:00
Adam Olsen
e0dfa2b453 - convert ALL the remaining svc's on the client. woot, hehe 2001-11-05 20:13:27 +00:00
Bill Currie
54ddb94132 urk, I forgot Info_ParseString uses Hunk_TempAlloc :/ 2001-11-05 17:19:26 +00:00
Bill Currie
6c2145f9b5 make work with the new info api and fix what looks to be a malloc bug 2001-11-05 17:09:27 +00:00
Bill Currie
b286afc7f7 don't install skin_stencil.h 2001-11-05 16:22:03 +00:00
Adam Olsen
ded1b4c057 - add some missing boundschecking to CDAudio_Play's track remap (in
specific plugins only)
- convert updateping, updatepl, updateentertime, updatestat,
  updatestatlong, cdtrack intermission, finale, muzzleflashchokecount,
  maxspeed, entgravity, and setpause on the client.  Can you say all
  that in one breath? :)
2001-11-05 16:17:45 +00:00
Adam Olsen
d693bc27ff - merge the svc_strings arrays for cl_parse.c and net_packetlog.c into
net_svc.c, and add add a NET_SVC_GetString function to access it.
  As an added bonus, it actually boundschecks it!
- preexpand that annoying SHOWNET macro, which was only used twice,
  and was quite small and pointless
- whitespace cleanup and a comment typo fix
2001-11-05 07:53:03 +00:00
Brian Koropoff
008b59b777 The beginnings of an f_* reply system have been added. f_version works
like normal, f_skins reports the average percent fullbright for all loaded
skins, and f_skins skinname reports the fullbright percent for a signle
skin.  cl_freply controls the time in seconds before another query can be
made.  Set it to 0 to disable them.  More queries will be added later.
The table for accessing special characters from the console has been
tweaked a bit.  Expect it to get tweaked more in the future.
2001-11-05 07:23:51 +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
ac93a620d7 remove instead of set "" info keys for localinfo 2001-11-05 02:03:37 +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
Adam Olsen
87a0a4d7d6 - a TODO item
- converted svc_packetentities and svc_deltapacketentities
- added some convenience defines for U_foo grouping
- tweaked Host_NetError's "please report this" print, but it still
  doesn't work
2001-11-04 21:23:22 +00:00
Bill Currie
7c5c53774f cache some info strings (team and skin from client user info) and values
(no_pogo_stick and teamplay from server info) to cut down on the calls to
Info_ValueForKey (from over 550k to 23.5k in spam2.qwd).
2001-11-04 19:06:50 +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
c5f4af0109 - convert svc_playerinfo, cvs_nails, svc_modellist, and svc_soundlist 2001-11-03 10:48:55 +00:00
Bill Currie
6daf712d5f turns out the server can send MAX_MSGLEN + 8 bytes, so handle this when
reading demo packets.
2001-11-03 00:54:18 +00:00
Bill Currie
e1e56c417d Host_NetError is not appropriate for an oversize packet as that packet's data
has not yet been read.
2001-11-02 23:57:22 +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
9f088567d1 - convert svc_sound, svc_spawnbaseline, svc_spawnstatic, and
svc_tempentity

there isn't actually anything in the server that uses svc_tempentity,
only the progs do, so it's currently unused.
2001-11-02 10:40:20 +00:00
Adam Olsen
a77619f665 - convert svc_damage and svc_serverdata emitting 2001-11-02 08:10:41 +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
f9ab09356e - make nails, soundlist, and modellist return NET_ERROR when there's
too many items in the block
2001-11-02 06:39:51 +00:00
Adam Olsen
1c30d89149 - add a net_status_t enum, containing NET_OK, NET_SHORT, and
NET_ERROR.
- change all the NET_SVC_*_Parse return values from qboolean to
  net_status_t
- make NET_SVC_{,Delta}PacketEntities_Parse return NET_ERROR instead
  of 1 (NET_SHORT now) if the struct size is exceeded
2001-11-02 06:00:21 +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
Adam Olsen
2bbb759232 - change the sv_kickfake default to 0, so it replaces \r with #
instead of kicking
2001-10-31 00:30:31 +00:00
Ragnvald Maartmann-Moe IV
c174188c0c Remove local len, use mathlib's Length, among other cleanups. 2001-10-30 20:00:05 +00:00