PennMUSH Community

Changeset 507

Show
Ignore:
Timestamp:
08/16/06 02:43:55 (2 years ago)
Author:
pennmush
Message:

PennMUSH 1.8.0p12 Archival

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • 1.8.0/CHANGES.180

    r505 r507  
    1313 
    1414========================================================================== 
     15 
     16Version 1.8.0 patchlevel 12                     March 25, 2006 
     17 
     18Minor changes: 
     19  * New config option keepalive_timeout for setting the socket-level 
     20    are-you-there ping interval used to help work around broken routers. [SW] 
     21  * Changing the SO_KEEPALIVE interval works on more OSes, including OS X. [SW] 
     22  * Passwords are masked when commands that require them are logged 
     23    in command.log. Suggested by Sumta. [SW] 
     24Fixes 
     25  * Added help entry for @debugforwardlist. Suggested by d'Ark@M*U*S*H. 
     26  * Help fixes by Talvo@M*U*S*H. 
     27  * When objects are nuked, their creation time is reset to 0.  
     28    This prevents garbage objects from maintaining the same objid. 
     29    Suggested by Cooee@PDX 
     30  * When doing english-style matching, plain numbers ('3') were 
     31    treated as adjectives (like '3rd') and shouldn't have been. 
     32    Fixed. Reported by Stinky@M*U*S*H. 
     33 
    1534 
    1635Version 1.8.0 patchlevel 11                     February 25, 2006 
  • 1.8.0/COPYRITE

    r505 r507  
    22 
    33/* 
    4  * Copyright, License, and Credits for PennMUSH 1.x. Revised October 2002
     4 * Copyright, License, and Credits for PennMUSH 1.x. Revised March 2006
    55 * 
    66 * I. Copyrights 
    77 * 
    88 * PennMUSH 1.x 
    9  * Copyright (c) 1995-2002, Alan Schwartz, T. Alexander Popiel, Shawn Wagner 
    10  * Contact email for Alan Schwartz: <dunemush@pennmush.org>.  
     9 * Copyright (c) 1995-2006, T. Alexander Popiel <talek@pennmush.org> and  
     10 * Shawn Wagner <raevnos@pennmush.org>. 
    1111 *  
    1212 * Some code used in this server may have been derived from the 
     
    171171 * Past and present PennMUSH development team members: 
    172172 *  T. Alexander Popiel, Ralph Melton, Thorvald Natvig, Luuk de Waard, 
    173  *  Shawn Wagner, Ervin Hearn III, Greg Millam 
     173 *  Shawn Wagner, Ervin Hearn III, Greg Millam, Alan "Javelin" Schwartz 
    174174 * Past and present PennMUSH porters: 
    175175 *  Nick Gammon, Sylvia, Dan Williams, Ervin Hearn III 
  • 1.8.0/Configure

    r503 r507  
    2121# $Id: Head.U 1.3 Mon, 10 Nov 2003 14:51:32 -0600 dunemush $ 
    2222# 
    23 # Generated on Fri Jan 13 22:05:44 CST 2006 [metaconfig 3.0 PL70] 
     23# Generated on Fri Mar 24 14:42:00 CST 2006 [metaconfig 3.0 PL70] 
    2424 
    2525cat >/tmp/c1$$ <<EOF 
     
    632632 
    633633Usually it's in /bin/sh.  How did you even get this far? 
    634 Please contact me (Javelin) at dunemush@pennmush.org and  
     634Please contact me (PennMUSH developers) at pennmush-developers@pennmush.org and  
    635635we'll try to straighten this all out. 
    636636EOM 
     
    11921192distinct possibility that your kit is damaged, by typing 'y'es.  If you 
    11931193do, don't blame me if something goes wrong.  I advise you to type 'n'o 
    1194 and contact the author (dunemush@pennmush.org). 
     1194and contact the author (pennmush-developers@pennmush.org). 
    11951195 
    11961196EOM 
     
    12861286Configure and run it again.  If you can't run Configure for some reason, 
    12871287you'll have to generate a config.sh file by hand.  Whatever problems you 
    1288 have, let me (dunemush@pennmush.org) know how I blew it. 
     1288have, let me (pennmush-developers@pennmush.org) know how I blew it. 
    12891289 
    12901290This installation script affects things in two ways: 
     
    15941594    dflt='' 
    15951595    : Half the following guesses are probably wrong... If you have better 
    1596     : tests or hints, please send them to dunemush@pennmush.org 
     1596    : tests or hints, please send them to pennmush-developers@pennmush.org 
    15971597    : The metaconfig authors would also appreciate a copy... 
    15981598    $test -f /irix && osname=irix 
  • 1.8.0/FAQ

    r483 r507  
    3737advanced to 1.7.0. 
    3838 
    39 Currently, the active development team is Javelin, Talek, and Raevnos. 
    40 The stable version is 1.8.0, and the development version is 1.8.1. 
     39Currently, the active development team is Javelin, Talek, Raevnos, 
     40Noltar, and Walker.  The stable version is 1.8.0, and the development 
     41version is 1.8.1. 
    4142 
    42431. How do I ask for help with a problem? 
    4344 
    44 Email to dunemush@pennmush.org 
     45Email to pennmush-developers@pennmush.org 
     46or visit http://www.pennmush.org/jitterbug/pennmush 
     47 
    4548When asking for help, please be as specific as you can about the 
    4649problem. Include at least the following: 
  • 1.8.0/Makefile.SH

    r479 r507  
    4040# the Configure script. If it doesn't work, you might try starting 
    4141# from the Makefile.old that's included instead, and reporting 
    42 # your problem (including this Makefile) to Paul/Javelin, 
    43 # dunemush@pennmush.org 
     42# your problem (including this Makefile) to pennmush-bugs@pennmush.org 
    4443# 
    4544# If you want to profile the code, add -pg -a -DPROFILING to CCFLAGS 
  • 1.8.0/Patchlevel

    r505 r507  
    11Do not edit this file. It is maintained by the official PennMUSH patches. 
    2 This is PennMUSH 1.8.0p11 
     2This is PennMUSH 1.8.0p12 
  • 1.8.0/README

    r483 r507  
    7777and Thorvald Natvig joined as a new member.  Many thanks go to Ralph 
    7878who contributed much time, code, and good cheer to PennMUSH. 
    79  
    80 Javelin, in conjunction with Talek (T. Alexander Popiel) and Thorvald 
    81 Natvig, are the current PennMUSH development team. 
     79Since that time, the development team has gained and lost members. 
     80The current membership is usually listed at the top of the 
     81latest CHANGES.<version> file. 
     82 
     83In November 2002, with the release of PennMUSH 1.7.6, PennMUSH 
     84began using the Artistic License (see the COPYRITE file), 
     85an open source/free software license. This license was 
     86simultaneously adopted by TinyMUSH (2.2.5, 3.x) and TinyMUX to 
     87facilitate code sharing and widen use. 
    8288 
    8389A MUSH manual should be available at ftp.digex.net, ftp.math.okstate.edu, 
     
    8894probably want Javelin's Guide for PennMUSH Gods, which should be 
    8995available where you got this code, or, in hypertext, as 
    90 http://pennmush.org/~alansz/guide.html 
     96http://pennmush.org/~alansz/guide.html. More recent versions 
     97may be available at http://community.pennmush.org. 
    9198 
    9299      Enjoy! 
     
    125132   response and is ideal for unusual bugs. A web-based submission 
    126133   form is at http://www.pennmush.org/jitterbug/pennmush 
    127  
    128 3. dunemush@pennmush.org is Javelin's email address. 
    129    This is a good place for small suggestions, common-seeming bugs, 
    130    etc. -- stuff you wouldn't want to bother all the developers with. 
    131    You will receive a quick response. 
    132134 
    133135When reporting a problem, please always include the following 
  • 1.8.0/game/mushcnf.dst

    r479 r507  
    210210unconnected_idle_timeout 5m 
    211211 
     212# Many common home network routers will drop a connection if there's 
     213# been no activity for a few minutes; they tend to assume the web is 
     214# the internet, and don't deal well with persistant connections like 
     215# mushes use. This option will make the server automatically send a 
     216# 'Are you still there?' query every few minutes to keep the 
     217# connection active. 
     218# NOTE: This doesn't work on all OSes, but does on the most popular 
     219# ones for mush hosting such as linux. 
     220keepalive_timeout 5m 
     221 
    212222# Should there be a limit on the number of logins the MUSH 
    213223# can accept? If your operating system has a limited number of 
  • 1.8.0/game/txt/hlp/penncmd.hlp

    r505 r507  
    13311331 
    13321332See also: @filter, @prefix, AUDIBLE, PUPPET 
     1333& @DEBUGFORWARDLIST 
     1334  @debugforwardlist <object> [=<list of dbrefs>] 
     1335 
     1336  When an object is set DEBUG, its @debugforwardlist attribute is checked, 
     1337  and if present, the debug output is forwarded to all the dbrefs in 
     1338  the @debugforwardlist. 
     1339 
     1340  The @debugforwardlist must be a space-seperated list of dbrefs. 
     1341  In order to forward to an object, you must either control it, 
     1342  have the pemit_all power, or, if it has a @lock/forward set,  pass 
     1343  its @lock/forward.  (If you want to allow all objects you own to 
     1344  forward to you, regardless of whether or not they control you, use 
     1345  @lock/forward me=$me) 
     1346 
     1347See also: DEBUG 
    13331348& @unfollow 
    13341349  @unfollow <object> = <message> 
  • 1.8.0/game/txt/hlp/penncode.hlp

    r469 r507  
    22& contact 
    33PennMUSH is developed by a team of developers whose names are 
    4 listed in 'help changes'. It is maintained by Javelin, aka 
    5 Alan Schwartz.  Suggestions, comments, and bug reports are welcome: 
     4listed in 'help changes'. Suggestions, comments, and bug reports are 
     5welcome: 
    66 
    77Report bugs at:               pennmush-bugs@pennmush.org 
    88Comments/suggestions to:      pennmush-developers@pennmush.org 
    9 Reach Javelin at:             dunemush@pennmush.org 
    109 
    1110For information about downloading PennMUSH, see 'help download'. 
     
    1413& download 
    1514The latest version of this MUSH code is available at 
    16 http://download..pennmush.org/Source.  It will be called something like 
     15http://download.pennmush.org/Source.  It will be called something like 
    1716pennmush-1.7.6p0.tar.Z, depending on the version number. You 
    1817will also find files of translations of server messages into various 
     
    5049& copyrite 
    5150& license 
    52 Copyright, License, and Credits for PennMUSH 1.x. Revised October 2002
     51Copyright, License, and Credits for PennMUSH 1.x. Revised March 2006
    5352 
    5453I. Copyrights 
    5554 
    5655PennMUSH 1.x 
    57 Copyright (c) 1995-2002, Alan Schwartz, T. Alexander Popiel, Shawn Wagner 
    58 Contact email for Alan Schwartz: <dunemush@pennmush.org>.  
     56Copyright (c) 1995-2006, T. Alexander Popiel <talek@pennmush.org> 
     57and Shawn Wagner <raevnos@pennmush.org>. 
    5958 
    6059Some code used in this server may have been derived from the 
  • 1.8.0/game/txt/hlp/penntop.hlp

    r505 r507  
    1717  On many MUSHes, list local commands with:       +help 
    1818 
    19 If there are any errors in the help text, please notify a wizard 
    20 in the game, or send mail to dunemush@pennmush.org, who maintain
    21 PennMUSH (and its distributed help files) but probably has no relation 
    22 to this MUSH in particular. 
    23    
     19If there are any errors in the help text, please notify a wizard in the 
     20game, or send mail to pennmush-bugs@pennmush.org, which is the addres
     21of the team who develop PennMUSH (and its distributed help files) but 
     22probably have no relation to this MUSH in particular. 
     23 
    2424& newbie 
    25    
     25 
    2626  If you are new to MUSHing, the help files may seem confusing. Most of 
    2727  them are written in a specific style, however, and once you understand 
  • 1.8.0/game/txt/hlp/pennv180.hlp

    r505 r507  
    1 & 1.8.0p11 
     1& 1.8.0p12 
    22& changes 
    33This is a list of changes in this patchlevel which are probably of 
     
    1212be read in 'help patchlevels'. 
    1313 
     14Version 1.8.0 patchlevel 12                     March 25, 2006 
     15 
     16Minor changes: 
     17  * New config option keepalive_timeout for setting the socket-level 
     18    are-you-there ping interval used to help work around broken routers. [SW] 
     19  * Changing the SO_KEEPALIVE interval works on more OSes, including OS X. [SW] 
     20  * Passwords are masked when commands that require them are logged 
     21    in command.log. Suggested by Sumta. [SW] 
     22Fixes 
     23  * Added help entry for @debugforwardlist. Suggested by d'Ark@M*U*S*H. 
     24  * Help fixes by Talvo@M*U*S*H. 
     25  * When objects are nuked, their creation time is reset to 0.  
     26    This prevents garbage objects from maintaining the same objid. 
     27    Suggested by Cooee@PDX 
     28  * When doing english-style matching, plain numbers ('3') were 
     29    treated as adjectives (like '3rd') and shouldn't have been. 
     30    Fixed. Reported by Stinky@M*U*S*H. 
     31 
     32 
     33& 1.8.0p11 
    1434Version 1.8.0 patchlevel 11                     February 25, 2006 
    1535 
  • 1.8.0/game/txt/hlp/pennvOLD.hlp

    r505 r507  
    44184418type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3' 
    44194419 
    4420 1.8.0: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 
     44201.8.0: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 
    442144211.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 
    44224422       19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 
  • 1.8.0/hdrs/conf.h

    r501 r507  
    114114  int idle_timeout; /**< Maximum idle time allowed, in minutes */ 
    115115  int unconnected_idle_timeout; /**< Maximum idle time for connections without dbrefs, in minutes */ 
     116  int keepalive_timeout; /**< Number of seconds between TCP keepalive pings */ 
    116117  int dump_interval;    /**< Interval between database dumps, in seconds */ 
    117118  char dump_message[256]; /**< Message shown at start of nonforking dump */ 
  • 1.8.0/hdrs/copyrite.h

    r471 r507  
    22 
    33/* 
    4  * Copyright, License, and Credits for PennMUSH 1.x. Revised October 2002
     4 * Copyright, License, and Credits for PennMUSH 1.x. Revised March 2006
    55 * 
    66 * I. Copyrights 
    77 * 
    88 * PennMUSH 1.x 
    9  * Copyright (c) 1995-2002, Alan Schwartz, T. Alexander Popiel, Shawn Wagner 
    10  * Contact email for Alan Schwartz: <dunemush@pennmush.org>.  
     9 * Copyright (c) 1995-2006, T. Alexander Popiel <talek@pennmush.org> 
     10 * and Shawn Wagner <raevnos@pennmush.org> 
    1111 *  
    1212 * Some code used in this server may have been derived from the 
     
    171171 * Past and present PennMUSH development team members: 
    172172 *  T. Alexander Popiel, Ralph Melton, Thorvald Natvig, Luuk de Waard, 
    173  *  Shawn Wagner, Ervin Hearn III 
     173 *  Shawn Wagner, Ervin Hearn III, Alan "Javelin" Schwartz 
    174174 * Past and present PennMUSH porters: 
    175175 *  Nick Gammon, Sylvia, Dan Williams, Ervin Hearn III 
  • 1.8.0/hdrs/version.h

    r505 r507  
    11#define VERSION "1.8.0" 
    2 #define PATCHLEVEL "11
    3 #define PATCHDATE "[02/25/2006]" 
    4 #define NUMVERSION 1008000011 
     2#define PATCHLEVEL "12
     3#define PATCHDATE "[03/25/2006]" 
     4#define NUMVERSION 1008000012 
  • 1.8.0/src/conf.c

    r501 r507  
    292292  {"unconnected_idle_timeout", cf_time, &options.unconnected_idle_timeout, 
    293293   100000, 0, "limits"} 
     294  , 
     295  {"keepalive_timeout", cf_time, &options.keepalive_timeout, 10000, 0, "limits"} 
    294296  , 
    295297  {"whisper_loudness", cf_int, &options.whisper_loudness, 100, 0, "limits"} 
     
    10301032  options.idle_timeout = 0; 
    10311033  options.unconnected_idle_timeout = 300; 
     1034  options.keepalive_timeout = 300; 
    10321035  options.dump_interval = 3601; 
    10331036  strcpy(options.dump_message, 
  • 1.8.0/src/destroy.c

    r471 r507  
    728728  Exits(thing) = NOTHING; 
    729729  Home(thing) = NOTHING; 
     730  CreTime(thing) = 0;       /* Prevents it from matching objids */ 
    730731 
    731732  clear_objdata(thing); 
  • 1.8.0/src/fundb.c

    r497 r507  
    13321332  dbref it = match_thing(executor, args[0]); 
    13331333 
    1334   if (GoodObject(it)
     1334  if (GoodObject(it) && !IsGarbage(it)
    13351335    safe_str(show_time(CreTime(it), 0), buff, bp); 
    13361336  else 
     
    13421342{ 
    13431343  dbref it = match_thing(executor, args[0]); 
    1344   if (!GoodObject(it)
     1344  if (!GoodObject(it) || IsGarbage(it)
    13451345    safe_str(T(e_notvis), buff, bp); 
    13461346  else if (!Can_Examine(executor, it) || IsPlayer(it)) 
  • 1.8.0/src/game.c

    r491 r507  
    6868#include "help.h" 
    6969#include "dbio.h" 
     70#include "pcre.h" 
    7071 
    7172#ifdef hpux 
     
    9798 
    9899extern void initialize_mt(void); 
    99  
     100extern const unsigned char *tables; 
    100101extern void conf_default_set(void); 
    101102static int dump_database_internal(void); 
     
    967968         } while(0) 
    968969 
     970/** Attempt to tell if the command is a @password or @newpassword, so 
     971  * that the password isn't logged by Suspect or log_commands 
     972  * \param cmd The command to check 
     973  * \return A sanitized version of the command suitable for logging. 
     974  */ 
     975static char * 
     976passwd_filter(const char *cmd) 
     977{ 
     978  static int initialized = 0; 
     979  static pcre *pass_ptn, *newpass_ptn; 
     980  static char buff[BUFFER_LEN]; 
     981  char *bp = buff; 
     982  int ovec[20]; 
     983  size_t cmdlen; 
     984  int matched; 
     985 
     986  if (!initialized) { 
     987    const char *errptr; 
     988    int eo; 
     989 
     990    pass_ptn = pcre_compile("^(@pass.*?)\\s([^=]*)=(.*)", 
     991                PCRE_CASELESS, &errptr, &eo, tables); 
     992    if (!pass_ptn) 
     993      do_log(LT_ERR, GOD, GOD, "pcre_compile: %s", errptr); 
     994    newpass_ptn = pcre_compile("^(@(?:newp|pcreate)[^=]*)=(.*)", 
     995                   PCRE_CASELESS, &errptr, &eo, tables); 
     996    if (!newpass_ptn) 
     997      do_log(LT_ERR, GOD, GOD, "pcre_compile: %s", errptr); 
     998    initialized = 1; 
     999  } 
     1000 
     1001  cmdlen = strlen(cmd); 
     1002 
     1003  if ((matched = pcre_exec(pass_ptn, NULL, cmd, cmdlen, 0, 0, ovec, 20)) > 0) { 
     1004    /* It's a password */ 
     1005    pcre_copy_substring(cmd, ovec, matched, 1, buff, BUFFER_LEN); 
     1006    bp = buff + strlen(buff); 
     1007    safe_chr(' ', buff, &bp); 
     1008    safe_fill('*', ovec[5] - ovec[4], buff, &bp); 
     1009    safe_chr('=', buff, &bp); 
     1010    safe_fill('*', ovec[7] - ovec[6], buff, &bp); 
     1011  } else if ((matched = pcre_exec(newpass_ptn, NULL, cmd, cmdlen, 0, 0, 
     1012                  ovec, 20)) > 0) { 
     1013    pcre_copy_substring(cmd, ovec, matched, 1, buff, BUFFER_LEN); 
     1014    bp = buff + strlen(buff); 
     1015    safe_chr('=', buff, &bp); 
     1016    safe_fill('*', ovec[5] - ovec[4], buff, &bp); 
     1017  } else { 
     1018    safe_strl(cmd, cmdlen, buff, &bp); 
     1019  } 
     1020  *bp = '\0'; 
     1021  return buff; 
     1022} 
     1023 
     1024 
    9691025/** Attempt to match and execute a command. 
    9701026 * This function performs some sanity checks and then attempts to 
     
    10411097  orator = player; 
    10421098 
    1043   log_activity(LA_CMD, player, command); 
    1044   if (options.log_commands || Suspect(player)) 
    1045     do_log(LT_CMD, player, NOTHING, "%s", command); 
    1046  
    1047   if Verbose 
    1048     (player) 
    1049       raw_notify(Owner(player), tprintf("#%d] %s", player, command)); 
    1050  
    10511099  /* eat leading whitespace */ 
    10521100  while (*command && isspace((unsigned char) *command)) 
     
    10621110  if ((!command || !*command) && !from_port) 
    10631111    return; 
     1112 
     1113  { 
     1114    char *msg = passwd_filter(command); 
     1115 
     1116    log_activity(LA_CMD, player, msg); 
     1117    if (options.log_commands || Suspect(player)) 
     1118      do_log(LT_CMD, player, NOTHING, "%s", msg); 
     1119    if Verbose 
     1120      (player) 
     1121    raw_notify(Owner(player), tprintf("#%d] %s", player, msg)); 
     1122  } 
    10641123 
    10651124  /* important home checking comes first! */ 
     
    10731132    return; 
    10741133  } 
     1134 
     1135 
    10751136  strcpy(unp, command); 
    10761137 
  • 1.8.0/src/match.c

    r471 r507  
    452452      count = -1; 
    453453    } 
    454   } 
     454  } else 
     455    count = -1; 
    455456  *mname = ' '; 
    456457  if (count < 0) { 
  • 1.8.0/src/mysocket.c

    r467 r507  
    355355 
    356356 
    357  
     357#ifndef INFOSLAVE 
    358358/** Enable TCP keepalive on the given socket if we can. 
    359359 * \param s socket. 
     
    363363set_keepalive(int s __attribute__ ((__unused__))) 
    364364{ 
    365 #ifdef CAN_KEEPALIVE 
     365#ifdef SO_KEEPALIVE 
    366366  int keepalive = 1; 
    367 #ifdef CAN_KEEPIDLE 
    368   int keepidle = 900
     367#if defined(TCP_KEEPIDLE) || defined(TCP_KEEPALIVE) 
     368  int keepidle = options.keepalive_timeout
    369369#endif 
    370370 
     
    373373         (void *) &keepalive, sizeof(keepalive)) == -1) 
    374374    fprintf(stderr, "[%d] could not set SO_KEEPALIVE: errno %d", s, errno); 
    375 #ifdef CAN_KEEPIDLE 
     375 
     376  /* And set the ping time to something reasonable instead of the 
     377     default 2 hours. Linux, NetBSD and o thers use TCP_KEEPIDLE to do 
     378     this. OS X and possibly others use TCP_KEEPALIVE. */ 
     379#if defined(TCP_KEEPIDLE) 
    376380  if (setsockopt(s, IPPROTO_TCP, TCP_KEEPIDLE, 
    377381         (void *) &keepidle, sizeof(keepidle)) == -1) 
     382    fprintf(stderr, "[%d] could not set TCP_KEEPIDLE: errno %d", s, errno); 
     383#elif defined(TCP_KEEPALIVE) 
     384  if (setsockopt(s, IPPROTO_TCP, TCP_KEEPALIVE, 
     385         (void *) &keepidle, sizeof(keepidle)) == -1) 
    378386    fprintf(stderr, "[%d] could not set TCP_KEEPALIVE: errno %d", s, errno); 
    379387#endif 
     
    381389  return; 
    382390} 
    383  
     391#endif 
    384392 
    385393