hearse (1.5-8) Notes


 Notes |  154 +++---------------------------------------------------------------
 1 file changed, 8 insertions(+), 146 deletions(-)

download this patch

Patch contents

--- hearse-1.5.orig/Notes
+++ hearse-1.5/Notes
@@ -1,5 +1,12 @@
 todo --------------------------------------------------------------------------
+- support for using 32-bit Nethack on 64-bit system, see
+    http://groups.google.com/group/rec.games.roguelike.nethack/msg/816ab1e67ec2a470
+- support for many new features, see Alexis' email from 2005-07-16, Subject:
+  Hearse updates, Message-ID:  <000701c58950$35371b00$1901a8c0@fishtest>
 - support for X_MATCHBONES
     /m - for each bones file that you upload, it will attempt to download
@@ -66,149 +73,4 @@
-Message-ID: <014601c1fb74$755caaf0$8b0224d9@bingalybong>
-From: "Alexis Manning" <alexismanning@bigfoot.com>
-To: "Roderick Schertler" <roderick@argon.org>
-References: <b37306f8.0205071935.78c8056d@posting.google.com> <CkhC8.38769$26.3160662@typhoon.maine.rr.com> <abc8pp$hbr4t$1@ID-105700.news.dfncis.de> <pzhelaob00.fsf@eeyore.ibcinc.com>
-Subject: Re: Is Hearse safe to use with 3.4.0?
-Date: Tue, 14 May 2002 19:23:34 +0100
-From: "Roderick Schertler" <roderick@argon.org>
-> At the risk of invoking the Curse of Hearse, I'm interested in writing a
-> Unix version, particularly if it can use your server.  Would you send me
-> what info I'd need to interoperate with the server, or the source for
-> the client?  Thanks very much.
-A brave man!
-Well, someone else has offered and is currently (hopefully) perusing the
-source code with an eye to get a-porting.  So we have various options:
-    * You could offer to work on it with him
-    * You could wait and see if he flakes / if the Curse of Hearse zaps him
-    * You could work on it separately  (Although I will of course let him
-know if you want to do that.  Not fair to keep people in the dark)
-I am blissfully indifferent, I don't care particularly much how it's done as
-long as it's done.  So let me know what you'd prefer.
-In the meantime, here is some light music.
-Sorry, no.  In the meantime, here is some stuff I've worked about about
-Windows/Unix differences for Hearse which you may find interesting, or may
-scare you off the task altogether.
--- A.
-How Hearse works:
-The Hearse client is simple.  A couple of bits of data are stored in the
-registry, including the date the user last uploaded bones, and a per-user
-token.  If the user hasn't used Hearse before, he is prompted for his email
-address and the server offers him a per-user token in exchange.  This is
-stuffed into the registry and sent with all subsequent requests, and is used
-to track who uploaded what bones file (so no one gets the same bones file
-twice), and used to selectively block abusive users of the system.  The
-per-user token is 32 characters of gibberish, if you care.
-After that's out of the way, the process is dirt simple:
-    Loop over all bones files that are newer than the last bones date
-        Generate an MD5 hash for that file
-        Ask the server if it's OK
-        If the server says "Yup", submit the bones file
-   End loop
-   If any bones files were submitted
-     Loop
-       Ask the server for a bones file
-     Repeat until it says No
-     Update the last bones date
-That's it.  It does get a leetle more complicated, but not much.  A list of
-all bones files in that directory is generated and sent to the server during
-the download phase so you're not offered a bones file that you already have.
-All the communication is done by hitting variations of a fixed URL and
-passing arguments as HTTP headers.  Any errors (e.g. "No more bones for
-you") are handled by the server passing back a header that indicates that
-the body is an error message that should be displayed.
-Headers are:
-X_USERTOKEN:  per user token
-X_HEARSECRC: MD5 hash of the Hearse executable, used to determine whether a
-newer version is available.  We'll work out something appropriate to be sent
-for Unix.  Sending 'noupdate' will prevent any update being offered.
-X_BONESCRC: MD5 hash of the current bones file
-X_VER1           Ugly and non-extensible way of sending the bonesfile "magic
-number" information.
-X_VER2           Done this way to allow for the possibility of masking the
-parts of the version
-X_VER3           struct that don't really matter at some point in the dim
-and distant.
-X_ERROR        Was there an error?  If present, is the body some text that
-should be displayed (INFO), or should the body be displayed then the client
-terminate?  (FATAL)
-X_FILENAME  Name of the bonesfile in the body of the message
-X_USERLEVELS    Comma delimited listed of the bonesfiles that the user
-already has -- don't offer them bonD0.5 if they already have a bonD0.5
-X_GIVEINFO    A crappily named header.  Not currently used, but set with the
-uploaded first bones file of that session.  The idea is that it could be
-used to trigger a Message of the Day or some such.
-X_CLIENTID    Always set to PC-HEARSE, unused.  For future expansion.  Yours
-could say "UNIX-HEARSE", so if different server behaviour was needed for the
-two clients, it could be easily coded.
-X_FORCEUPDATE    Server demands that you update to the latest version to use
-Hearse.  Windows versions auto-update.
-Hearse and Unix
-The *'s indicate current thinking on the subject, not set in stone at all.
-Things in square brackets are really server-side issues that I've just put
-in to remind me.  Let me know any particular part makes no sense, or if it
-sounds like I've missed something.
-Hearse stores a per-user token which is sent with every request to the
-server.  This is so that people don't download the same bones file more than
-once.  It's also used to track users in case of abuse.  Should this be
-per-site on Unix rather than per-user?
- * Per-site is probably better.  The only user who can create a wizard bones
-file under Unix is root, so it's likely to be safe.  Worst case, whole site
-has to be banned.
-File ownership issues
- * Hearse will likely have to run setuid nethack so it can access bones
-Hearse has AutoUpdate functionality.  Best way to handle this under Unix?
- * Simplest would probably be to display the error message returned from the
-server and quit.  They'll have to download the latest source.
- [Also worth having the server email all the users when an incompatible
-version of Hearse is released]
-Waaah!  Byte ordering
- * Unlikely to be a problem since the magic numbers will also have their
-byte order buggered.  Just make sure the version info is read in byte by
-byte, not DWORD by DWORD :)
-Hearse stores various bits of data in the registry.  What to do?
- * Have a /etc/hearse.conf file that stores:
-  - location of nethack bones
-  - Hearse server address [note: this is hardcoded into the client for the
-Windows version.  Ewww]
-  - File access/owner modes to set on downloaded bones
-  - Date of last bones upload
- * Possible race conditions on this file if multiple users run Hearse
-$Id: Notes,v 1.13 2005/03/13 14:35:15 roderick Exp $
+$Id: Notes,v 1.15 2006-05-30 16:07:50 roderick Exp $