How the DNS works basically:
  There are two types of muds that we know about.  Those from the udp
comms, and those that are in the mud_addresses file.  Muds which we
contact by udp are removed from the mud_addresses file.
  When the dns master starts up it does a couple of things:
1) It calls resolve to find out the ip number of the machine it is on.
  If the address server is down this will result as the local host
  apprearing in the mudlist with address '0'.
2) Is gets the static list off the name_server.  This is about the only
  useful thing the name_server still does.
3) It calls startup_udp(), which binds the udp socket.  If that was
  successful it calls init_database.  This function is called every
  sixty seconds.  It sends a startup message to the boot server and
  requests a mudlist.  It does this every minute, alternating between
  the default boot server and the backup every five minutes.
4) When the mudlist is received the muds are added to the dynamic list,
  after which they are each queried to see which services they want.  A
  mud can be recognised as dynamic rather than static by the fact it has
  an entry in the mud_svc mapping.
--More--(31%)
5) Muds then keep in contact with each other by sending periodic 'ping'
  packets.  These swap information between the muds about each other.
  The bootserver is also queried every five minutes for a new mudlist.
  If a mud is inactive for over an hour it is removed from the
  mappings.
6) The other services like tell and mail and so on all rely on the
  mud_svc mapping.

Problems:
There are two types of problems that crop up:
 1 - the boot server goes down.  In this case there is not a lot you can
     do except update the dns and hope that the backup server is ok.  It
     will take five minutes for the switch over.  This problem can be
     seen by the dns list getting very small.

 2 - The service list has the wrong entries for the services of a mud.
     Usually tcp services are not recognised.  To date this problem hes
     been caused by the boot servers not having the full facilities
     needed for the communcation of tcp information.  Currently tmi and
     nightmare have these facilities, hopefully soon genesis will as
     well, and discworld.

Other stuff:
--More--(63%)
Before the release the following must be changed:
1) In /include/net/macros.h - remove grendel from ACCESS_CHECK()
2) In /include/net/config.h - MUDLIST macros, change the primary to
      point to us (you need to give it our ip number, and our udp port
      is 5563).  If we change IP again this is going to be troublesome :(
3) You might want to undefine DEBUG in /adm/daemons/network/dns_master.c,
    however I have never done this, so it is untested.
4) The DNS master uses the simul_efun mud_port() in system.c to work
    out which ports to do what to.  The version in there should be pretty
    generic, but check with Robocoder on that one...

In case of emergency, people who might be able to help out:
Pinkfish@discworld
Very familiar with the general udp system.  Should be able to help with
anything that goes wrong.
Descartes@nightmare
Installed the udp stuff at Nightmare, should be at least familiar with it.

Karathan
He knows a fair bit about it, but I don't think he will be back until
September...

--More--(95%)
Malic@icf
Has looked through the code, and knows roughly how the service system works
(which Pinkfish might not).
