Changeset 507
- Timestamp:
- 08/16/06 02:43:55 (2 years ago)
- Files:
-
- 1.8.0/CHANGES.180 (modified) (1 diff)
- 1.8.0/COPYRITE (modified) (2 diffs)
- 1.8.0/Configure (modified) (5 diffs)
- 1.8.0/FAQ (modified) (1 diff)
- 1.8.0/Makefile.SH (modified) (1 diff)
- 1.8.0/Patchlevel (modified) (1 diff)
- 1.8.0/README (modified) (3 diffs)
- 1.8.0/game/mushcnf.dst (modified) (1 diff)
- 1.8.0/game/txt/hlp/penncmd.hlp (modified) (1 diff)
- 1.8.0/game/txt/hlp/penncode.hlp (modified) (3 diffs)
- 1.8.0/game/txt/hlp/penntop.hlp (modified) (1 diff)
- 1.8.0/game/txt/hlp/pennv180.hlp (modified) (2 diffs)
- 1.8.0/game/txt/hlp/pennvOLD.hlp (modified) (1 diff)
- 1.8.0/hdrs/conf.h (modified) (1 diff)
- 1.8.0/hdrs/copyrite.h (modified) (2 diffs)
- 1.8.0/hdrs/version.h (modified) (1 diff)
- 1.8.0/src/conf.c (modified) (2 diffs)
- 1.8.0/src/destroy.c (modified) (1 diff)
- 1.8.0/src/fundb.c (modified) (2 diffs)
- 1.8.0/src/game.c (modified) (6 diffs)
- 1.8.0/src/match.c (modified) (1 diff)
- 1.8.0/src/mysocket.c (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
1.8.0/CHANGES.180
r505 r507 13 13 14 14 ========================================================================== 15 16 Version 1.8.0 patchlevel 12 March 25, 2006 17 18 Minor 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] 24 Fixes 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 15 34 16 35 Version 1.8.0 patchlevel 11 February 25, 2006 1.8.0/COPYRITE
r505 r507 2 2 3 3 /* 4 * Copyright, License, and Credits for PennMUSH 1.x. Revised October 2002.4 * Copyright, License, and Credits for PennMUSH 1.x. Revised March 2006. 5 5 * 6 6 * I. Copyrights 7 7 * 8 8 * PennMUSH 1.x 9 * Copyright (c) 1995-200 2, Alan Schwartz, T. Alexander Popiel, Shawn Wagner10 * 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>. 11 11 * 12 12 * Some code used in this server may have been derived from the … … 171 171 * Past and present PennMUSH development team members: 172 172 * 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 174 174 * Past and present PennMUSH porters: 175 175 * Nick Gammon, Sylvia, Dan Williams, Ervin Hearn III 1.8.0/Configure
r503 r507 21 21 # $Id: Head.U 1.3 Mon, 10 Nov 2003 14:51:32 -0600 dunemush $ 22 22 # 23 # Generated on Fri Jan 13 22:05:44CST 2006 [metaconfig 3.0 PL70]23 # Generated on Fri Mar 24 14:42:00 CST 2006 [metaconfig 3.0 PL70] 24 24 25 25 cat >/tmp/c1$$ <<EOF … … 632 632 633 633 Usually it's in /bin/sh. How did you even get this far? 634 Please contact me ( Javelin) at dunemush@pennmush.org and634 Please contact me (PennMUSH developers) at pennmush-developers@pennmush.org and 635 635 we'll try to straighten this all out. 636 636 EOM … … 1192 1192 distinct possibility that your kit is damaged, by typing 'y'es. If you 1193 1193 do, don't blame me if something goes wrong. I advise you to type 'n'o 1194 and contact the author ( dunemush@pennmush.org).1194 and contact the author (pennmush-developers@pennmush.org). 1195 1195 1196 1196 EOM … … 1286 1286 Configure and run it again. If you can't run Configure for some reason, 1287 1287 you'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.1288 have, let me (pennmush-developers@pennmush.org) know how I blew it. 1289 1289 1290 1290 This installation script affects things in two ways: … … 1594 1594 dflt='' 1595 1595 : Half the following guesses are probably wrong... If you have better 1596 : tests or hints, please send them to dunemush@pennmush.org1596 : tests or hints, please send them to pennmush-developers@pennmush.org 1597 1597 : The metaconfig authors would also appreciate a copy... 1598 1598 $test -f /irix && osname=irix 1.8.0/FAQ
r483 r507 37 37 advanced to 1.7.0. 38 38 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. 39 Currently, the active development team is Javelin, Talek, Raevnos, 40 Noltar, and Walker. The stable version is 1.8.0, and the development 41 version is 1.8.1. 41 42 42 43 1. How do I ask for help with a problem? 43 44 44 Email to dunemush@pennmush.org 45 Email to pennmush-developers@pennmush.org 46 or visit http://www.pennmush.org/jitterbug/pennmush 47 45 48 When asking for help, please be as specific as you can about the 46 49 problem. Include at least the following: 1.8.0/Makefile.SH
r479 r507 40 40 # the Configure script. If it doesn't work, you might try starting 41 41 # 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 44 43 # 45 44 # If you want to profile the code, add -pg -a -DPROFILING to CCFLAGS 1.8.0/Patchlevel
r505 r507 1 1 Do not edit this file. It is maintained by the official PennMUSH patches. 2 This is PennMUSH 1.8.0p1 12 This is PennMUSH 1.8.0p12 1.8.0/README
r483 r507 77 77 and Thorvald Natvig joined as a new member. Many thanks go to Ralph 78 78 who 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. 79 Since that time, the development team has gained and lost members. 80 The current membership is usually listed at the top of the 81 latest CHANGES.<version> file. 82 83 In November 2002, with the release of PennMUSH 1.7.6, PennMUSH 84 began using the Artistic License (see the COPYRITE file), 85 an open source/free software license. This license was 86 simultaneously adopted by TinyMUSH (2.2.5, 3.x) and TinyMUX to 87 facilitate code sharing and widen use. 82 88 83 89 A MUSH manual should be available at ftp.digex.net, ftp.math.okstate.edu, … … 88 94 probably want Javelin's Guide for PennMUSH Gods, which should be 89 95 available where you got this code, or, in hypertext, as 90 http://pennmush.org/~alansz/guide.html 96 http://pennmush.org/~alansz/guide.html. More recent versions 97 may be available at http://community.pennmush.org. 91 98 92 99 Enjoy! … … 125 132 response and is ideal for unusual bugs. A web-based submission 126 133 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.132 134 133 135 When reporting a problem, please always include the following 1.8.0/game/mushcnf.dst
r479 r507 210 210 unconnected_idle_timeout 5m 211 211 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. 220 keepalive_timeout 5m 221 212 222 # Should there be a limit on the number of logins the MUSH 213 223 # can accept? If your operating system has a limited number of 1.8.0/game/txt/hlp/penncmd.hlp
r505 r507 1331 1331 1332 1332 See 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 1347 See also: DEBUG 1333 1348 & @unfollow 1334 1349 @unfollow <object> = <message> 1.8.0/game/txt/hlp/penncode.hlp
r469 r507 2 2 & contact 3 3 PennMUSH is developed by a team of developers whose names are 4 listed in 'help changes'. It is maintained by Javelin, aka5 Alan Schwartz. Suggestions, comments, and bug reports arewelcome:4 listed in 'help changes'. Suggestions, comments, and bug reports are 5 welcome: 6 6 7 7 Report bugs at: pennmush-bugs@pennmush.org 8 8 Comments/suggestions to: pennmush-developers@pennmush.org 9 Reach Javelin at: dunemush@pennmush.org10 9 11 10 For information about downloading PennMUSH, see 'help download'. … … 14 13 & download 15 14 The latest version of this MUSH code is available at 16 http://download. .pennmush.org/Source. It will be called something like15 http://download.pennmush.org/Source. It will be called something like 17 16 pennmush-1.7.6p0.tar.Z, depending on the version number. You 18 17 will also find files of translations of server messages into various … … 50 49 & copyrite 51 50 & license 52 Copyright, License, and Credits for PennMUSH 1.x. Revised October 2002.51 Copyright, License, and Credits for PennMUSH 1.x. Revised March 2006. 53 52 54 53 I. Copyrights 55 54 56 55 PennMUSH 1.x 57 Copyright (c) 1995-200 2, Alan Schwartz, T. Alexander Popiel, Shawn Wagner58 Contact email for Alan Schwartz: <dunemush@pennmush.org>. 56 Copyright (c) 1995-2006, T. Alexander Popiel <talek@pennmush.org> 57 and Shawn Wagner <raevnos@pennmush.org>. 59 58 60 59 Some code used in this server may have been derived from the 1.8.0/game/txt/hlp/penntop.hlp
r505 r507 17 17 On many MUSHes, list local commands with: +help 18 18 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 maintains21 PennMUSH (and its distributed help files) but probably has no relation 22 to this MUSH in particular.23 19 If there are any errors in the help text, please notify a wizard in the 20 game, or send mail to pennmush-bugs@pennmush.org, which is the address 21 of the team who develop PennMUSH (and its distributed help files) but 22 probably have no relation to this MUSH in particular. 23 24 24 & newbie 25 25 26 26 If you are new to MUSHing, the help files may seem confusing. Most of 27 27 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.0p1 11 & 1.8.0p12 2 2 & changes 3 3 This is a list of changes in this patchlevel which are probably of … … 12 12 be read in 'help patchlevels'. 13 13 14 Version 1.8.0 patchlevel 12 March 25, 2006 15 16 Minor 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] 22 Fixes 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 14 34 Version 1.8.0 patchlevel 11 February 25, 2006 15 35 1.8.0/game/txt/hlp/pennvOLD.hlp
r505 r507 4418 4418 type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3' 4419 4419 4420 1.8.0: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 4420 1.8.0: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 4421 4421 1.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 4422 4422 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 114 114 int idle_timeout; /**< Maximum idle time allowed, in minutes */ 115 115 int unconnected_idle_timeout; /**< Maximum idle time for connections without dbrefs, in minutes */ 116 int keepalive_timeout; /**< Number of seconds between TCP keepalive pings */ 116 117 int dump_interval; /**< Interval between database dumps, in seconds */ 117 118 char dump_message[256]; /**< Message shown at start of nonforking dump */ 1.8.0/hdrs/copyrite.h
r471 r507 2 2 3 3 /* 4 * Copyright, License, and Credits for PennMUSH 1.x. Revised October 2002.4 * Copyright, License, and Credits for PennMUSH 1.x. Revised March 2006. 5 5 * 6 6 * I. Copyrights 7 7 * 8 8 * PennMUSH 1.x 9 * Copyright (c) 1995-200 2, Alan Schwartz, T. Alexander Popiel, Shawn Wagner10 * 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> 11 11 * 12 12 * Some code used in this server may have been derived from the … … 171 171 * Past and present PennMUSH development team members: 172 172 * 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 174 174 * Past and present PennMUSH porters: 175 175 * Nick Gammon, Sylvia, Dan Williams, Ervin Hearn III 1.8.0/hdrs/version.h
r505 r507 1 1 #define VERSION "1.8.0" 2 #define PATCHLEVEL "1 1"3 #define PATCHDATE "[0 2/25/2006]"4 #define NUMVERSION 100800001 12 #define PATCHLEVEL "12" 3 #define PATCHDATE "[03/25/2006]" 4 #define NUMVERSION 1008000012 1.8.0/src/conf.c
r501 r507 292 292 {"unconnected_idle_timeout", cf_time, &options.unconnected_idle_timeout, 293 293 100000, 0, "limits"} 294 , 295 {"keepalive_timeout", cf_time, &options.keepalive_timeout, 10000, 0, "limits"} 294 296 , 295 297 {"whisper_loudness", cf_int, &options.whisper_loudness, 100, 0, "limits"} … … 1030 1032 options.idle_timeout = 0; 1031 1033 options.unconnected_idle_timeout = 300; 1034 options.keepalive_timeout = 300; 1032 1035 options.dump_interval = 3601; 1033 1036 strcpy(options.dump_message, 1.8.0/src/destroy.c
r471 r507 728 728 Exits(thing) = NOTHING; 729 729 Home(thing) = NOTHING; 730 CreTime(thing) = 0; /* Prevents it from matching objids */ 730 731 731 732 clear_objdata(thing); 1.8.0/src/fundb.c
r497 r507 1332 1332 dbref it = match_thing(executor, args[0]); 1333 1333 1334 if (GoodObject(it) )1334 if (GoodObject(it) && !IsGarbage(it)) 1335 1335 safe_str(show_time(CreTime(it), 0), buff, bp); 1336 1336 else … … 1342 1342 { 1343 1343 dbref it = match_thing(executor, args[0]); 1344 if (!GoodObject(it) )1344 if (!GoodObject(it) || IsGarbage(it)) 1345 1345 safe_str(T(e_notvis), buff, bp); 1346 1346 else if (!Can_Examine(executor, it) || IsPlayer(it)) 1.8.0/src/game.c
r491 r507 68 68 #include "help.h" 69 69 #include "dbio.h" 70 #include "pcre.h" 70 71 71 72 #ifdef hpux … … 97 98 98 99 extern void initialize_mt(void); 99 100 extern const unsigned char *tables; 100 101 extern void conf_default_set(void); 101 102 static int dump_database_internal(void); … … 967 968 } while(0) 968 969 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 */ 975 static char * 976 passwd_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 969 1025 /** Attempt to match and execute a command. 970 1026 * This function performs some sanity checks and then attempts to … … 1041 1097 orator = player; 1042 1098 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 Verbose1048 (player)1049 raw_notify(Owner(player), tprintf("#%d] %s", player, command));1050 1051 1099 /* eat leading whitespace */ 1052 1100 while (*command && isspace((unsigned char) *command)) … … 1062 1110 if ((!command || !*command) && !from_port) 1063 1111 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 } 1064 1123 1065 1124 /* important home checking comes first! */ … … 1073 1132 return; 1074 1133 } 1134 1135 1075 1136 strcpy(unp, command); 1076 1137 1.8.0/src/match.c
r471 r507 452 452 count = -1; 453 453 } 454 } 454 } else 455 count = -1; 455 456 *mname = ' '; 456 457 if (count < 0) { 1.8.0/src/mysocket.c
r467 r507 355 355 356 356 357 357 #ifndef INFOSLAVE 358 358 /** Enable TCP keepalive on the given socket if we can. 359 359 * \param s socket. … … 363 363 set_keepalive(int s __attribute__ ((__unused__))) 364 364 { 365 #ifdef CAN_KEEPALIVE365 #ifdef SO_KEEPALIVE 366 366 int keepalive = 1; 367 #if def CAN_KEEPIDLE368 int keepidle = 900;367 #if defined(TCP_KEEPIDLE) || defined(TCP_KEEPALIVE) 368 int keepidle = options.keepalive_timeout; 369 369 #endif 370 370 … … 373 373 (void *) &keepalive, sizeof(keepalive)) == -1) 374 374 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) 376 380 if (setsockopt(s, IPPROTO_TCP, TCP_KEEPIDLE, 377 381 (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) 378 386 fprintf(stderr, "[%d] could not set TCP_KEEPALIVE: errno %d", s, errno); 379 387 #endif … … 381 389 return; 382 390 } 383 391 #endif 384 392 385 393
