ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/socket/loop.C
Revision 1.102 - (view) (download) (annotate) - [select for diffs]
Sun Nov 18 00:37:11 2018 UTC (5 years, 5 months ago) by root
Branch: MAIN
CVS Tags: HEAD
Changes since 1.101: +6 -4 lines
Diff to previous 1.101
some range based for loops

Revision 1.101 - (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.100: +2 -1 lines
Diff to previous 1.100
c++17

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

Revision 1.99 - (view) (download) (annotate) - [select for diffs]
Sun Nov 18 09:29:25 2012 UTC (11 years, 5 months ago) by root
Branch: MAIN
CVS Tags: rel-3_1
Changes since 1.98: +1 -1 lines
Diff to previous 1.98
drawinfo

Revision 1.98 - (view) (download) (annotate) - [select for diffs]
Sat Nov 17 06:05:33 2012 UTC (11 years, 5 months ago) by root
Branch: MAIN
Changes since 1.97: +1 -1 lines
Diff to previous 1.97
*** empty log message ***

Revision 1.97 - (view) (download) (annotate) - [select for diffs]
Sun Nov 11 05:53:12 2012 UTC (11 years, 6 months ago) by root
Branch: MAIN
Changes since 1.96: +1 -1 lines
Diff to previous 1.96
move face blob manegemnt fully to perl

Revision 1.96 - (view) (download) (annotate) - [select for diffs]
Sun Nov 11 04:29:11 2012 UTC (11 years, 6 months ago) by root
Branch: MAIN
Changes since 1.95: +2 -2 lines
Diff to previous 1.95
*** empty log message ***

Revision 1.95 - (view) (download) (annotate) - [select for diffs]
Fri Nov 9 00:11:49 2012 UTC (11 years, 6 months ago) by root
Branch: MAIN
Changes since 1.94: +16 -21 lines
Diff to previous 1.94
*** empty log message ***

Revision 1.94 - (view) (download) (annotate) - [select for diffs]
Sun Nov 4 02:20:11 2012 UTC (11 years, 6 months ago) by root
Branch: MAIN
Changes since 1.93: +22 -19 lines
Diff to previous 1.93
*** empty log message ***

Revision 1.93 - (view) (download) (annotate) - [select for diffs]
Mon Oct 29 23:55:57 2012 UTC (11 years, 6 months ago) by root
Branch: MAIN
Changes since 1.92: +5 -5 lines
Diff to previous 1.92
trailing space removal

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

Revision 1.91 - (view) (download) (annotate) - [select for diffs]
Tue Jan 3 11:23:42 2012 UTC (12 years, 4 months ago) by root
Branch: MAIN
Changes since 1.90: +1 -1 lines
Diff to previous 1.90
*** empty log message ***

Revision 1.90 - (view) (download) (annotate) - [select for diffs]
Sat Dec 31 06:18:02 2011 UTC (12 years, 4 months ago) by root
Branch: MAIN
Changes since 1.89: +3 -2 lines
Diff to previous 1.89
big min/max type change

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

Revision 1.88 - (view) (download) (annotate) - [select for diffs]
Sat Mar 20 18:15:37 2010 UTC (14 years, 1 month ago) by root
Branch: MAIN
CVS Tags: rel-3_0
Changes since 1.87: +0 -1 lines
Diff to previous 1.87
*** empty log message ***

Revision 1.87 - (view) (download) (annotate) - [select for diffs]
Sat Jan 16 13:41:38 2010 UTC (14 years, 3 months ago) by root
Branch: MAIN
CVS Tags: rel-2_93
Changes since 1.86: +1 -3 lines
Diff to previous 1.86
more utf8 marking

Revision 1.86 - (view) (download) (annotate) - [select for diffs]
Sun Nov 29 10:55:18 2009 UTC (14 years, 5 months ago) by root
Branch: MAIN
CVS Tags: rel-2_92
Changes since 1.85: +2 -2 lines
Diff to previous 1.85
indent (remove useless use of void)

Revision 1.85 - (view) (download) (annotate) - [select for diffs]
Wed Nov 11 04:45:23 2009 UTC (14 years, 6 months ago) by root
Branch: MAIN
Changes since 1.84: +2 -0 lines
Diff to previous 1.84
*** empty log message ***

Revision 1.84 - (view) (download) (annotate) - [select for diffs]
Mon Nov 9 18:47:56 2009 UTC (14 years, 6 months ago) by root
Branch: MAIN
Changes since 1.83: +2 -0 lines
Diff to previous 1.83
remove max_nrof from maps, make spell updates delayed

Revision 1.83 - (view) (download) (annotate) - [select for diffs]
Tue Nov 3 23:44:21 2009 UTC (14 years, 6 months ago) by root
Branch: MAIN
CVS Tags: rel-2_90
Changes since 1.82: +1 -3 lines
Diff to previous 1.82
tighten copyright statements for files containing no gpl code whatsoever anymore

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

Revision 1.81 - (view) (download) (annotate) - [select for diffs]
Wed Sep 2 16:54:20 2009 UTC (14 years, 8 months ago) by root
Branch: MAIN
CVS Tags: rel-2_80
Changes since 1.80: +1 -4 lines
Diff to previous 1.80
*** empty log message ***

Revision 1.80 - (view) (download) (annotate) - [select for diffs]
Thu Jul 16 23:17:44 2009 UTC (14 years, 9 months ago) by root
Branch: MAIN
CVS Tags: rel-2_79
Changes since 1.79: +1 -1 lines
Diff to previous 1.79
*** empty log message ***

Revision 1.79 - (view) (download) (annotate) - [select for diffs]
Wed Mar 18 11:09:14 2009 UTC (15 years, 1 month ago) by root
Branch: MAIN
CVS Tags: rel-2_78
Changes since 1.78: +10 -2 lines
Diff to previous 1.78
*** empty log message ***

Revision 1.78 - (view) (download) (annotate) - [select for diffs]
Sat Dec 27 01:25:00 2008 UTC (15 years, 4 months ago) by root
Branch: MAIN
CVS Tags: rel-2_74, rel-2_75, rel-2_76, rel-2_77
Changes since 1.77: +19 -27 lines
Diff to previous 1.77
gcfclient removal

Revision 1.77 - (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, rel-2_71, rel-2_72, rel-2_73
Changes since 1.76: +1 -1 lines
Diff to previous 1.76
update copyright

Revision 1.76 - (view) (download) (annotate) - [select for diffs]
Wed Apr 23 07:49:57 2008 UTC (16 years ago) by root
Branch: MAIN
CVS Tags: rel-2_52, rel-2_53
Changes since 1.75: +4 -1 lines
Diff to previous 1.75
*** empty log message ***

Revision 1.75 - (view) (download) (annotate) - [select for diffs]
Wed Apr 23 07:25:55 2008 UTC (16 years ago) by root
Branch: MAIN
Changes since 1.74: +2 -0 lines
Diff to previous 1.74
*** empty log message ***

Revision 1.74 - (view) (download) (annotate) - [select for diffs]
Tue Apr 22 07:28:05 2008 UTC (16 years ago) by root
Branch: MAIN
Changes since 1.73: +4 -9 lines
Diff to previous 1.73
reintroduce last_weight optimisation, clear TODO

Revision 1.73 - (view) (download) (annotate) - [select for diffs]
Tue Apr 22 07:01:47 2008 UTC (16 years ago) by root
Branch: MAIN
Changes since 1.72: +5 -3 lines
Diff to previous 1.72
see Changes

Revision 1.72 - (view) (download) (annotate) - [select for diffs]
Thu Mar 13 12:20:52 2008 UTC (16 years, 2 months ago) by root
Branch: MAIN
CVS Tags: rel-2_42, rel-2_43, rel-2_5
Changes since 1.71: +1 -1 lines
Diff to previous 1.71
*** empty log message ***

Revision 1.71 - (view) (download) (annotate) - [select for diffs]
Sun Jan 13 12:39:29 2008 UTC (16 years, 4 months ago) by root
Branch: MAIN
CVS Tags: rel-2_4, rel-2_41
Changes since 1.70: +2 -1 lines
Diff to previous 1.70
*** empty log message ***

Revision 1.70 - (view) (download) (annotate) - [select for diffs]
Thu Nov 8 19:43:30 2007 UTC (16 years, 6 months ago) by root
Branch: MAIN
CVS Tags: rel-2_32
Changes since 1.69: +4 -4 lines
Diff to previous 1.69
update copyrights and other minor stuff to deliantra

Revision 1.69 - (view) (download) (annotate) - [select for diffs]
Fri Aug 24 00:26:10 2007 UTC (16 years, 8 months ago) by root
Branch: MAIN
CVS Tags: rel-2_2, rel-2_3
Changes since 1.68: +2 -0 lines
Diff to previous 1.68
major changes:

- on_same_map and related functions now do not block on map loads, instead
  they pretend the map is not there. this ensures lag-free operation, but changes
  semantics considerably: running quickly over the worldmap often lets you bump
  into map borders until the map has been loaded. also, rabies takes longer
  to nuke a full continent now.
- mapinfo (a major sync blocker) is now fully asynchronous, and works by
  quieing all mapinfo requests and retrying them on every tick until satisfed.

Revision 1.68 - (view) (download) (annotate) - [select for diffs]
Thu Aug 9 04:11:24 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.67: +1 -0 lines
Diff to previous 1.67
*** empty log message ***

Revision 1.67 - (view) (download) (annotate) - [select for diffs]
Tue Jul 31 20:10:31 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.66: +1 -1 lines
Diff to previous 1.66
bg-scrub sounds, too

Revision 1.66 - (view) (download) (annotate) - [select for diffs]
Mon Jul 30 02:03:03 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.65: +80 -55 lines
Diff to previous 1.65
big semantic change

- old server and crossfire did
  update/draw maps
  check for player commands, move players and monsters
  flush sockets

- new server does
  check for player commands, move players and monsters
  update/draw maps
  flush sockets

I have zero idea why the old code didn't do it this way. the net effect is
that there is a guarenteed delay of one tick between an issued command and
the player seeing its execution. The same for monster movements.

That is, the new ordering reduces "lag" by a constant 120ms, which is
immense, and can be felt immediately.

This is a change I wanted to do for a long time.

Apart from that, the tcp send code has been simplified and underwent some
further tuning, leading to an even more accurate congestion management.

Revision 1.65 - (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.64: +78 -94 lines
Diff to previous 1.64
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.64 - (view) (download) (annotate) - [select for diffs]
Sat Jul 28 00:45:05 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.63: +37 -35 lines
Diff to previous 1.63
added volume to sound effect packet, tuned overload management

Revision 1.63 - (view) (download) (annotate) - [select for diffs]
Sat Jul 28 00:15:03 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.62: +72 -50 lines
Diff to previous 1.62
allow perl access to the full tcpi structure. do some elaborate congestion control (very experimental, but better than the old way)

Revision 1.62 - (view) (download) (annotate) - [select for diffs]
Thu Jul 26 21:44:43 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.61: +1 -1 lines
Diff to previous 1.61
hacky new-style sound support, very hacky old-style sound support

Revision 1.61 - (view) (download) (annotate) - [select for diffs]
Tue Jul 24 04:55:35 2007 UTC (16 years, 9 months ago) by root
Branch: MAIN
Changes since 1.60: +2 -2 lines
Diff to previous 1.60
welcome to fxix protocol version 3, with uniform handling over all resources

Revision 1.60 - (view) (download) (annotate) - [select for diffs]
Thu Jul 12 19:36:58 2007 UTC (16 years, 10 months ago) by root
Branch: MAIN
Changes since 1.59: +1 -1 lines
Diff to previous 1.59
try a very simple method of failsafe-bandweidthing by not sending any data when the socket buffer could not be drained in the last tick

Revision 1.59 - (view) (download) (annotate) - [select for diffs]
Fri Jul 6 03:52:51 2007 UTC (16 years, 10 months ago) by root
Branch: MAIN
Changes since 1.58: +2 -0 lines
Diff to previous 1.58
fix the fxix protocol mess and use some experimental sorting by size

Revision 1.58 - (view) (download) (annotate) - [select for diffs]
Thu Jul 5 10:34:08 2007 UTC (16 years, 10 months ago) by root
Branch: MAIN
Changes since 1.57: +7 -2 lines
Diff to previous 1.57
- fix rate limiting _again_ (and this time it was an infamous
  unsigned comparison bug...)
- send images strictly in order. this is a bit ugly but temporarily works
  around older cfplus clients not supporting interleaved transfers.

Revision 1.57 - (view) (download) (annotate) - [select for diffs]
Sun Jul 1 06:07:03 2007 UTC (16 years, 10 months ago) by root
Branch: MAIN
Changes since 1.56: +2 -2 lines
Diff to previous 1.56
bork, bork (de-)

Revision 1.56 - (view) (download) (annotate) - [select for diffs]
Sun Jul 1 05:47:00 2007 UTC (16 years, 10 months ago) by root
Branch: MAIN
Changes since 1.55: +2 -1 lines
Diff to previous 1.55
output-.rate limiting was rather completely borked

Revision 1.55 - (view) (download) (annotate) - [select for diffs]
Sun Jul 1 05:00:20 2007 UTC (16 years, 10 months ago) by root
Branch: MAIN
Changes since 1.54: +13 -14 lines
Diff to previous 1.54
- 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.54 - (view) (download) (annotate) - [select for diffs]
Sun Jul 1 04:08:14 2007 UTC (16 years, 10 months ago) by root
Branch: MAIN
Changes since 1.53: +24 -25 lines
Diff to previous 1.53
- support priority as second argument of askface
- send images of same priority in fifo order,
  but higher priorities first.

Revision 1.53 - (view) (download) (annotate) - [select for diffs]
Sun Jul 1 03:16:56 2007 UTC (16 years, 10 months ago) by root
Branch: MAIN
Changes since 1.52: +6 -6 lines
Diff to previous 1.52
prepare for better fxixsx+rx protocol

Revision 1.52 - (view) (download) (annotate) - [select for diffs]
Sun Jun 24 04:09:29 2007 UTC (16 years, 10 months ago) by root
Branch: MAIN
Changes since 1.51: +1 -1 lines
Diff to previous 1.51
first rough cut of msg rewriting, introducing cfpod, a haxored pod variant for crossfire messgaes. where will it end?

Revision 1.51 - (view) (download) (annotate) - [select for diffs]
Sat Jun 9 22:54:04 2007 UTC (16 years, 11 months ago) by root
Branch: MAIN
Changes since 1.50: +6 -11 lines
Diff to previous 1.50
- 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.50 - (view) (download) (annotate) - [select for diffs]
Sun Jun 3 17:05:36 2007 UTC (16 years, 11 months ago) by root
Branch: MAIN
Changes since 1.49: +2 -2 lines
Diff to previous 1.49
- remove slow and unneeded cruft code from map1.
- decouple map display/stats update from ob (use pl->obsere instead)

Revision 1.49 - (view) (download) (annotate) - [select for diffs]
Mon May 28 21:22:26 2007 UTC (16 years, 11 months ago) by root
Branch: MAIN
Changes since 1.48: +20 -20 lines
Diff to previous 1.48
update copyrights in socket/*.C

Revision 1.48 - (view) (download) (annotate) - [select for diffs]
Fri May 18 19:46:22 2007 UTC (16 years, 11 months ago) by root
Branch: MAIN
CVS Tags: rel-2_1
Changes since 1.47: +11 -19 lines
Diff to previous 1.47
new speed management:
- weapon speed and object speed is now completekly decoupled for players.
- both can be used at the same time, or indeepndent, when running or firing.
- still only one command per object speed can be issued.

Revision 1.47 - (view) (download) (annotate) - [select for diffs]
Sat May 12 22:04:20 2007 UTC (17 years ago) by root
Branch: MAIN
Changes since 1.46: +1 -1 lines
Diff to previous 1.46
some floatingpoint µopts

Revision 1.46 - (view) (download) (annotate) - [select for diffs]
Tue Apr 3 01:06:09 2007 UTC (17 years, 1 month ago) by root
Branch: MAIN
Changes since 1.45: +46 -20 lines
Diff to previous 1.45
- implement ix command in server, getting rid of both
  face# limit and image data size limit.

Revision 1.45 - (view) (download) (annotate) - [select for diffs]
Tue Apr 3 00:21:38 2007 UTC (17 years, 1 month ago) by root
Branch: MAIN
Changes since 1.44: +19 -10 lines
Diff to previous 1.44
- fix ber encoding
- reduce image checksum length to 6 bytes (from 16)
- implement fx packet, which reduces
  face overhead to amortised 10/12 bytes per face instead of
  21/32 bytes and allows an unlimited number of faces
  instead of 2**16.

Revision 1.44 - (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.43: +32 -8 lines
Diff to previous 1.43
add untested ber integer encoding function

Revision 1.43 - (view) (download) (annotate) - [select for diffs]
Fri Mar 16 02:37:54 2007 UTC (17 years, 1 month ago) by root
Branch: MAIN
Changes since 1.42: +2 -1 lines
Diff to previous 1.42
- implement yet another bug workaround for gcfclient. its rather sad.

when bg scrubbing, the server sends images in advance, about twice per second.

then receiving a new image, gcfclient destroys the imventory and rebuilds it
(the widgets). this makes using it rather hard, as twice per seconds all widgets
go away and are replaced by new ones, so mouse clicks, if not fast enough, will
be ignored, making the client rather hard to use.

soo.... only to background sending for cfplus, which needs it least.

Revision 1.42 - (view) (download) (annotate) - [select for diffs]
Thu Mar 15 03:30:37 2007 UTC (17 years, 2 months ago) by root
Branch: MAIN
Changes since 1.41: +49 -30 lines
Diff to previous 1.41
- background scrub the client face cache:
  - on the first image request, start sending out
    all faces in order (one face per tick) when
    there is no other image sending activity.
  - send out one image every BG_SCRUB_RATE max.
    if there is no other image sending activity.
  - by default this sends roughly 2 images to the client
    per second, and 8 face indications if the faces
    are already known to the client.

Revision 1.41 - (view) (download) (annotate) - [select for diffs]
Wed Mar 14 15:44:47 2007 UTC (17 years, 2 months ago) by root
Branch: MAIN
Changes since 1.40: +9 -0 lines
Diff to previous 1.40
- make face caching mandatory, and pester users to enable it
- implement rate-limiting, for images only right now
- implement and document output-rate command to set rate limit.
- default 1mbit.

Revision 1.40 - (view) (download) (annotate) - [select for diffs]
Thu Mar 1 12:28:17 2007 UTC (17 years, 2 months ago) by pippijn
Branch: MAIN
CVS Tags: rel-2_0
Changes since 1.39: +1 -1 lines
Diff to previous 1.39
nano-cleanups

Revision 1.39 - (view) (download) (annotate) - [select for diffs]
Sat Jan 20 13:47:17 2007 UTC (17 years, 3 months ago) by pippijn
Branch: MAIN
Changes since 1.38: +22 -22 lines
Diff to previous 1.38
comments

Revision 1.38 - (view) (download) (annotate) - [select for diffs]
Sun Jan 14 21:20:51 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Changes since 1.37: +1 -1 lines
Diff to previous 1.37
- bump coro to 3.4 minimum
- delay server reload to after tick
- avoid back-to-back reloads, as those crash Coro :/

Revision 1.37 - (view) (download) (annotate) - [select for diffs]
Mon Jan 8 18:18:36 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.36: +5 -3 lines
Diff to previous 1.36
- move most last_* values into socket, where they belong
- this actually saved a lot of space in the text segment,
  which might mean less complicated pointer accesses, because
  the data is no where it belongs, mostly.

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

Revision 1.35 - (view) (download) (annotate) - [select for diffs]
Tue Jan 2 11:08:36 2007 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.34: +4 -3 lines
Diff to previous 1.34
add some robustness checks, add map find/load locking

Revision 1.34 - (view) (download) (annotate) - [select for diffs]
Wed Dec 27 15:04:39 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.33: +1 -1 lines
Diff to previous 1.33
restore log out logging, reduced command queue length to 3

Revision 1.33 - (view) (download) (annotate) - [select for diffs]
Mon Dec 25 11:25:50 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.32: +4 -19 lines
Diff to previous 1.32
- small, but subtle, rewrite of object management
- perl will now keep attachable objects alive
- objects are now refcounted
- refcouts need to be tested explicitly (refcnt_chk)
- explicit destroy is required current
- explicit destroy asks "nicely" for the object to self destruct, if possible
- refcounts will be used during mortal killing
- minor bugfixes, optimisations etc.
- some former hacks removed.

Revision 1.32 - (view) (download) (annotate) - [select for diffs]
Fri Dec 22 16:34:00 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.31: +0 -26 lines
Diff to previous 1.31
- preliminary check in, stuff is rudimentarily working
- moved most of the player creation process into a perl coroutine
- changed internal design of player management to not reuse
  and morph the object in funny ways. should be safer and much
  nicer to handle.
- got rid of some annoying hacks, such as clear()
  (TODO: get rid of player_pod and other stuff now unnecessary?)

Revision 1.31 - (view) (download) (annotate) - [select for diffs]
Thu Dec 21 23:37:06 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.30: +5 -6 lines
Diff to previous 1.30
- made state a per-client variable
  (that does not magically make state a per-client thing!)
- rename player->socket to player->ns. its not a good name for "client",
  but it is an historical artifact, and better than "socket".

Revision 1.30 - (view) (download) (annotate) - [select for diffs]
Thu Dec 21 06:12:37 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.29: +4 -4 lines
Diff to previous 1.29
- made client a first-class crossfire-perl object
  (its attachable), but perl support is missing.
- added some client events
- fixed reply not working after logout

Revision 1.29 - (view) (download) (annotate) - [select for diffs]
Tue Dec 19 04:58:05 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.28: +0 -4 lines
Diff to previous 1.28
- separate all comamnds into immediate/socket-level and queued/player-level
- clean up player command handling, handle up to 8 commands/tick

Revision 1.28 - (view) (download) (annotate) - [select for diffs]
Sun Dec 17 19:14:00 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.27: +2 -5 lines
Diff to previous 1.27
re-enable async command execution

Revision 1.27 - (view) (download) (annotate) - [select for diffs]
Sun Dec 17 19:07:23 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.26: +5 -1 lines
Diff to previous 1.26
thats the crash bug

Revision 1.26 - (view) (download) (annotate) - [select for diffs]
Sat Dec 16 22:14:42 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.25: +23 -21 lines
Diff to previous 1.25
just reformats

Revision 1.25 - (view) (download) (annotate) - [select for diffs]
Sat Dec 16 21:40:26 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.24: +1 -1 lines
Diff to previous 1.24
- clean up some code
- fix some possible (minor) bugs
- use a bitset for anims_sent
- fix a memory leak
- removed dead code

Revision 1.24 - (view) (download) (annotate) - [select for diffs]
Sat Dec 16 18:39:26 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.23: +8 -4 lines
Diff to previous 1.23
fix memory leak in player command queue.

Revision 1.23 - (view) (download) (annotate) - [select for diffs]
Sat Dec 16 17:16:52 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.22: +1 -1 lines
Diff to previous 1.22
- remove no_shout
- serialise command execution somewhat again :(
- avoid exceptions

Revision 1.22 - (view) (download) (annotate) - [select for diffs]
Sat Dec 16 12:23:52 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.21: +1 -1 lines
Diff to previous 1.21
ah yes, zero-terminated binary data :(
      but hey, thats like perl :)

Revision 1.21 - (view) (download) (annotate) - [select for diffs]
Sat Dec 16 03:21:08 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.20: +23 -8 lines
Diff to previous 1.20
- limit command backlog to two seconds

Revision 1.20 - (view) (download) (annotate) - [select for diffs]
Sat Dec 16 03:08:26 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.19: +39 -182 lines
Diff to previous 1.19
- 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.19 - (view) (download) (annotate) - [select for diffs]
Fri Dec 15 19:59:20 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.18: +11 -13 lines
Diff to previous 1.18
the rename for sanity campaign hits
you died
- renamed stuff
- partially updated copyrights
- some cleanups

Revision 1.18 - (view) (download) (annotate) - [select for diffs]
Fri Dec 15 04:21:29 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.17: +0 -44 lines
Diff to previous 1.17
while goofing around, trying to understand the command code
- did some reindentation
- which lead me to find some dead code
- which lead me to some optimisations and more dead code

fun.

Revision 1.17 - (view) (download) (annotate) - [select for diffs]
Fri Dec 15 03:53:44 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.16: +58 -80 lines
Diff to previous 1.16
streamlined packet processing a bit, experimentally enabled more immediate paclets

Revision 1.16 - (view) (download) (annotate) - [select for diffs]
Thu Dec 14 22:45:41 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.15: +2 -7 lines
Diff to previous 1.15
- implement event watcher autoncancellation on reload
- used it everywhere
- removed lots of compatibility cruft
  - configure does no longer check for mandatory unix functionality/headers
  - confgiure now runs much faster

Revision 1.15 - (view) (download) (annotate) - [select for diffs]
Thu Dec 14 21:46:34 2006 UTC (17 years, 4 months ago) by root
Branch: MAIN
Changes since 1.14: +5 -57 lines
Diff to previous 1.14
- write() is now independent of server ticks and will be done immediately
- get rid of CORK hack, it is no longer necessary

Revision 1.14 - (view) (download) (annotate) - [select for diffs]
Thu Dec 14 04:30:33 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.13: +50 -156 lines
Diff to previous 1.13
- rewrote most of the socket loop code
- moved connection accept into tcp.ext
- no evil socket copying anymore,
  needs more cleanups

Revision 1.13 - (view) (download) (annotate) - [select for diffs]
Thu Dec 14 02:37:37 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.12: +6 -6 lines
Diff to previous 1.12
moar\! rewrite\!

Revision 1.12 - (view) (download) (annotate) - [select for diffs]
Thu Dec 14 01:12:35 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.11: +1 -1 lines
Diff to previous 1.11
(intermediate check-in for recoverability)

Revision 1.11 - (view) (download) (annotate) - [select for diffs]
Thu Dec 14 00:01:37 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.10: +51 -47 lines
Diff to previous 1.10
- further cleanup and rewrite
- fix a potential crash in "lock" and "mark" packets

Revision 1.10 - (view) (download) (annotate) - [select for diffs]
Wed Dec 13 02:55:51 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.9: +46 -65 lines
Diff to previous 1.9
- medium decruftification
- medium cleanups
- make settings accessible to perl using cf::settings->mutator
  (completely untested)

Revision 1.9 - (view) (download) (annotate) - [select for diffs]
Tue Dec 12 20:53:03 2006 UTC (17 years, 5 months ago) by root
Branch: MAIN
Changes since 1.8: +3 -3 lines
Diff to previous 1.8
replace some function- by method-calls

Revision 1.8 - (view) (download) (annotate) - [select for diffs]
Mon Dec 11 19:46:47 2006 UTC (17 years, 5 months ago) by pippijn
Branch: MAIN
Changes since 1.7: +5 -7 lines
Diff to previous 1.7
removed #ifn?def WIN32 from all files

Revision 1.7 - (view) (download) (annotate) - [select for diffs]
Thu Sep 14 22:34:05 2006 UTC (17 years, 7 months ago) by root
Branch: MAIN
Changes since 1.6: +1 -7 lines
Diff to previous 1.6
indent

Revision 1.6 - (view) (download) (annotate) - [select for diffs]
Sun Sep 10 13:43:33 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.5: +372 -306 lines
Diff to previous 1.5
indent

Revision 1.5 - (view) (download) (annotate) - [select for diffs]
Sat Sep 9 21:48:29 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.4: +1 -162 lines
Diff to previous 1.4
fix a few ugly pod-constructs on non-pod objects, and a few newly introduced bugs

Revision 1.4 - (view) (download) (annotate) - [select for diffs]
Wed Aug 30 16:30:37 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.3: +4 -4 lines
Diff to previous 1.3
remove compression support, intiialise perl earlier etc. etc.

Revision 1.3 - (view) (download) (annotate) - [select for diffs]
Tue Aug 29 08:01:38 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.2: +298 -298 lines
Diff to previous 1.2
expand initial tabs to spaces

Revision 1.2 - (view) (download) (annotate) - [select for diffs]
Thu Aug 24 13:13:49 2006 UTC (17 years, 8 months ago) by root
Branch: MAIN
Changes since 1.1: +1 -67 lines
Diff to previous 1.1
- added cfperl.h, soon to be used by events
- no perl == exit, its no longer optional
- moved server main loop entirely in perl
- removed lots of unneeded timekeeping cruft

Revision 1.1 - (view) (download) (annotate) - [select for diffs]
Sun Aug 13 17:16:06 2006 UTC (17 years, 9 months ago) by elmex
Branch: MAIN
Made server compile with C++.
Removed cfanim plugin and crossedit.
C++ here we come.

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