This is patch12 to PennMUSH 1.8.0. After applying this patch, you will have version 1.8.0p12 To apply this patch, save it to a file in your top-level MUSH directory, and do the following: patch -p1 < 1.8.0-patch12 make clean make install If you use GNU patch 2.2, you probably want the above to be 'patch -b -p1', not just 'patch -p1'. Unix (or cygwin) users need not worry about failed hunks in src/switchinc.c, hdrs/switches.h, hdrs/cmds.h, or hdrs/funs.h. These files are automatically rebuilt on compile. On the off chance they appear not to be, simply rm them and re-run make. Then @shutdown and restart your MUSH. - Alan/Javelin In this patch: Minor changes: * New config option keepalive_timeout for setting the socket-level are-you-there ping interval used to help work around broken routers. [SW] * Changing the SO_KEEPALIVE interval works on more OSes, including OS X. [SW] * Passwords are masked when commands that require them are logged in command.log. Suggested by Sumta. [SW] Fixes * Added help entry for @debugforwardlist. Suggested by d'Ark@M*U*S*H. * Help fixes by Talvo@M*U*S*H. * When objects are nuked, their creation time is reset to 0. This prevents garbage objects from maintaining the same objid. Suggested by Cooee@PDX * When doing english-style matching, plain numbers ('3') were treated as adjectives (like '3rd') and shouldn't have been. Fixed. Reported by Stinky@M*U*S*H. Prereq: 1.8.0p11 *** 1_8_0.94/Patchlevel Sat, 25 Feb 2006 14:57:08 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.43.1.11 600) --- 1_8_0.101(w)/Patchlevel Sat, 25 Mar 2006 15:41:56 -0600 dunemush (pennmush/5_Patchlevel 1.17.1.11.1.43.1.12 600) *************** *** 1,2 **** Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.8.0p11 --- 1,2 ---- Do not edit this file. It is maintained by the official PennMUSH patches. ! This is PennMUSH 1.8.0p12 *** 1_8_0.94/README Tue, 21 Dec 2004 10:14:22 -0600 dunemush (pennmush/4_README 1.14 600) --- 1_8_0.101(w)/README Fri, 24 Mar 2006 14:42:12 -0600 dunemush (pennmush/4_README 1.14.1.1 600) *************** *** 76,84 **** In August of 1997, Ralph Melton left the PennMUSH development team, and Thorvald Natvig joined as a new member. Many thanks go to Ralph who contributed much time, code, and good cheer to PennMUSH. ! ! Javelin, in conjunction with Talek (T. Alexander Popiel) and Thorvald ! Natvig, are the current PennMUSH development team. A MUSH manual should be available at ftp.digex.net, ftp.math.okstate.edu, primerd.prime.com, or from wherever you got this code from. The manual --- 76,90 ---- In August of 1997, Ralph Melton left the PennMUSH development team, and Thorvald Natvig joined as a new member. Many thanks go to Ralph who contributed much time, code, and good cheer to PennMUSH. ! Since that time, the development team has gained and lost members. ! The current membership is usually listed at the top of the ! latest CHANGES. file. ! ! In November 2002, with the release of PennMUSH 1.7.6, PennMUSH ! began using the Artistic License (see the COPYRITE file), ! an open source/free software license. This license was ! simultaneously adopted by TinyMUSH (2.2.5, 3.x) and TinyMUX to ! facilitate code sharing and widen use. A MUSH manual should be available at ftp.digex.net, ftp.math.okstate.edu, primerd.prime.com, or from wherever you got this code from. The manual *************** *** 87,93 **** If you are planning on modifying the source code to PennMUSH, you'll probably want Javelin's Guide for PennMUSH Gods, which should be available where you got this code, or, in hypertext, as ! http://pennmush.org/~alansz/guide.html Enjoy! --- 93,100 ---- If you are planning on modifying the source code to PennMUSH, you'll probably want Javelin's Guide for PennMUSH Gods, which should be available where you got this code, or, in hypertext, as ! http://pennmush.org/~alansz/guide.html. More recent versions ! may be available at http://community.pennmush.org. Enjoy! *************** *** 125,135 **** response and is ideal for unusual bugs. A web-based submission form is at http://www.pennmush.org/jitterbug/pennmush - 3. dunemush@pennmush.org is Javelin's email address. - This is a good place for small suggestions, common-seeming bugs, - etc. -- stuff you wouldn't want to bother all the developers with. - You will receive a quick response. - When reporting a problem, please always include the following information: --- 132,137 ---- *** 1_8_0.94/FAQ Tue, 21 Dec 2004 10:14:22 -0600 dunemush (pennmush/6_FAQ 1.5 600) --- 1_8_0.101(w)/FAQ Fri, 24 Mar 2006 14:42:12 -0600 dunemush (pennmush/6_FAQ 1.5.1.1 600) *************** *** 36,47 **** on the devteam. He rewrote the command parser, and PennMUSH was advanced to 1.7.0. ! Currently, the active development team is Javelin, Talek, and Raevnos. ! The stable version is 1.8.0, and the development version is 1.8.1. 1. How do I ask for help with a problem? ! Email to dunemush@pennmush.org When asking for help, please be as specific as you can about the problem. Include at least the following: - Version of PennMUSH including any official patches you've applied --- 36,50 ---- on the devteam. He rewrote the command parser, and PennMUSH was advanced to 1.7.0. ! Currently, the active development team is Javelin, Talek, Raevnos, ! Noltar, and Walker. The stable version is 1.8.0, and the development ! version is 1.8.1. 1. How do I ask for help with a problem? ! Email to pennmush-developers@pennmush.org ! or visit http://www.pennmush.org/jitterbug/pennmush ! When asking for help, please be as specific as you can about the problem. Include at least the following: - Version of PennMUSH including any official patches you've applied *** 1_8_0.94/game/txt/hlp/penntop.hlp Mon, 06 Feb 2006 15:42:03 -0600 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.12.1.1.1.1.1.8.1.11.1.1.1.3.2.1.1.1.1.1.1.1.1.1.1.1 600) --- 1_8_0.101(w)/game/txt/hlp/penntop.hlp Fri, 24 Mar 2006 14:42:13 -0600 dunemush (pennmush/13_penntop.hl 1.2.1.27.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.12.1.1.1.1.1.8.1.11.1.1.1.3.2.1.1.1.1.1.1.1.1.1.1.1.1.1 600) *************** *** 16,28 **** On many MUSHes, list local commands with: +help ! If there are any errors in the help text, please notify a wizard ! in the game, or send mail to dunemush@pennmush.org, who maintains ! PennMUSH (and its distributed help files) but probably has no relation ! to this MUSH in particular. ! & newbie ! If you are new to MUSHing, the help files may seem confusing. Most of them are written in a specific style, however, and once you understand it the files are extremely helpful. --- 16,28 ---- On many MUSHes, list local commands with: +help ! If there are any errors in the help text, please notify a wizard in the ! game, or send mail to pennmush-bugs@pennmush.org, which is the address ! of the team who develop PennMUSH (and its distributed help files) but ! probably have no relation to this MUSH in particular. ! & newbie ! If you are new to MUSHing, the help files may seem confusing. Most of them are written in a specific style, however, and once you understand it the files are extremely helpful. *** 1_8_0.94/game/txt/hlp/penncmd.hlp Wed, 01 Feb 2006 20:24:01 -0600 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.10.1.1.1.1.1.1.1.1.1.1.1.47.1.1.1.1.1.1 600) --- 1_8_0.101(w)/game/txt/hlp/penncmd.hlp Fri, 03 Mar 2006 17:05:53 -0600 dunemush (pennmush/18_penncmd.hl 1.2.1.1.1.47.1.1.1.1.1.3.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.10.1.1.1.1.1.1.1.1.1.1.1.47.1.1.1.1.1.1.1.1 600) *************** *** 1330,1335 **** --- 1330,1350 ---- @lock/forward me=$me) See also: @filter, @prefix, AUDIBLE, PUPPET + & @DEBUGFORWARDLIST + @debugforwardlist [=] + + When an object is set DEBUG, its @debugforwardlist attribute is checked, + and if present, the debug output is forwarded to all the dbrefs in + the @debugforwardlist. + + The @debugforwardlist must be a space-seperated list of dbrefs. + In order to forward to an object, you must either control it, + have the pemit_all power, or, if it has a @lock/forward set, pass + its @lock/forward. (If you want to allow all objects you own to + forward to you, regardless of whether or not they control you, use + @lock/forward me=$me) + + See also: DEBUG & @unfollow @unfollow = *** 1_8_0.94/game/mushcnf.dst Tue, 23 Nov 2004 14:13:24 -0600 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8.1.1.1.1.1.34.1.1 600) --- 1_8_0.101(w)/game/mushcnf.dst Sat, 25 Mar 2006 14:50:36 -0600 dunemush (pennmush/41_mushcnf.ds 1.1.1.19.1.1.1.2.1.1.1.8.1.1.1.1.1.34.1.1.1.1 600) *************** *** 209,214 **** --- 209,224 ---- # If you don't want a timeout, set it to 0. unconnected_idle_timeout 5m + # Many common home network routers will drop a connection if there's + # been no activity for a few minutes; they tend to assume the web is + # the internet, and don't deal well with persistant connections like + # mushes use. This option will make the server automatically send a + # 'Are you still there?' query every few minutes to keep the + # connection active. + # NOTE: This doesn't work on all OSes, but does on the most popular + # ones for mush hosting such as linux. + keepalive_timeout 5m + # Should there be a limit on the number of logins the MUSH # can accept? If your operating system has a limited number of # file descriptors per process, you should set this to *** 1_8_0.94/src/match.c Sun, 08 Aug 2004 21:02:22 -0500 dunemush (pennmush/c/2_match.c 1.24.1.1.1.4.1.1.1.1.1.1.1.1.1.1.1.30 660) --- 1_8_0.101(w)/src/match.c Sat, 25 Mar 2006 15:44:53 -0600 dunemush (pennmush/c/2_match.c 1.24.1.1.1.4.1.1.1.1.1.1.1.1.1.1.1.30.1.1 660) *************** *** 451,457 **** } else if (strcasecmp(e, "th")) { count = -1; } ! } *mname = ' '; if (count < 0) { /* An error (like '0th' or '12nd') - this wasn't really a count --- 451,458 ---- } else if (strcasecmp(e, "th")) { count = -1; } ! } else ! count = -1; *mname = ' '; if (count < 0) { /* An error (like '0th' or '12nd') - this wasn't really a count *** 1_8_0.94/src/game.c Sun, 20 Mar 2005 08:27:08 -0600 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.4.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.1.1.5.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.12.1.3.1.7.1.2.2.1.1.32.1.2.2.1.1.1.1.1 660) --- 1_8_0.101(w)/src/game.c Sat, 25 Mar 2006 15:44:53 -0600 dunemush (pennmush/c/10_game.c 1.50.1.8.1.1.1.1.2.1.1.1.2.1.1.4.1.1.1.1.1.1.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.2.1.1.1.2.1.1.1.1.1.1.1.1.1.5.1.3.1.2.1.2.1.1.1.1.1.1.1.1.1.12.1.3.1.7.1.2.2.1.1.32.1.2.2.1.1.1.1.1.1.1 660) *************** *** 67,72 **** --- 67,73 ---- #include "function.h" #include "help.h" #include "dbio.h" + #include "pcre.h" #ifdef hpux #include *************** *** 96,102 **** extern void initialize_mt(void); ! extern void conf_default_set(void); static int dump_database_internal(void); static FILE *db_open(const char *filename); --- 97,103 ---- extern void initialize_mt(void); ! extern const unsigned char *tables; extern void conf_default_set(void); static int dump_database_internal(void); static FILE *db_open(const char *filename); *************** *** 966,971 **** --- 967,1027 ---- } \ } while(0) + /** Attempt to tell if the command is a @password or @newpassword, so + * that the password isn't logged by Suspect or log_commands + * \param cmd The command to check + * \return A sanitized version of the command suitable for logging. + */ + static char * + passwd_filter(const char *cmd) + { + static int initialized = 0; + static pcre *pass_ptn, *newpass_ptn; + static char buff[BUFFER_LEN]; + char *bp = buff; + int ovec[20]; + size_t cmdlen; + int matched; + + if (!initialized) { + const char *errptr; + int eo; + + pass_ptn = pcre_compile("^(@pass.*?)\\s([^=]*)=(.*)", + PCRE_CASELESS, &errptr, &eo, tables); + if (!pass_ptn) + do_log(LT_ERR, GOD, GOD, "pcre_compile: %s", errptr); + newpass_ptn = pcre_compile("^(@(?:newp|pcreate)[^=]*)=(.*)", + PCRE_CASELESS, &errptr, &eo, tables); + if (!newpass_ptn) + do_log(LT_ERR, GOD, GOD, "pcre_compile: %s", errptr); + initialized = 1; + } + + cmdlen = strlen(cmd); + + if ((matched = pcre_exec(pass_ptn, NULL, cmd, cmdlen, 0, 0, ovec, 20)) > 0) { + /* It's a password */ + pcre_copy_substring(cmd, ovec, matched, 1, buff, BUFFER_LEN); + bp = buff + strlen(buff); + safe_chr(' ', buff, &bp); + safe_fill('*', ovec[5] - ovec[4], buff, &bp); + safe_chr('=', buff, &bp); + safe_fill('*', ovec[7] - ovec[6], buff, &bp); + } else if ((matched = pcre_exec(newpass_ptn, NULL, cmd, cmdlen, 0, 0, + ovec, 20)) > 0) { + pcre_copy_substring(cmd, ovec, matched, 1, buff, BUFFER_LEN); + bp = buff + strlen(buff); + safe_chr('=', buff, &bp); + safe_fill('*', ovec[5] - ovec[4], buff, &bp); + } else { + safe_strl(cmd, cmdlen, buff, &bp); + } + *bp = '\0'; + return buff; + } + + /** Attempt to match and execute a command. * This function performs some sanity checks and then attempts to * run a command. It checks, in order: home, built-in commands, *************** *** 1040,1053 **** } orator = player; - log_activity(LA_CMD, player, command); - if (options.log_commands || Suspect(player)) - do_log(LT_CMD, player, NOTHING, "%s", command); - - if Verbose - (player) - raw_notify(Owner(player), tprintf("#%d] %s", player, command)); - /* eat leading whitespace */ while (*command && isspace((unsigned char) *command)) command++; --- 1096,1101 ---- *************** *** 1062,1067 **** --- 1110,1126 ---- if ((!command || !*command) && !from_port) return; + { + char *msg = passwd_filter(command); + + log_activity(LA_CMD, player, msg); + if (options.log_commands || Suspect(player)) + do_log(LT_CMD, player, NOTHING, "%s", msg); + if Verbose + (player) + raw_notify(Owner(player), tprintf("#%d] %s", player, msg)); + } + /* important home checking comes first! */ if (strcmp(command, "home") == 0) { if (!Mobile(player)) *************** *** 1072,1077 **** --- 1131,1138 ---- do_move(player, command, MOVE_NORMAL); return; } + + strcpy(unp, command); cptr = command_parse(player, cause, command, from_port); *** 1_8_0.94/src/fundb.c Wed, 24 Aug 2005 22:14:42 -0500 dunemush (pennmush/c/17_fundb.c 1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.7.1.3.1.3.1.3.1.2.1.2.1.3.2.1.2.1.2.1.1.1.1.4.1.1.1.1.1.1.1.1.1.1.1.3.1.1.2.2.2.1.1.1.1.1.1.42.1.14.1.1.1.1.1.1 660) --- 1_8_0.101(w)/src/fundb.c Sat, 25 Mar 2006 15:44:53 -0600 dunemush (pennmush/c/17_fundb.c 1.1.1.1.1.1.1.1.1.1.1.1.1.3.1.1.1.1.1.7.1.3.1.3.1.3.1.2.1.2.1.3.2.1.2.1.2.1.1.1.1.4.1.1.1.1.1.1.1.1.1.1.1.3.1.1.2.2.2.1.1.1.1.1.1.42.1.14.1.1.1.1.1.1.1.1 660) *************** *** 1331,1337 **** { dbref it = match_thing(executor, args[0]); ! if (GoodObject(it)) safe_str(show_time(CreTime(it), 0), buff, bp); else safe_str(T(e_notvis), buff, bp); --- 1331,1337 ---- { dbref it = match_thing(executor, args[0]); ! if (GoodObject(it) && !IsGarbage(it)) safe_str(show_time(CreTime(it), 0), buff, bp); else safe_str(T(e_notvis), buff, bp); *************** *** 1341,1347 **** FUNCTION(fun_mtime) { dbref it = match_thing(executor, args[0]); ! if (!GoodObject(it)) safe_str(T(e_notvis), buff, bp); else if (!Can_Examine(executor, it) || IsPlayer(it)) safe_str(T(e_perm), buff, bp); --- 1341,1347 ---- FUNCTION(fun_mtime) { dbref it = match_thing(executor, args[0]); ! if (!GoodObject(it) || IsGarbage(it)) safe_str(T(e_notvis), buff, bp); else if (!Can_Examine(executor, it) || IsPlayer(it)) safe_str(T(e_perm), buff, bp); *** 1_8_0.94/src/destroy.c Fri, 06 Aug 2004 09:38:25 -0500 dunemush (pennmush/c/24_destroy.c 1.24.2.2.1.3.1.1.1.1.1.1.1.4.1.1.1.1.1.14 660) --- 1_8_0.101(w)/src/destroy.c Sat, 25 Mar 2006 15:44:53 -0600 dunemush (pennmush/c/24_destroy.c 1.24.2.2.1.3.1.1.1.1.1.1.1.4.1.1.1.1.1.15 660) *************** *** 727,732 **** --- 727,733 ---- set_name(thing, "Garbage"); Exits(thing) = NOTHING; Home(thing) = NOTHING; + CreTime(thing) = 0; /* Prevents it from matching objids */ clear_objdata(thing); *** 1_8_0.94/src/conf.c Mon, 12 Dec 2005 12:24:47 -0600 dunemush (pennmush/c/31_conf.c 1.41.2.3.1.3.1.2.1.15.1.1.1.1.1.1.1.41.1.1.1.1.1.1.1.1 660) --- 1_8_0.101(w)/src/conf.c Sat, 25 Mar 2006 15:44:53 -0600 dunemush (pennmush/c/31_conf.c 1.41.2.3.1.3.1.2.1.15.1.1.1.1.1.1.1.41.1.1.1.1.1.1.1.2 660) *************** *** 292,297 **** --- 292,299 ---- {"unconnected_idle_timeout", cf_time, &options.unconnected_idle_timeout, 100000, 0, "limits"} , + {"keepalive_timeout", cf_time, &options.keepalive_timeout, 10000, 0, "limits"} + , {"whisper_loudness", cf_int, &options.whisper_loudness, 100, 0, "limits"} , {"starting_quota", cf_int, &options.starting_quota, 10000, 0, "limits"} *************** *** 1029,1034 **** --- 1031,1037 ---- options.ancestor_player = -1; options.idle_timeout = 0; options.unconnected_idle_timeout = 300; + options.keepalive_timeout = 300; options.dump_interval = 3601; strcpy(options.dump_message, T("GAME: Dumping database. Game may freeze for a minute")); *** 1_8_0.94/hdrs/version.h Sat, 25 Feb 2006 14:57:08 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.45.1.12 660) --- 1_8_0.101(w)/hdrs/version.h Sat, 25 Mar 2006 15:44:54 -0600 dunemush (pennmush/c/47_version.h 1.32.1.2.1.7.1.9.1.1.1.17.1.45.1.13 660) *************** *** 1,4 **** #define VERSION "1.8.0" ! #define PATCHLEVEL "11" ! #define PATCHDATE "[02/25/2006]" ! #define NUMVERSION 1008000011 --- 1,4 ---- #define VERSION "1.8.0" ! #define PATCHLEVEL "12" ! #define PATCHDATE "[03/25/2006]" ! #define NUMVERSION 1008000012 *** 1_8_0.94/hdrs/copyrite.h Sun, 08 Aug 2004 21:35:52 -0500 dunemush (pennmush/d/19_copyrite.h 1.5 660) --- 1_8_0.101(w)/hdrs/copyrite.h Sat, 25 Mar 2006 15:44:54 -0600 dunemush (pennmush/d/19_copyrite.h 1.5.1.1 660) *************** *** 1,13 **** /* copyrite.h */ /* ! * Copyright, License, and Credits for PennMUSH 1.x. Revised October 2002. * * I. Copyrights * * PennMUSH 1.x ! * Copyright (c) 1995-2002, Alan Schwartz, T. Alexander Popiel, Shawn Wagner ! * Contact email for Alan Schwartz: . * * Some code used in this server may have been derived from the * TinyMUSH 2.2 source code, with permission. TinyMUSH 2.2 is --- 1,13 ---- /* copyrite.h */ /* ! * Copyright, License, and Credits for PennMUSH 1.x. Revised March 2006. * * I. Copyrights * * PennMUSH 1.x ! * Copyright (c) 1995-2006, T. Alexander Popiel ! * and Shawn Wagner * * Some code used in this server may have been derived from the * TinyMUSH 2.2 source code, with permission. TinyMUSH 2.2 is *************** *** 170,176 **** * * Past and present PennMUSH development team members: * T. Alexander Popiel, Ralph Melton, Thorvald Natvig, Luuk de Waard, ! * Shawn Wagner, Ervin Hearn III * Past and present PennMUSH porters: * Nick Gammon, Sylvia, Dan Williams, Ervin Hearn III * TinyMUSH 2.2, TinyMUSH 3.0, TinyMUX 2, and RhostMUSH developers --- 170,176 ---- * * Past and present PennMUSH development team members: * T. Alexander Popiel, Ralph Melton, Thorvald Natvig, Luuk de Waard, ! * Shawn Wagner, Ervin Hearn III, Alan "Javelin" Schwartz * Past and present PennMUSH porters: * Nick Gammon, Sylvia, Dan Williams, Ervin Hearn III * TinyMUSH 2.2, TinyMUSH 3.0, TinyMUX 2, and RhostMUSH developers *** 1_8_0.94/hdrs/conf.h Mon, 12 Dec 2005 12:24:47 -0600 dunemush (pennmush/d/20_conf.h 1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.5.1.1.1.1.1.1.1.1.1.2.1.1.2.1.2.13.1.4.1.20.1.24.2.1 660) --- 1_8_0.101(w)/hdrs/conf.h Sat, 25 Mar 2006 15:44:54 -0600 dunemush (pennmush/d/20_conf.h 1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.5.1.1.1.1.1.1.1.1.1.2.1.1.2.1.2.13.1.4.1.20.1.24.2.2 660) *************** *** 113,118 **** --- 113,119 ---- dbref ancestor_player; /**< The ultimate parent player */ int idle_timeout; /**< Maximum idle time allowed, in minutes */ int unconnected_idle_timeout; /**< Maximum idle time for connections without dbrefs, in minutes */ + int keepalive_timeout; /**< Number of seconds between TCP keepalive pings */ int dump_interval; /**< Interval between database dumps, in seconds */ char dump_message[256]; /**< Message shown at start of nonforking dump */ char dump_complete[256]; /**< Message shown at end of nonforking dump */ *** 1_8_0.94/COPYRITE Sun, 05 Feb 2006 14:16:16 -0600 dunemush (pennmush/d/29_COPYRITE 1.9 600) --- 1_8_0.101(w)/COPYRITE Fri, 24 Mar 2006 14:42:13 -0600 dunemush (pennmush/d/29_COPYRITE 1.9.1.1 600) *************** *** 1,13 **** /* copyrite.h */ /* ! * Copyright, License, and Credits for PennMUSH 1.x. Revised October 2002. * * I. Copyrights * * PennMUSH 1.x ! * Copyright (c) 1995-2002, Alan Schwartz, T. Alexander Popiel, Shawn Wagner ! * Contact email for Alan Schwartz: . * * Some code used in this server may have been derived from the * TinyMUSH 2.2 source code, with permission. TinyMUSH 2.2 is --- 1,13 ---- /* copyrite.h */ /* ! * Copyright, License, and Credits for PennMUSH 1.x. Revised March 2006. * * I. Copyrights * * PennMUSH 1.x ! * Copyright (c) 1995-2006, T. Alexander Popiel and ! * Shawn Wagner . * * Some code used in this server may have been derived from the * TinyMUSH 2.2 source code, with permission. TinyMUSH 2.2 is *************** *** 170,176 **** * * Past and present PennMUSH development team members: * T. Alexander Popiel, Ralph Melton, Thorvald Natvig, Luuk de Waard, ! * Shawn Wagner, Ervin Hearn III, Greg Millam * Past and present PennMUSH porters: * Nick Gammon, Sylvia, Dan Williams, Ervin Hearn III * TinyMUSH 2.2, TinyMUSH 3.0, TinyMUX 2, and RhostMUSH developers --- 170,176 ---- * * Past and present PennMUSH development team members: * T. Alexander Popiel, Ralph Melton, Thorvald Natvig, Luuk de Waard, ! * Shawn Wagner, Ervin Hearn III, Greg Millam, Alan "Javelin" Schwartz * Past and present PennMUSH porters: * Nick Gammon, Sylvia, Dan Williams, Ervin Hearn III * TinyMUSH 2.2, TinyMUSH 3.0, TinyMUX 2, and RhostMUSH developers *** 1_8_0.94/Makefile.SH Thu, 04 Nov 2004 13:58:00 -0600 dunemush (pennmush/d/30_Makefile.S 1.14.1.1.1.7.1.1.1.21 700) --- 1_8_0.101(w)/Makefile.SH Fri, 24 Mar 2006 14:42:13 -0600 dunemush (pennmush/d/30_Makefile.S 1.14.1.1.1.7.1.1.1.21.1.1 700) *************** *** 39,46 **** # This section of the file should be automatically configured by # the Configure script. If it doesn't work, you might try starting # from the Makefile.old that's included instead, and reporting ! # your problem (including this Makefile) to Paul/Javelin, ! # dunemush@pennmush.org # # If you want to profile the code, add -pg -a -DPROFILING to CCFLAGS # and (probably) remove -O --- 39,45 ---- # This section of the file should be automatically configured by # the Configure script. If it doesn't work, you might try starting # from the Makefile.old that's included instead, and reporting ! # your problem (including this Makefile) to pennmush-bugs@pennmush.org # # If you want to profile the code, add -pg -a -DPROFILING to CCFLAGS # and (probably) remove -O *** 1_8_0.94/Configure Fri, 13 Jan 2006 22:06:18 -0600 dunemush (pennmush/d/32_Configure 1.21.1.4.1.1.1.1.1.1.1.7.1.15.1.1.1.2.1.1 710) --- 1_8_0.101(w)/Configure Fri, 24 Mar 2006 14:42:03 -0600 dunemush (pennmush/d/32_Configure 1.21.1.4.1.1.1.1.1.1.1.7.1.15.1.1.1.2.1.1.1.1 710) *************** *** 631,637 **** $me: Fatal Error: I can't find a Bourne Shell anywhere. Usually it's in /bin/sh. How did you even get this far? ! Please contact me (Javelin) at dunemush@pennmush.org and we'll try to straighten this all out. EOM exit 1 --- 631,637 ---- $me: Fatal Error: I can't find a Bourne Shell anywhere. Usually it's in /bin/sh. How did you even get this far? ! Please contact me (PennMUSH developers) at pennmush-developers@pennmush.org and we'll try to straighten this all out. EOM exit 1 *************** *** 1191,1197 **** You have the option of continuing the configuration process, despite the distinct possibility that your kit is damaged, by typing 'y'es. If you do, don't blame me if something goes wrong. I advise you to type 'n'o ! and contact the author (dunemush@pennmush.org). EOM echo $n "Continue? [n] $c" >&4 --- 1191,1197 ---- You have the option of continuing the configuration process, despite the distinct possibility that your kit is damaged, by typing 'y'es. If you do, don't blame me if something goes wrong. I advise you to type 'n'o ! and contact the author (pennmush-developers@pennmush.org). EOM echo $n "Continue? [n] $c" >&4 *************** *** 1285,1291 **** Unix system. If despite that it blows up on yours, your best bet is to edit Configure and run it again. If you can't run Configure for some reason, you'll have to generate a config.sh file by hand. Whatever problems you ! have, let me (dunemush@pennmush.org) know how I blew it. This installation script affects things in two ways: --- 1285,1291 ---- Unix system. If despite that it blows up on yours, your best bet is to edit Configure and run it again. If you can't run Configure for some reason, you'll have to generate a config.sh file by hand. Whatever problems you ! have, let me (pennmush-developers@pennmush.org) know how I blew it. This installation script affects things in two ways: *************** *** 1593,1599 **** (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4 dflt='' : Half the following guesses are probably wrong... If you have better ! : tests or hints, please send them to dunemush@pennmush.org : The metaconfig authors would also appreciate a copy... $test -f /irix && osname=irix $test -f /xenix && osname=sco_xenix --- 1593,1599 ---- (cd $src/hints; ls -C *.sh) | $sed 's/\.sh/ /g' >&4 dflt='' : Half the following guesses are probably wrong... If you have better ! : tests or hints, please send them to pennmush-developers@pennmush.org : The metaconfig authors would also appreciate a copy... $test -f /irix && osname=irix $test -f /xenix && osname=sco_xenix *** 1_8_0.94/game/txt/hlp/penncode.hlp Thu, 15 Jul 2004 14:37:11 -0500 dunemush (pennmush/d/40_penncode.h 1.5.1.8 600) --- 1_8_0.101(w)/game/txt/hlp/penncode.hlp Fri, 24 Mar 2006 14:42:13 -0600 dunemush (pennmush/d/40_penncode.h 1.5.1.9.1.1 600) *************** *** 1,19 **** & code & contact PennMUSH is developed by a team of developers whose names are ! listed in 'help changes'. It is maintained by Javelin, aka ! Alan Schwartz. Suggestions, comments, and bug reports are welcome: Report bugs at: pennmush-bugs@pennmush.org Comments/suggestions to: pennmush-developers@pennmush.org - Reach Javelin at: dunemush@pennmush.org For information about downloading PennMUSH, see 'help download'. For information about changes in versions of the code, see 'help changes'. & download The latest version of this MUSH code is available at ! http://download..pennmush.org/Source. It will be called something like pennmush-1.7.6p0.tar.Z, depending on the version number. You will also find files of translations of server messages into various languages in Source/translations/. See help i18n --- 1,18 ---- & code & contact PennMUSH is developed by a team of developers whose names are ! listed in 'help changes'. Suggestions, comments, and bug reports are ! welcome: Report bugs at: pennmush-bugs@pennmush.org Comments/suggestions to: pennmush-developers@pennmush.org For information about downloading PennMUSH, see 'help download'. For information about changes in versions of the code, see 'help changes'. & download The latest version of this MUSH code is available at ! http://download.pennmush.org/Source. It will be called something like pennmush-1.7.6p0.tar.Z, depending on the version number. You will also find files of translations of server messages into various languages in Source/translations/. See help i18n *************** *** 49,61 **** & copyright & copyrite & license ! Copyright, License, and Credits for PennMUSH 1.x. Revised October 2002. I. Copyrights PennMUSH 1.x ! Copyright (c) 1995-2002, Alan Schwartz, T. Alexander Popiel, Shawn Wagner ! Contact email for Alan Schwartz: . Some code used in this server may have been derived from the TinyMUSH 2.2 source code, with permission. TinyMUSH 2.2 is --- 48,60 ---- & copyright & copyrite & license ! Copyright, License, and Credits for PennMUSH 1.x. Revised March 2006. I. Copyrights PennMUSH 1.x ! Copyright (c) 1995-2006, T. Alexander Popiel ! and Shawn Wagner . Some code used in this server may have been derived from the TinyMUSH 2.2 source code, with permission. TinyMUSH 2.2 is *** 1_8_0.94/src/mysocket.c Tue, 08 Jun 2004 12:15:45 -0500 dunemush (pennmush/f/0_mysocket.c 1.16.1.1.1.1.1.1.1.4.1.4.1.19 660) --- 1_8_0.101(w)/src/mysocket.c Sat, 25 Mar 2006 15:44:53 -0600 dunemush (pennmush/f/0_mysocket.c 1.16.1.1.1.1.1.1.1.4.1.4.1.20 660) *************** *** 354,360 **** } ! /** Enable TCP keepalive on the given socket if we can. * \param s socket. */ --- 354,360 ---- } ! #ifndef INFOSLAVE /** Enable TCP keepalive on the given socket if we can. * \param s socket. */ *************** *** 362,386 **** void set_keepalive(int s __attribute__ ((__unused__))) { ! #ifdef CAN_KEEPALIVE int keepalive = 1; ! #ifdef CAN_KEEPIDLE ! int keepidle = 900; #endif /* enable TCP keepalive */ if (setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (void *) &keepalive, sizeof(keepalive)) == -1) fprintf(stderr, "[%d] could not set SO_KEEPALIVE: errno %d", s, errno); ! #ifdef CAN_KEEPIDLE if (setsockopt(s, IPPROTO_TCP, TCP_KEEPIDLE, (void *) &keepidle, sizeof(keepidle)) == -1) fprintf(stderr, "[%d] could not set TCP_KEEPALIVE: errno %d", s, errno); #endif #endif return; } ! /** Connect a socket, possibly making it nonblocking first. --- 362,394 ---- void set_keepalive(int s __attribute__ ((__unused__))) { ! #ifdef SO_KEEPALIVE int keepalive = 1; ! #if defined(TCP_KEEPIDLE) || defined(TCP_KEEPALIVE) ! int keepidle = options.keepalive_timeout; #endif /* enable TCP keepalive */ if (setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (void *) &keepalive, sizeof(keepalive)) == -1) fprintf(stderr, "[%d] could not set SO_KEEPALIVE: errno %d", s, errno); ! ! /* And set the ping time to something reasonable instead of the ! default 2 hours. Linux, NetBSD and o thers use TCP_KEEPIDLE to do ! this. OS X and possibly others use TCP_KEEPALIVE. */ ! #if defined(TCP_KEEPIDLE) if (setsockopt(s, IPPROTO_TCP, TCP_KEEPIDLE, (void *) &keepidle, sizeof(keepidle)) == -1) + fprintf(stderr, "[%d] could not set TCP_KEEPIDLE: errno %d", s, errno); + #elif defined(TCP_KEEPALIVE) + if (setsockopt(s, IPPROTO_TCP, TCP_KEEPALIVE, + (void *) &keepidle, sizeof(keepidle)) == -1) fprintf(stderr, "[%d] could not set TCP_KEEPALIVE: errno %d", s, errno); #endif #endif return; } ! #endif /** Connect a socket, possibly making it nonblocking first. *** 1_8_0.94/game/txt/hlp/pennvOLD.hlp Wed, 01 Feb 2006 09:11:20 -0600 dunemush (pennmush/g/30_pennvOLD.h 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.9.1.2.1.5.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 660) --- 1_8_0.101(w)/game/txt/hlp/pennvOLD.hlp Sat, 25 Mar 2006 15:44:54 -0600 dunemush (pennmush/g/30_pennvOLD.h 1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.9.1.2.1.5.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 660) *************** *** 4417,4423 **** For information on a specific patchlevel of one of the versions listed, type 'help p'. For example, 'help 1.7.2p3' ! 1.8.0: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 1.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 --- 4417,4423 ---- For information on a specific patchlevel of one of the versions listed, type 'help p'. For example, 'help 1.7.2p3' ! 1.8.0: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 1.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40 *** 1_8_0.94/game/txt/hlp/pennv180.hlp Sat, 25 Feb 2006 14:57:08 -0600 dunemush (pennmush/h/28_pennv180.h 1.1.1.2.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1 660) --- 1_8_0.101(w)/game/txt/hlp/pennv180.hlp Sat, 25 Mar 2006 15:44:54 -0600 dunemush (pennmush/h/28_pennv180.h 1.1.1.2.1.1.1.2.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.4.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.2.1.1 660) *************** *** 1,4 **** ! & 1.8.0p11 & changes This is a list of changes in this patchlevel which are probably of interest to players. More information about new commands and functions --- 1,4 ---- ! & 1.8.0p12 & changes This is a list of changes in this patchlevel which are probably of interest to players. More information about new commands and functions *************** *** 11,16 **** --- 11,36 ---- A list of the patchlevels associated with each release can be read in 'help patchlevels'. + Version 1.8.0 patchlevel 12 March 25, 2006 + + Minor changes: + * New config option keepalive_timeout for setting the socket-level + are-you-there ping interval used to help work around broken routers. [SW] + * Changing the SO_KEEPALIVE interval works on more OSes, including OS X. [SW] + * Passwords are masked when commands that require them are logged + in command.log. Suggested by Sumta. [SW] + Fixes + * Added help entry for @debugforwardlist. Suggested by d'Ark@M*U*S*H. + * Help fixes by Talvo@M*U*S*H. + * When objects are nuked, their creation time is reset to 0. + This prevents garbage objects from maintaining the same objid. + Suggested by Cooee@PDX + * When doing english-style matching, plain numbers ('3') were + treated as adjectives (like '3rd') and shouldn't have been. + Fixed. Reported by Stinky@M*U*S*H. + + + & 1.8.0p11 Version 1.8.0 patchlevel 11 February 25, 2006 Fixes: *** 1_8_0.94/CHANGES.180 Sat, 25 Feb 2006 14:57:08 -0600 dunemush (pennmush/h/21_CHANGES.18 1.61 600) --- 1_8_0.101(w)/CHANGES.180 Sat, 25 Mar 2006 15:41:44 -0600 dunemush (pennmush/h/21_CHANGES.18 1.67 600) *************** *** 13,18 **** --- 13,37 ---- ========================================================================== + Version 1.8.0 patchlevel 12 March 25, 2006 + + Minor changes: + * New config option keepalive_timeout for setting the socket-level + are-you-there ping interval used to help work around broken routers. [SW] + * Changing the SO_KEEPALIVE interval works on more OSes, including OS X. [SW] + * Passwords are masked when commands that require them are logged + in command.log. Suggested by Sumta. [SW] + Fixes + * Added help entry for @debugforwardlist. Suggested by d'Ark@M*U*S*H. + * Help fixes by Talvo@M*U*S*H. + * When objects are nuked, their creation time is reset to 0. + This prevents garbage objects from maintaining the same objid. + Suggested by Cooee@PDX + * When doing english-style matching, plain numbers ('3') were + treated as adjectives (like '3rd') and shouldn't have been. + Fixed. Reported by Stinky@M*U*S*H. + + Version 1.8.0 patchlevel 11 February 25, 2006 Fixes: