ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/include/network.h
Revision 1.38 - (view) (download) (annotate) - [select for diffs]
Wed Dec 5 21:18:37 2018 UTC (5 years, 5 months ago) by root
Branch: MAIN
CVS Tags: HEAD
Changes since 1.37: +1 -1 lines
Diff to previous 1.37
nuke compiler.h

Revision 1.37 - (view) (download) (annotate) - [select for diffs]
Sat Nov 17 23:33:18 2018 UTC (5 years, 5 months ago) by root
Branch: MAIN
Changes since 1.36: +1 -1 lines
Diff to previous 1.36
*** empty log message ***

Revision 1.36 - (view) (download) (annotate) - [select for diffs]
Wed Nov 14 23:24:27 2018 UTC (5 years, 5 months ago) by root
Branch: MAIN
Changes since 1.35: +13 -29 lines
Diff to previous 1.35
c++17

Revision 1.35 - (view) (download) (annotate) - [select for diffs]
Sun Jan 29 02:47:05 2017 UTC (7 years, 3 months ago) by root
Branch: MAIN
Changes since 1.34: +1 -1 lines
Diff to previous 1.34
remove eol whitespace

Revision 1.34 - (view) (download) (annotate) - [select for diffs]
Wed Nov 16 23:42:00 2016 UTC (7 years, 5 months ago) by root
Branch: MAIN
Changes since 1.33: +1 -1 lines
Diff to previous 1.33
copyright update 2016

Revision 1.33 - (view) (download) (annotate) - [select for diffs]
Mon Oct 29 23:55:53 2012 UTC (11 years, 6 months ago) by root
Branch: MAIN
CVS Tags: rel-3_1
Changes since 1.32: +5 -5 lines
Diff to previous 1.32
trailing space removal

Revision 1.32 - (view) (download) (annotate) - [select for diffs]
Tue Jan 3 11:25:32 2012 UTC (12 years, 4 months ago) by root
Branch: MAIN
Changes since 1.31: +1 -1 lines
Diff to previous 1.31
update copyrights to 2012

Revision 1.31 - (view) (download) (annotate) - [select for diffs]
Sat Apr 23 04:56:49 2011 UTC (13 years ago) by root
Branch: MAIN
Changes since 1.30: +1 -1 lines
Diff to previous 1.30
update copyright to 2011

Revision 1.30 - (view) (download) (annotate) - [select for diffs]
Thu Apr 15 00:36:51 2010 UTC (14 years, 1 month ago) by root
Branch: MAIN
CVS Tags: rel-3_0
Changes since 1.29: +0 -16 lines
Diff to previous 1.29
*** empty log message ***

Revision 1.29 - (view) (download) (annotate) - [select for diffs]
Fri Mar 26 01:04:44 2010 UTC (14 years, 1 month ago) by root
Branch: MAIN
Changes since 1.28: +1 -1 lines
Diff to previous 1.28
update copyright for up to 2010

Revision 1.28 - (view) (download) (annotate) - [select for diffs]
Fri Mar 26 00:59:21 2010 UTC (14 years, 1 month ago) by root
Branch: MAIN
Changes since 1.27: +2 -2 lines
Diff to previous 1.27
remove bogus 2007 copyright that was added wrongly by the script, update to affero license

Revision 1.27 - (view) (download) (annotate) - [select for diffs]
Mon Mar 22 00:56:57 2010 UTC (14 years, 1 month ago) by root
Branch: MAIN
Changes since 1.26: +1 -1 lines
Diff to previous 1.26
*** empty log message ***

Revision 1.26 - (view) (download) (annotate) - [select for diffs]
Sat Nov 7 18:30:05 2009 UTC (14 years, 6 months ago) by root
Branch: MAIN
CVS Tags: rel-2_92, rel-2_93
Changes since 1.25: +3 -2 lines
Diff to previous 1.25
lots of cleanups

Revision 1.25 - (view) (download) (annotate) - [select for diffs]
Thu Nov 5 15:57:16 2009 UTC (14 years, 6 months ago) by root
Branch: MAIN
CVS Tags: rel-2_90
Changes since 1.24: +5 -0 lines
Diff to previous 1.24
mark gpl sections, include/

Revision 1.24 - (view) (download) (annotate) - [select for diffs]
Mon Oct 12 14:00:58 2009 UTC (14 years, 7 months ago) by root
Branch: MAIN
CVS Tags: rel-2_81, rel-2_82
Changes since 1.23: +7 -6 lines
Diff to previous 1.23
clarify license

Revision 1.23 - (view) (download) (annotate) - [select for diffs]
Thu Jan 1 19:42:43 2009 UTC (15 years, 4 months ago) by root
Branch: MAIN
CVS Tags: rel-2_75, rel-2_76, rel-2_77, rel-2_78, rel-2_79, rel-2_80
Changes since 1.22: +4 -4 lines
Diff to previous 1.22
*** empty log message ***

