Index of /FlightGear/fg_server

      Name                             Last modified       Size  Description

[DIR] Parent Directory 04-Aug-2010 15:02 - [IMG] 2007-04--2008-07.png 18-Jul-2008 14:37 6k [IMG] 2007-04--2008-07_daily.png 18-Jul-2008 14:55 13k [TXT] COPYING 19-Jun-2007 11:34 18k [TXT] fgms-0.9.14-add-motd.diff 11-Jul-2010 11:46 2k [TXT] fgms-0.9.14-solaris20100702.diff 02-Jul-2010 11:28 2k [TXT] fgms_bandwidth_estimates.txt 06-Jun-2008 02:29 1k [TXT] hugin_stats.html 06-Sep-2010 02:23 1k [IMG] load_1,2,4_servers.png 03-Jun-2008 23:42 5k [TXT] mpserver06.conf 30-Jul-2010 12:45 3k [DIR] old_patches/ 12-Jul-2010 12:59 - [   ] per_user_usage.sh 20-May-2007 12:42 1k


LazyRelay extension for fgms and fg_server
------------------------------------------

Anders Gidenstam 2007-2010

News
* 2010-07-12: Current patches:
    fgms-0.9.14-add-motd.diff        - Add welcome message with rules and
                                       disclaimer.
    fgms-0.9.14-solaris20100702.diff - For the miserable few who still live
                                       on Solaris 8/SPARC.
* 2010-07-12: The following patches have been incooperated into fgms-0.9.15:
    fgms-0.9.14-add-blacklist.diff
    fgms-0.9.14-avoid-crash+cleanup.diff
* 2009-09-17: I've noticed that the crossfeed and
              dump imposters patches have been integrated
              in the fgms 0.9.11 source archive at the
              fgms web site so I have moved them to
              the old_patches directory here.
* 2008-07-29: I have three patches for fgms 0.9.11 here:
    fgms-0.9.11-add-crossfeed.diff  - Add local crossfeed ability.
                                      Enables cohosted interconnected servers.
    fgms-0.9.11-dump-imposters.diff - Disallow multiple users with the same
                                      callsign.
    fgms-0.9.11-solaris20080607.diff  For the miserable few that still live
                                      on Solaris 8/SPARC.
* 2007-06-04: fg_server is now officially obsolete. Use fgms instead.
* 2007-05-23: LazyRelay for fgms has been committed to CVS. :)
              Note: pigeon's name server lookup patch has not yet been
                    committed. It should be applied to avoid the risk of
                    double relaying in case DNS lookup fails for one of
                    the relays. 
                    A version of pigeon's patch done against fgms-cvs is
                    available in fgms/. 
              Note: If building on Solaris 8 you still need the separate
                    fgms-solaris patch and some manual tweaking of LD_FLAGS.
                    (I suspect very few people run fgms on Solaris 8.)
* 2007-05-20: Major fgms update to the latest LazyRelay and usage measuring.
              Minor fg_server update - added LazyRelay revision to the log
              and telnet banners.
              Also new: a sh/awk script for summarizing usage data from a fg_server log file.
* 2007-05-16: Added per-pilot packet counters to fg_server.
              The patch is as usual for the virgin 0.9.10 release.
              (It is much easier that way - at least for me.)
* 2007-05-15: Note (to self): Keeping the active/passive handling is 
              good - it avoids doing the (for now) expensive InRange test
              for inactive relays. The patches has been adjusted accordingly.
* 2007-05-14: Minor cleanup. No need to upgrade at this point.
              Also an updated patch for fgms-cvs.
* 2007-05-13: New even lazier LazyRelay patch for fg_server-0.9.10
* 2007-05-01: LazyRelay patch for fgms CVS
* 2007-04-29: LazyRelay patch for fg_server-0.9.10

LazyRelay attempts to reduce the bandwidth usuage of fg_server by
the following protocol:

- Server A can consider each of its relays R1..Rn as active or idle.

- Server A relays data from its client C to an active relay Rx at full rate
  if and only if C is within distance m_PlayerIsOutOfReach of one of
  Rx's clients.

- Server A relays data from its clients to all other relays at a reduced
  rate, one packet from each local client every UPDATE_INACTIVE_PERIOD
  seconds. This allow servers to still know about all/most pilots
  which is required for the distance based update filtering and good
  for mpmap and similar applications.
  (Thanks to Aerotro for this idea.)

- A relay Rx is considered idle if A has not received any packet from Rx
  in the last RELAY_TTL seconds.

- When A don't have any local clients and one connects A sets all its
  relays to active and resets the TTL timestamp of each of them.
  (This step is redundant and could be removed unless
   UPDATE_INACTIVE_PERIOD is infinite.) NOW REMOVED FROM THE CODE.


The patch is for fg_server-0.9.10. Just apply it and recompile.
NOTE: Each patch file contain the changes from the standard fg_server
      (i.e. don't try to apply the patches on top of each other). 
      The current patch should be applied in the base dir.
      patch will report some failed hunks - check the .rej file. It should
      only be CVS tags so it is nothing to worry about,

It should interoperate just fine with unmodified fg_servers as well.

NOTE fgms: The LazyRelay and solaris changes are in separate patches.
           Both patches use the top leave directory as their base.

I think that's all for now.

/Anders Gidenstam

(Go to top level page for contact info.)