Revision 1.22 - (view) (download) (annotate) - [select for diffs]
Mon Sep 8 11:27:25 2008 UTC (15 years, 8 months ago) by root
Branch: MAIN
CVS Tags: rel-2_71, rel-2_72, rel-2_73, rel-2_74
Changes since 1.21: +3 -0 lines
Diff to previous 1.21
*** empty log message ***

Revision 1.21 - (view) (download) (annotate) - [select for diffs]
Tue May 6 16:55:26 2008 UTC (16 years ago) by root
Branch: MAIN
CVS Tags: rel-2_54, rel-2_55, rel-2_56, rel-2_6, rel-2_61, rel-2_7
Changes since 1.20: +1 -1 lines
Diff to previous 1.20
update copyright

Revision 1.20 - (view) (download) (annotate) - [select for diffs]
Thu Nov 8 19:43:24 2007 UTC (16 years, 6 months ago) by root
Branch: MAIN
CVS Tags: rel-2_32, rel-2_4, rel-2_41, rel-2_42, rel-2_43, rel-2_5, rel-2_52, rel-2_53
Changes since 1.19: +4 -4 lines
Diff to previous 1.19
update copyrights and other minor stuff to deliantra

Revision 1.19 - (view) (download) (annotate) - [select for diffs]
Sun Sep 30 20:22:18 2007 UTC (16 years, 7 months ago) by root
Branch: MAIN
CVS Tags: rel-2_3
Changes since 1.18: +1 -1 lines
Diff to previous 1.18
- clean up message system, combine all boxes into one.
- suppress too long messages (we need a more robust solution to this problem).
- get rid of INS_MAP_LOAD, leading to slightly cleaner/faster code
  and certainly one special case less.
- insert objects manually at load time, this is both faster and also more
  correct, as loading a map is never supposed to trigger anything (and
  also for symmetry to the save code).

Revision 1.18 - (view) (download) (annotate) - [select for diffs]
Thu Aug 16 06:36:56 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
CVS Tags: rel-2_2
Changes since 1.17: +0 -39 lines
Diff to previous 1.17
first, untested, try at spicing up the message system

Revision 1.17 - (view) (download) (annotate) - [select for diffs]
Sun Jul 29 19:11:47 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.16: +3 -3 lines
Diff to previous 1.16
replace MAXSOCKBUF by MAXSOCKBUF-1, the real socket buffer size, and adjust it to 10239, the actual maximum gcfclient supports

Revision 1.16 - (view) (download) (annotate) - [select for diffs]
Sun Jul 29 02:24:34 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.15: +9 -0 lines
Diff to previous 1.15
implement the most elaborate rate limit system to date, from the errors before:

- output-rate is now an upper bound only. its purpose is to give the user
  some control over bandwith use. it should be set too high rather than too low.
- the server will (on linux only, or systems that support tcpi), guess
  how much the kernel is willing to send without delay (this is imperfect as
  we do not know the remote receive window, but we assume its "large enough").
- we accuretyl measure mss and ensure that preferably mss-sized packets
  leave the server, by sending less in some cases and more in others
  to reacht eh desired bandwidth goal
  (e.g. 15000 == http://ue.tst.eu/545350740128735b13aaf541c88bfaf2.txt)

the net effect is that the server will never send (much) more data than the kernel
thinks the network is able to handle. that is, when the connection was idle for a time
and the congestion window is small, we will only start sending small amounts of
data, prompting the kernel to accuratly model the bandwidth.

in essence, this creates a tcp stream that never has more data buffered
than neccessary for in-flight data, ensuring that we can get low-latency
map updates through to the client whole using all excess bandwidth the
network can handle.

I mostly tested with netem, e.g.

   ifconfig lo mtu 1500
   tc qdisc change dev lo root netem delay 190ms 10ms drop 0.1

gave me roughtly 20kb/s throughput even though output-rate was 100kb/s,
without stalling the conenction even when downloading backgorund music and
other large chunks of data.

Revision 1.15 - (view) (download) (annotate) - [select for diffs]
Sat Jul 28 12:02:58 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.14: +8 -4 lines
Diff to previous 1.14
- remote code was not making copies of strings it modified
- implemented two ew flags: NDI_REPLY and NDI_DEF.
- went over a lot of chat-related code and converted to send_msg,
  NDI_REPLY and NDI_DEF.

Revision 1.14 - (view) (download) (annotate) - [select for diffs]
Sun Jul 1 05:00:18 2007 UTC (16 years, 10 months ago) by root
Branch: MAIN
Changes since 1.13: +11 -12 lines
Diff to previous 1.13
- upgrade crossfire trt to the GPL version 3 (hopefully correctly).
- add a single file covered by the GNU Affero General Public License
  (which is not yet released, so I used the current draft, which is
  legally a bit wavy, but its likely better than nothing as it expresses
  direct intent by the authors, and we can upgrade as soon as it has been
  released).
  * this should ensure availability of source code for the server at least
    and hopefully also archetypes and maps even when modified versions
    are not being distributed, in accordance of section 13 of the agplv3.

Revision 1.13 - (view) (download) (annotate) - [select for diffs]
Sat Jun 9 22:54:03 2007 UTC (16 years, 11 months ago) by root
Branch: MAIN
Changes since 1.12: +0 -10 lines
Diff to previous 1.12
- introduce global NOW variable storing current tick time.
- force some packet send at least every 2 seconds, forcing
  an ack reply.
- timeout connections on ack delay exclusively, by default disconnect
  after 8 seconds (allowing for at least 5.5s of network hiccups).
  (linux only, should port to bsds).
- nuke ericserver stats code.
- reduce number of syscalls (less gettimeofday, only get tcp_info
  about once/second).
- get rid of coroapi.time () in favour of now ().

Revision 1.12 - (view) (download) (annotate) - [select for diffs]
Mon May 28 21:15:56 2007 UTC (16 years, 11 months ago) by root
Branch: MAIN
Changes since 1.11: +17 -17 lines
Diff to previous 1.11
- update copyrights in .h files, where applicable
- rename preprocess to genkeywords

Revision 1.11 - (view) (download) (annotate) - [select for diffs]
Mon Apr 23 19:10:17 2007 UTC (17 years ago) by root
Branch: MAIN
CVS Tags: rel-2_1
Changes since 1.10: +1 -0 lines
Diff to previous 1.10
implement ex command support to quickly retrieve item descriptions

Revision 1.10 - (view) (download) (annotate) - [select for diffs]
Tue Apr 10 09:35:23 2007 UTC (17 years, 1 month ago) by root
Branch: MAIN
Changes since 1.9: +1 -0 lines
Diff to previous 1.9
- implement smoothing in the fxix (or better: fxixsx) protocol.
- this *enforces* that smoothing is *per face* and not *per archetype*.
- no extra bandwidth is needed for map information (unlike in the
  crossfire 1.x protocol, where smoothlevels are per-mapspace
  and take up a lot of bandwidth).
- no extra storage is required on the client-side (although smoothing
  for cached map data is then only available for tiles that have been seen).
- temporarily supply empty_S.x11 smoothfaces again, as this hack is required
  because there is no way to specify a smoothlevel but no smoothface
  otherwise. this should be optimised away at a future point, but this
  will break gcfclient (but disabling smoothing for that might be a good
  compromise).

Revision 1.9 - (view) (download) (annotate) - [select for diffs]
Mon Apr 2 19:56:11 2007 UTC (17 years, 1 month ago) by root
Branch: MAIN
Changes since 1.8: +9 -0 lines
Diff to previous 1.8
add untested ber integer encoding function

Revision 1.8 - (view) (download) (annotate) - [select for diffs]
Mon Jan 15 21:06:19 2007 UTC (17 years, 4 months ago) by pippijn
Branch: MAIN
CVS Tags: rel-2_0
Changes since 1.7: +22 -22 lines
Diff to previous 1.7
comments

Revision 1.7 - (view) (download) (annotate) - [select for diffs]
Sat Jan 6 14:42:30 2007 UTC (17 years, 4 months ago) by pippijn
Branch: MAIN
Changes since 1.6: +2 -2 lines
Diff to previous 1.6
added some copyrights

Revision 1.6 - (view) (download) (annotate) - [select for diffs]
Fri Dec 22 02:04:20 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.5: +1 -8 lines
Diff to previous 1.5
- misc stuff
- implement $client->query

Revision 1.5 - (view) (download) (annotate) - [select for diffs]
Wed Dec 20 01:19:11 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.4: +6 -1 lines
Diff to previous 1.4
some source simplification

Revision 1.4 - (view) (download) (annotate) - [select for diffs]
Sat Dec 16 03:08:26 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.3: +13 -3 lines
Diff to previous 1.3
- socket i/o is completely asynchronous now
- some command sare handled immediately
- others (most palying related commands) are queued
  for later (as of now synchronous) processing
- specifying a max queue length (in seconds) is possible, but disabled
- also add some syntax sugar for network code

Revision 1.3 - (view) (download) (annotate) - [select for diffs]
Fri Dec 15 20:08:45 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.2: +1 -1 lines
Diff to previous 1.2
I goofed.

Revision 1.2 - (view) (download) (annotate) - [select for diffs]
Fri Dec 15 20:07:02 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.1: +1 -1 lines
Diff to previous 1.1
more slight copyright adjustments

Revision 1.1 - (view) (download) (annotate) - [select for diffs]
Fri Dec 15 19:59:19 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
the rename for sanity campaign hits
you died
- renamed stuff
- partially updated copyrights
- some cleanups

Convenience Links

Links to HEAD: (view) (download) (annotate)

Compare Revisions

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.

  Diffs between and
  Type of Diff should be a