Changeset 519
- Timestamp:
- 08/16/06 02:58:08 (2 years ago)
- Files:
-
- 1.8.1/CHANGES.180 (modified) (1 diff)
- 1.8.1/CHANGES.181 (modified) (1 diff)
- 1.8.1/MANIFEST (modified) (1 diff)
- 1.8.1/Makefile.SH (modified) (1 diff)
- 1.8.1/Patchlevel (modified) (1 diff)
- 1.8.1/game/txt/hlp/pennattr.hlp (modified) (4 diffs)
- 1.8.1/game/txt/hlp/pennchat.hlp (modified) (4 diffs)
- 1.8.1/game/txt/hlp/penncmd.hlp (modified) (4 diffs)
- 1.8.1/game/txt/hlp/pennfunc.hlp (modified) (10 diffs)
- 1.8.1/game/txt/hlp/pennmail.hlp (modified) (2 diffs)
- 1.8.1/game/txt/hlp/pennv180.hlp (modified) (1 diff)
- 1.8.1/game/txt/hlp/pennv181.hlp (modified) (2 diffs)
- 1.8.1/game/txt/hlp/pennvOLD.hlp (modified) (1 diff)
- 1.8.1/hdrs/atr_tab.h (modified) (1 diff)
- 1.8.1/hdrs/conf.h (modified) (2 diffs)
- 1.8.1/hdrs/externs.h (modified) (2 diffs)
- 1.8.1/hdrs/extmail.h (modified) (1 diff)
- 1.8.1/hdrs/game.h (modified) (1 diff)
- 1.8.1/hdrs/mushtype.h (modified) (1 diff)
- 1.8.1/hdrs/myssl.h (modified) (1 diff)
- 1.8.1/hdrs/version.h (modified) (1 diff)
- 1.8.1/src/Makefile.SH (modified) (17 diffs)
- 1.8.1/src/bsd.c (modified) (12 diffs)
- 1.8.1/src/cmds.c (modified) (1 diff)
- 1.8.1/src/command.c (modified) (8 diffs)
- 1.8.1/src/conf.c (modified) (20 diffs)
- 1.8.1/src/extchat.c (modified) (8 diffs)
- 1.8.1/src/extmail.c (modified) (4 diffs)
- 1.8.1/src/flags.c (modified) (1 diff)
- 1.8.1/src/function.c (modified) (5 diffs)
- 1.8.1/src/funlist.c (modified) (1 diff)
- 1.8.1/src/funmisc.c (modified) (2 diffs)
- 1.8.1/src/funstr.c (modified) (4 diffs)
- 1.8.1/src/game.c (modified) (1 diff)
- 1.8.1/src/help.c (modified) (8 diffs)
- 1.8.1/src/local.dst (modified) (1 diff)
- 1.8.1/src/myrlimit.c (added)
- 1.8.1/src/myssl.c (modified) (3 diffs)
- 1.8.1/src/notify.c (modified) (17 diffs)
- 1.8.1/src/speech.c (modified) (2 diffs)
- 1.8.1/src/unparse.c (modified) (1 diff)
- 1.8.1/win32/cmds.h (modified) (1 diff)
- 1.8.1/win32/funs.h (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
1.8.1/CHANGES.180
r517 r519 12 12 13 13 ========================================================================== 14 15 Version 1.8.0 patchlevel 9 December 12, 2005 16 17 Fixes: 18 * On amd64 systems running FreeBSD (and possibly others), connections 19 could break after about 32 connections. Report by nails@M*U*S*H. 20 * The CONF and CONFGROUP structures are renamed PENNCONF and 21 PENNCONFGROUP to work around brokenness in Debian's openssl0.9.8 22 package. 23 14 24 15 25 Version 1.8.0 patchlevel 8 September 15, 2005 1.8.1/CHANGES.181
r517 r519 13 13 14 14 ========================================================================== 15 16 Version 1.8.1 patchlevel 4 December 6, 2005 17 18 Major Changes: 19 * Errors in matching switches to commands are ignored when the 20 command is hook/ignored or hook/overriden, so you can override 21 a built-in command and provide your own switches. Suggested by 22 Trinsec@M*U*S*H. 23 Mail: 24 * @mailfilter attribute causes incoming mail to be be automatically 25 filed to a folder if it evaluates to a folder name/number. 26 Patch by Sketch@M*U*S*H. 27 Commands: 28 * @prompt/@nsprompt work like @pemit/list, but add a telnet GOAHEAD 29 at the end of the message when emitting to players; players whose 30 clients handle GOAHEAD (e.g. tf) will get the message displayed 31 as a prompt in the input window. Suggested by Trinsec@M*U*S*H. 32 * The PROMPT_NEWLINES socket command can be used to add a newline 33 after the GOAHEAD in a prompt, for clients that mix up prompt 34 lines with other output. 35 Functions: 36 * namegrab() and namegraball(). Patch by Walker@M*U*S*H. 37 * prompt() and nsprompt() (the function equivalents of @prompt/@nsprompt). 38 * textentries(). Suggested by Trinsec@M*U*S*H. 39 * cdesc(), cusers(), cmsgs(), cbuffer(), cstatus(), clflags() 40 functions. Suggested by d'Ark@M*U*S*H. 41 * numversion() returns Penn version as an integer (1008001004) 42 for softcode use. 43 Minor changes: 44 * @chan/list works better for people who increase CHAN_NAME_LEN. 45 Suggested by Trinsec@M*U*S*H. 46 * Help fixes by Trinsec@M*U*S*H, Chili@M*U*S*H. 47 * Several powers (tport_anything, tport_anywhere, no_money, no_quota, 48 debit, sql_ok) are now aliased to TinyMUSH/TinyMUX equivalents 49 as well, for better code portability. [3,MUX] 50 Fixes: 51 * center() behaves better when given a fourth argument but 52 not a third one. Also fixes to cases where the right fill 53 string is one longer than the left. Report by Ian@M*U*S*H 54 * Fixes from 1.8.0p9. 55 15 56 16 57 Version 1.8.1 patchlevel 3 September 15, 2005 1.8.1/MANIFEST
r511 r519 100 100 src/mycrypt.c 101 101 src/mymalloc.c 102 src/myrlimit.c 102 103 src/mysocket.c 103 104 src/myssl.c 1.8.1/Makefile.SH
r479 r519 130 130 "LDFLAGS=$(LDFLAGS)" "CLIBS=$(CLIBS)" ) 131 131 132 ssl_slave: 133 (cd src; make ssl_slave "CC=$(CC)" "CCFLAGS=$(CCFLAGS)" \ 134 "LDFLAGS=$(LDFLAGS)" "CLIBS=$(CLIBS)" "MAKE=$(MAKE)" \ 135 "MAKEFLAGS=$(MAKEFLAGS)") 136 132 137 versions: CHANGES* 133 138 -@rm -rf CHANGES*~ CHANGES*bak 1.8.1/Patchlevel
r517 r519 1 1 Do not edit this file. It is maintained by the official PennMUSH patches. 2 This is PennMUSH 1.8.1p 32 This is PennMUSH 1.8.1p4 1.8.1/game/txt/hlp/pennattr.hlp
r469 r519 1 1 & ATTRIBUTE TREES 2 2 & ATTR TREES 3 & ATTRIB TREES 4 & ` 3 5 Attributes can be arranged in a hierarchical tree; these are called 4 6 "attribute trees", and a conceptually similar to the way that … … 26 28 & ATTRIBUTE TREES2 27 29 & ATTR TREES2 30 & ATTRIB TREES2 31 & `2 32 Attributes can be arranged in a hierarchical tree; these are called 28 33 Attribute trees provide two immediate benefits. First, they reduce 29 34 spam when examining objects. The usual * and ? wildcards for attributes … … 47 52 & ATTRIBUTE TREES3 48 53 & ATTR TREES3 54 & ATTRIB TREES3 55 & `3 49 56 The second benefit of attributes trees is convenient access control. 50 57 Attribute flags that restrict attribute access or execution … … 71 78 & ATTRIBUTE TREES4 72 79 & ATTR TREES4 80 & ATTRIB TREES4 81 & `4 73 82 Attribute trees interact with @parent in several ways. 74 83 1.8.1/game/txt/hlp/pennchat.hlp
r511 r519 246 246 ctitle(<channel>,<object>) 247 247 248 Returns <object s>@chan/title on <channel>. You must either248 Returns <object>'s @chan/title on <channel>. You must either 249 249 be able to examine the object, or it must visible be on a channel 250 250 which you are allowed to join. 251 & CSTATUS() 252 cstatus(<channel>,<object>) 253 254 Returns <object>'s status with respect to <channel>, which may be 255 "Off", "On", or "Gag". You must either be able to examine the object, 256 or it must visible be on the channel; "Off" is returned for 257 objects that you can not see on the channel. 258 & CDESC() 259 & CUSERS() 260 & CMSGS() 261 & CBUFFER() 262 cdesc(<channel>) 263 cusers(<channel>) 264 cmsgs(<channel>) 265 cbuffer(<channel>) 266 267 Return the description, number of users, number of messages, 268 or buffer size of <channel>, respectively. This information is 269 also displayed in @chan/list. 251 270 & CWHO() 252 271 cwho(<channel>) … … 265 284 cflags(<channel>) 266 285 cflags(<channel>,<object>) 286 clflags(<channel>) 287 clflags(<channel>,<object>) 267 288 268 289 With one argument, cflags() returns a list of flags set on the … … 278 299 to use this function. If the object is not on the channel, an 279 300 error is returned. 301 302 The clflags versions return a space-separated list of flag names, 303 rather than a string of flag characters. 280 304 & CHANNELS() 281 305 channels([<delimiter>]) … … 309 333 Channel functions work with the channel system. 310 334 311 cemit() cflags() channels() clock() cowner() 312 ctitle() cwho() 335 cbuffer() cdesc() cemit() cflags() channels() 336 clflags() clock() cmsgs() cowner() cstatus() 337 ctitle() cusers() cwho() 1.8.1/game/txt/hlp/penncmd.hlp
r515 r519 58 58 @halt @lemit @listmotd @mail @map 59 59 @notify @nsemit @nslemit @nsoemit @nspemit 60 @ns remit @nszemit @oemit @password @pemit61 @p s @remit @restart @scan @search62 @s elect @stats @sweep @switch @teleport63 @ trigger @verb @version @wait @whereis64 @ zemit60 @nsprompt @nsremit @nszemit @oemit @password 61 @pemit @prompt @ps @remit @restart 62 @scan @search @select @stats @sweep 63 @switch @teleport @trigger @verb @version 64 @wait @whereis @zemit 65 65 66 66 & @-WIZARD … … 2281 2281 & @nszemit 2282 2282 & @nsoemit 2283 & @nsprompt 2283 2284 @nsemit[/<switch>] [<message>] 2284 2285 @nslemit[/<switch>] <message> 2285 2286 @nspemit[/switches] <object>=<message> 2287 @nsprompt[/switches] <object>=<message> 2286 2288 @nsremit[/switches] <object> = <message>. 2287 2289 @nsoemit[/<switch>] [<room>/]<object> [<object>...] = <message> 2288 2290 @nszemit <zone> = <message> 2289 2291 2290 These wizard-only commands work like @emit, @lemit, @pemit, @ remit,2292 These wizard-only commands work like @emit, @lemit, @pemit, @prompt, @remit, 2291 2293 @oemit, and @zemit, respectively, but will not include nospoof information. 2292 2294 They are meant to be used by commands in the master room where the … … 2294 2296 of their respective commands. 2295 2297 2296 See also: @emit, @lemit, @pemit, @remit, @oemit, @zemit, nsemit(), nslemit(), 2297 nspemit(), nsremit(), nsoemit(), nszemit() 2298 See also: @emit, @lemit, @pemit, @prompt, @remit, @oemit, @zemit, 2299 nsemit(), nslemit(), nspemit(), nsprompt(), nsremit(), nsoemit(), 2300 nszemit(), PROMPT_NEWLINES 2298 2301 & @odeath 2299 2302 @odeath <player> [=<message>] … … 2631 2634 This wizard-only command creates a player with the given name and 2632 2635 password. 2636 & @prompt 2637 @prompt[/<switch>] <dbref list> = <message> 2638 2639 A variation of @pemit/list that adds a telnet GOAHEAD control code 2640 to the end of messages sent to players. Players with clients 2641 that handle GOAHEAD may get the message as a prompt in their 2642 client's input area. 2643 2644 @prompt supports the following @pemit switches: /silent, /noisy, 2645 /spoof, /noeval 2646 2647 See also: @pemit, @nsprompt, prompt(), nsprompt(), PROMPT_NEWLINES 2648 & PROMPT_NEWLINES 2649 PROMPT_NEWLINES <1|0> 2650 2651 This socket-level command is used to indicate whether a newline should 2652 be sent after the telnet GOAHEAD code issued by @prompt/prompt() 2653 to telnet-capable clients. By default, in order to maximize 2654 portability, newlines are sent. 2655 2656 Some clients, like TinyFugue, are smart enough to interpret GOAHEAD and 2657 treat prompts specially by putting them into their input window. These 2658 clients do not require the newline, and sending the newline results in 2659 a blank line in their output window. The 'PROMPT_NEWLINES 0' command 2660 can be used to disable the newline and is recommended for users with 2661 these clients. 2662 2663 See also: @prompt, prompt() 2633 2664 & @pemit 2634 2665 @pemit[/<switch>] <object> = <message> 1.8.1/game/txt/hlp/pennfunc.hlp
r515 r519 101 101 102 102 cemit() emit() lemit() nsemit() nslemit() 103 nsoemit() nspemit() ns remit() nszemit() oemit()104 pemit()remit() zemit()103 nsoemit() nspemit() nsprompt() nsremit() nszemit() 104 oemit() pemit() prompt() remit() zemit() 105 105 & Connection functions 106 106 Connection functions return information about the connections open … … 145 145 graball() index() insert() itemize() items() 146 146 iter() last() ldelete() map() match() 147 matchall() member() mix() munge() remove() 148 replace() rest() revwords() setdiff() setinter() 149 setunion() shuffle() sort() sortby() sortkey() 150 splice() step() table() wordpos() words() 147 matchall() member() mix() munge() namegrab() 148 namegraball() remove() replace() rest() revwords() 149 setdiff() setinter() setunion() shuffle() sort() 150 sortby() sortkey() splice() step() table() 151 wordpos() words() 151 152 152 153 See also: LISTS … … 222 223 null() objeval() open() pcreate() r-function 223 224 rand() s-function scan() set() setq() 224 setr() soundex() soundslike() tel() text file()225 valid() wipe() @@()225 setr() soundex() soundslike() tel() textentries() 226 textfile() valid() wipe() @@() 226 227 227 228 & @@() … … 2590 2591 2591 2592 Related functions: FULLNAME(), ACCNAME(), INAME() 2593 & NAMEGRAB() 2594 & NAMEGRABALL() 2595 namegrab(<dbref list>,<name>) 2596 namegraball(<dbref list>,<name>) 2597 2598 The namegrab() function, when given a list of dbrefs and a name, returns 2599 the first dbref in the list that would match <name> as if you were 2600 checking num() or locate(). An exact match has priority over non-exact matches. 2601 2602 namegraball() returns all dbrefs whose names would be matched by<name>. 2603 2604 eg: @@(#0: Room Zero. #1: One. #2: Master Room) 2605 > th namegrab(#0 #1 #2,room) 2606 #0 2607 > th namegrab(#0 #1 #2,master room) 2608 #2 2609 > th namegraball(#0 #1 #2,room) 2610 #0 #2 2592 2611 & NAND() 2593 2612 nand(<boolean>, <boolean>,...) … … 2818 2837 & PEMIT() 2819 2838 & NSPEMIT() 2839 & PROMPT() 2840 & NSPROMPT() 2820 2841 pemit(<object list>,<message>) 2821 2842 nspemit(<object list>,<message>) 2822 2823 This function will send each object on the list a message, as per 2843 prompt(<object list>,<message>) 2844 nsprompt(<object list>,<message>) 2845 2846 pemit() will send each object on the list a message, as per 2824 2847 the @pemit/list command. It returns nothing. It respects page-locks and 2825 2848 HAVEN flags on players. 2826 2849 2827 2850 nspemit() is a wizard-only variation that works like @nspemit/list. 2828 2851 2852 prompt() adds a telnet GOAHEAD to the end of the message, as per 2853 the @prompt command. nsprompt() is a wizard-only variation that 2854 works like @nsprompt. 2855 2856 See also: @prompt, @nsprompt, PROMPT_NEWLINES 2829 2857 & PI() 2830 2858 pi() … … 3632 3660 See also: mean(), median() 3633 3661 & STRCAT() 3634 strcat(<string1>, <string2> )3662 strcat(<string1>, <string2> [, <string3> ...]) 3635 3663 3636 3664 Concatenates two strings together, with no space between them. … … 3832 3860 other players is restricted to see_all objects. 3833 3861 & TEXTFILE() 3862 & TEXTENTRIES() 3834 3863 & dynhelp() 3835 3864 textfile(<type>,<entry>) 3865 textentries(<type>,<entry>[,<separator>]) 3836 3866 3837 3867 textfile() returns the text of entries from cached text files (such as … … 3839 3869 so you may want to edit %r's and squish the result if you plan to use 3840 3870 the text as a list of words rather than a display. 3871 3872 textentries() returns the topic names of matching entries. <entry> 3873 may include wildcards, in which case a list of matching topic names 3874 will be return, separated by the <separator> string if one is 3875 provided, and space-separated otherwise. 3841 3876 3842 3877 Examples: … … 3988 4023 See also: MERGE() 3989 4024 & TRIM() 4025 & TRIMPENN() 4026 & TRIMTINY() 3990 4027 trim(<string>[,<character to trim>][,<trim style>]) 3991 4028 trimpenn(<string>[,<character to trim>][,<trim style>]) … … 4242 4279 4243 4280 & VERSION() 4244 Function: version() 4245 4246 Returns a string which contains various version information for the MUSH 4247 you're on. 4281 & NUMVERSION() 4282 version() 4283 numversion() 4284 4285 version() returns a string which contains various version information 4286 for the MUSH you're on. numversion() returns an integer representation 4287 of the version/patchlevel which can be used for softcode comparison. 4248 4288 4249 4289 Example: 4250 4290 > say version() 4251 You say "PennMUSH version 1.6.0 patchlevel 0 [1/10/96]" 4291 You say "PennMUSH version 1.8.1 patchlevel 4 [12/06/2005]" 4292 > say numversion() 4293 You say "1008001004" 4252 4294 4253 4295 & VISIBLE() 1.8.1/game/txt/hlp/pennmail.hlp
r511 r519 115 115 This command moves all messages in msg-list from the current 116 116 folder to a new folder, <folder#>. 117 118 See also: @mailfilter 119 & @mailfilter 120 & mailfilter 121 The @mailfilter attribute specifies automatic filing of incoming 122 @mail messages into folders. When an @mail message is received, 123 the contents of @mailfilter are evaluated, with the following 124 arguments passed: 125 %0 dbref of message sender 126 %1 message subject 127 %2 message body 128 %3 message status flags (a string containing U, F, and/or R, 129 for urgent, forwarded, and/or reply, respectively) 130 131 If @mailfilter evaluates to a folder name or number, the message 132 will be filed into that folder. If @mailfilter evaluates to a null 133 string, the message remains in the incoming folder. 134 135 Example: Filter urgent messages into folder 1 136 > @mailfilter me=if(strmatch(%3,*U*),1) 137 138 See also: mail-folders 117 139 & mail-admin 118 140 … … 315 337 pass their @lock/mailforward. An empty @lock/mailforward disallows 316 338 forwarding to you, and is the default. 317 1.8.1/game/txt/hlp/pennv180.hlp
r517 r519 1 & 1.8.0p9 2 Version 1.8.0 patchlevel 9 December 12, 2005 3 4 Fixes: 5 * On amd64 systems running FreeBSD (and possibly others), connections 6 could break after about 32 connections. Report by nails@M*U*S*H. 7 * The CONF and CONFGROUP structures are renamed PENNCONF and 8 PENNCONFGROUP to work around brokenness in Debian's openssl0.9.8 9 package. 10 11 1 12 & 1.8.0p8 2 13 Version 1.8.0 patchlevel 8 September 15, 2005 1.8.1/game/txt/hlp/pennv181.hlp
r517 r519 1 & 1.8.1p 31 & 1.8.1p4 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.1 patchlevel 4 December 6, 2005 15 16 Major Changes: 17 * Errors in matching switches to commands are ignored when the 18 command is hook/ignored or hook/overriden, so you can override 19 a built-in command and provide your own switches. Suggested by 20 Trinsec@M*U*S*H. 21 Mail: 22 * @mailfilter attribute causes incoming mail to be be automatically 23 filed to a folder if it evaluates to a folder name/number. 24 Patch by Sketch@M*U*S*H. 25 Commands: 26 * @prompt/@nsprompt work like @pemit/list, but add a telnet GOAHEAD 27 at the end of the message when emitting to players; players whose 28 clients handle GOAHEAD (e.g. tf) will get the message displayed 29 as a prompt in the input window. Suggested by Trinsec@M*U*S*H. 30 * The PROMPT_NEWLINES socket command can be used to add a newline 31 after the GOAHEAD in a prompt, for clients that mix up prompt 32 lines with other output. 33 Functions: 34 * namegrab() and namegraball(). Patch by Walker@M*U*S*H. 35 * prompt() and nsprompt() (the function equivalents of @prompt/@nsprompt). 36 * textentries(). Suggested by Trinsec@M*U*S*H. 37 * cdesc(), cusers(), cmsgs(), cbuffer(), cstatus(), clflags() 38 functions. Suggested by d'Ark@M*U*S*H. 39 * numversion() returns Penn version as an integer (1008001004) 40 for softcode use. 41 Minor changes: 42 * @chan/list works better for people who increase CHAN_NAME_LEN. 43 Suggested by Trinsec@M*U*S*H. 44 * Help fixes by Trinsec@M*U*S*H, Chili@M*U*S*H. 45 * Several powers (tport_anything, tport_anywhere, no_money, no_quota, 46 debit, sql_ok) are now aliased to TinyMUSH/TinyMUX equivalents 47 as well, for better code portability. [3,MUX] 48 Fixes: 49 * center() behaves better when given a fourth argument but 50 not a third one. Also fixes to cases where the right fill 51 string is one longer than the left. Report by Ian@M*U*S*H 52 * Fixes from 1.8.0p9. 53 54 55 & 1.8.1p3 14 56 Version 1.8.1 patchlevel 3 September 15, 2005 15 57 1.8.1/game/txt/hlp/pennvOLD.hlp
r517 r519 4418 4418 type 'help <version>p<patchlevel>'. For example, 'help 1.7.2p3' 4419 4419 4420 1.8.1: 0, 1, 2, 3 4421 1.8.0: 0, 1, 2, 3, 4, 5, 6, 7, 8 4420 1.8.1: 0, 1, 2, 3, 4 4421 1.8.0: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 4422 4422 1.7.7: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 4423 4423 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 1.8.1/hdrs/atr_tab.h
r511 r519 105 105 {"MAILFILTERS", AF_WIZARD | AF_NOPROG | AF_LOCKED | AF_PREFIXMATCH, 106 106 NULL_CHUNK_REFERENCE, 0, NULL}, 107 {"MAILFILTER", AF_NOPROG | AF_PREFIXMATCH, NULL_CHUNK_REFERENCE, 0, NULL}, 107 108 {"MAILFOLDERS", AF_WIZARD | AF_NOPROG | AF_LOCKED | AF_PREFIXMATCH, 108 109 NULL_CHUNK_REFERENCE, 0, NULL}, 1.8.1/hdrs/conf.h
r511 r519 94 94 int overridden; /**< Has the default been overridden? */ 95 95 const char *group; /**< The option's group name */ 96 } CONF;96 } PENNCONF; 97 97 98 98 /** Runtime configuration options. … … 277 277 extern HASHTAB local_options; 278 278 279 extern CONF *add_config(const char *name, config_func handler, void *loc,280 int max, const char *group);281 extern CONF *new_config(void);282 extern CONF *get_config(const char *name);279 extern PENNCONF *add_config(const char *name, config_func handler, void *loc, 280 int max, const char *group); 281 extern PENNCONF *new_config(void); 282 extern PENNCONF *get_config(const char *name); 283 283 284 284 int cf_bool(const char *opt, const char *val, void *loc, int maxval, 1.8.1/hdrs/externs.h
r515 r519 125 125 #define NA_INTER_LOCK 0x10000 /**< Message subject to @lock/interact even if not otherwise marked */ 126 126 #define NA_INTERACTION (NA_INTER_HEAR|NA_INTER_SEE|NA_INTER_PRESENCE|NA_INTER_LOCK) /**< Message follows interaction rules */ 127 #define NA_PROMPT 0x20000 /**< Message is a prompt, add GOAHEAD */ 127 128 128 129 /** A notify_anything lookup function type definition */ … … 159 160 /** Basic 'notify player with message */ 160 161 #define notify(p,m) notify_anything(orator, na_one, &(p), NULL, 0, m) 162 /** Notify player as a prompt */ 163 #define notify_prompt(p,m) notify_anything(orator, na_one, &(p), NULL, NA_PROMPT, m) 161 164 /** Notify puppet with message, even if owner's there */ 162 165 #define notify_must_puppet(p,m) notify_anything(orator, na_one, &(p), NULL, NA_MUST_PUPPET, m) 166 /** Notify puppet with message as prompt, even if owner's there */ 167 #define notify_prompt_must_puppet(p,m) notify_anything(orator, na_one, &(p), NULL, NA_MUST_PUPPET|NA_PROMPT, m) 163 168 /** Notify player with message, as if from somethign specific */ 164 169 #define notify_by(t,p,m) notify_anything(t, na_one, &(p), NULL, 0, m) 1.8.1/hdrs/extmail.h
r469 r519 76 76 extern struct mail *find_exact_starting_point(dbref player); 77 77 extern void check_mail(dbref player, int folder, int silent); 78 extern void check_all_mail(dbref player); 78 79 extern int dump_mail(FILE * fp); 79 80 extern int load_mail(FILE * fp); 1.8.1/hdrs/game.h
r515 r519 137 137 #define PEMIT_LIST 0x2 138 138 #define PEMIT_SPOOF 0x4 139 #define PEMIT_PROMPT 0x8 139 140 extern void do_emit(dbref player, const char *tbuf1, int flags); 140 141 extern void do_pemit 1.8.1/hdrs/mushtype.h
r511 r519 79 79 80 80 /* Descriptor foo */ 81 /** Using Pueblo, Smial, Mushclient, Simplemu, or some other 82 * * pueblo-style HTML aware client */ 83 #define CONN_HTML 0x1 84 /** Using a client that understands telnet options */ 85 #define CONN_TELNET 0x2 86 /** Send a telnet option to test client */ 87 #define CONN_TELNET_QUERY 0x4 88 /** Connection that should be close on load from reboot.db */ 89 #define CONN_CLOSE_READY 0x8 90 /** Validated connection from an SSL concentrator */ 91 #define CONN_SSL_CONCENTRATOR 0x10 92 /** Player would like to receive newlines after prompts, because 93 * * their client mucks up output after a GOAHEAD */ 94 #define CONN_PROMPT_NEWLINES 0x20 95 /** Default connection, nothing special */ 96 #define CONN_DEFAULT (CONN_PROMPT_NEWLINES) 97 81 98 #define DOING_LEN 40 82 99 /** Pueblo checksum length. 1.8.1/hdrs/myssl.h
r433 r519 8 8 #ifdef HAS_OPENSSL 9 9 10 SSL_CTX *ssl_init( void);10 SSL_CTX *ssl_init(char *private_key_file, char *ca_file, int req_client_cert); 11 11 SSL *ssl_setup_socket(int sock); 12 12 void ssl_close_connection(SSL * ssl); 1.8.1/hdrs/version.h
r517 r519 1 1 #define VERSION "1.8.1" 2 #define PATCHLEVEL " 3"3 #define PATCHDATE "[ 09/15/2005]"4 #define NUMVERSION 100800100 32 #define PATCHLEVEL "4" 3 #define PATCHDATE "[12/06/2005]" 4 #define NUMVERSION 1008001004 1.8.1/src/Makefile.SH
r477 r519 66 66 funufun.c game.c help.c htab.c ident.c local.c lock.c log.c look.c \ 67 67 malias.c match.c memcheck.c move.c mycrypt.c mymalloc.c mysocket.c \ 68 my ssl.c notify.c parse.c pcre.c player.c plyrlist.c \68 myrlimit.c myssl.c notify.c parse.c pcre.c player.c plyrlist.c \ 69 69 predicat.c privtab.c \ 70 70 ptab.c rob.c services.c set.c shs.c sig.c speech.c sql.c \ … … 94 94 funufun.o game.o help.o htab.o ident.o local.o lock.o log.o look.o \ 95 95 malias.o match.o memcheck.o move.o mycrypt.o mymalloc.o mysocket.o \ 96 my ssl.o notify.o parse.o pcre.o player.o plyrlist.o \96 myrlimit.o myssl.o notify.o parse.o pcre.o player.o plyrlist.o \ 97 97 predicat.o privtab.o \ 98 98 ptab.o rob.o services.o set.o shs.o sig.o speech.o sql.o \ … … 126 126 $(CC) $(LDFLAGS) $(CCFLAGS) -DINFOSLAVE -o info_slave info_slave.o \ 127 127 ident.o strdup.o sig.o mymalloc.o mysocket.c $(LIBS) 128 129 SSL_SLAVE_OBJS = strdup.o sig.o mymalloc.o mysocket.o myssl.o notify.o myrlimit.o strutil.o ident.o utils.o 130 ssl_slave: ssl_slave.c $(SSL_SLAVE_OBJS) 131 @echo "Making ssl_slave." 132 $(CC) $(CCFLAGS) $(IDEFS) -c ssl_slave.c 133 $(CC) $(LDFLAGS) $(CCFLAGS) -o ssl_slave ssl_slave.o \ 134 $(SSL_SLAVE_OBJS) $(LIBS) 128 135 129 136 # ../hdrs/buildinf.h contains build information used by version.c: … … 361 368 bsd.o: ../hdrs/extmail.h 362 369 bsd.o: ../hdrs/game.h 370 bsd.o: ../hdrs/dbio.h 363 371 bufferq.o: ../hdrs/copyrite.h 364 372 bufferq.o: ../config.h … … 571 579 db.o: ../hdrs/mushtype.h 572 580 db.o: ../hdrs/htab.h 581 db.o: ../hdrs/dbio.h 573 582 db.o: ../hdrs/externs.h 574 583 db.o: ../hdrs/compile.h … … 587 596 db.o: ../hdrs/strtree.h 588 597 db.o: ../hdrs/parse.h 598 db.o: ../hdrs/privtab.h 589 599 db.o: ../hdrs/extmail.h 590 600 destroy.o: ../config.h … … 640 650 extchat.o: ../hdrs/command.h 641 651 extchat.o: ../hdrs/switches.h 652 extchat.o: ../hdrs/dbio.h 642 653 extmail.o: ../config.h 643 654 extmail.o: ../hdrs/copyrite.h … … 667 678 extmail.o: ../hdrs/command.h 668 679 extmail.o: ../hdrs/switches.h 680 extmail.o: ../hdrs/dbio.h 669 681 filecopy.o: ../hdrs/copyrite.h 670 682 filecopy.o: ../config.h … … 724 736 flags.o: ../hdrs/boolexp.h 725 737 flags.o: ../hdrs/log.h 738 flags.o: ../hdrs/dbio.h 726 739 flags.o: ../hdrs/oldflags.h 727 740 funcrypt.o: ../hdrs/copyrite.h … … 802 815 funlist.o: ../hdrs/copyrite.h 803 816 funlist.o: ../config.h 817 funlist.o: ../hdrs/ansi.h 804 818 funlist.o: ../hdrs/conf.h 805 819 funlist.o: ../options.h … … 821 835 funlist.o: ../hdrs/pcre.h 822 836 funlist.o: ../hdrs/match.h 837 funlist.o: ../hdrs/command.h 838 funlist.o: ../hdrs/switches.h 823 839 funlist.o: ../hdrs/lock.h 824 840 funlist.o: ../hdrs/boolexp.h … … 973 989 game.o: ../hdrs/function.h 974 990 game.o: ../hdrs/help.h 991 game.o: ../hdrs/dbio.h 975 992 help.o: ../config.h 976 993 help.o: ../hdrs/conf.h … … 1036 1053 local.o: ../hdrs/mushtype.h 1037 1054 local.o: ../hdrs/htab.h 1055 local.o: ../hdrs/dbio.h 1038 1056 local.o: ../hdrs/externs.h 1039 1057 local.o: ../hdrs/compile.h … … 1138 1156 malias.o: ../hdrs/pueblo.h 1139 1157 malias.o: ../hdrs/log.h 1158 malias.o: ../hdrs/dbio.h 1140 1159 match.o: ../hdrs/copyrite.h 1141 1160 match.o: ../config.h … … 1324 1343 player.o: ../hdrs/lock.h 1325 1344 player.o: ../hdrs/boolexp.h 1345 player.o: ../hdrs/parse.h 1326 1346 player.o: ../hdrs/extmail.h 1327 1347 plyrlist.o: ../config.h … … 1414 1434 rob.o: ../hdrs/boolexp.h 1415 1435 rob.o: ../hdrs/game.h 1436 rob.o: ../hdrs/case.h 1416 1437 set.o: ../hdrs/copyrite.h 1417 1438 set.o: ../config.h … … 1437 1458 set.o: ../hdrs/boolexp.h 1438 1459 set.o: ../hdrs/log.h 1460 set.o: ../hdrs/game.h 1439 1461 shs.o: ../hdrs/copyrite.h 1440 1462 shs.o: ../config.h 1.8.1/src/bsd.c
r511 r519 69 69 #ifdef I_UNISTD 70 70 #include <unistd.h> 71 #endif72 #ifdef HAS_GETRLIMIT73 #include <sys/resource.h>74 71 #endif 75 72 #include <limits.h> … … 133 130 #endif 134 131 #endif 132 #ifdef HAS_GETRLIMIT 133 void init_rlimit(void); 134 #endif 135 135 136 136 … … 173 173 char confname[BUFFER_LEN]; /**< Name of the config file */ 174 174 char errlog[BUFFER_LEN]; /**< Name of the error log file */ 175 176 /** Default connection, nothing special */177 #define CONN_DEFAULT 0178 /** Using Pueblo, Smial, Mushclient, Simplemu, or some other179 * pueblo-style HTML aware client */180 #define CONN_HTML 0x1181 /** Using a client that understands telnet options */182 #define CONN_TELNET 0x2183 /** Send a telnet option to test client */184 #define CONN_TELNET_QUERY 0x4185 /** Connection that should be close on load from reboot.db */186 #define CONN_CLOSE_READY 0x8187 /** Validated connection from an SSL concentrator */188 #define CONN_SSL_CONCENTRATOR 0x10189 175 190 176 /** Is this descriptor connected to a telnet-compatible terminal? */ … … 324 310 sig_atomic_t signal_dump_flag = 0; /**< Have we caught a dump signal? */ 325 311 326 #ifdef HAS_GETRLIMIT327 static void init_rlimit(void);328 #endif329 312 #ifndef BOOLEXP_DEBUGGING 330 313 #ifdef WIN32SERVICES … … 349 332 static void update_quotas(struct timeval *last, struct timeval *current); 350 333 351 staticint how_many_fds(void);334 int how_many_fds(void); 352 335 static void shovechars(Port_t port, Port_t sslport); 353 336 static int test_connection(int newsock); … … 429 412 void reopen_logs(void); 430 413 void load_reboot_db(void); 431 #ifdef HAS_GETRLIMIT432 static void433 init_rlimit(void)434 {435 /* Unlimit file descriptors. */436 /* Ultrix 4.4 and others may have getrlimit but may not be able to437 * change number of file descriptors438 */439 #ifdef RLIMIT_NOFILE440 struct rlimit *rlp;441 442 rlp = (struct rlimit *) malloc(sizeof(struct rlimit));443 if (getrlimit(RLIMIT_NOFILE, rlp)) {444 perror("init_rlimit: getrlimit()");445 free(rlp);446 return;447 }448 /* This check seems dumb, but apparently FreeBSD may return 0 for449 * the max # of descriptors!450 */451 if (rlp->rlim_max > rlp->rlim_cur) {452 rlp->rlim_cur = rlp->rlim_max;453 if (setrlimit(RLIMIT_NOFILE, rlp))454 perror("init_rlimit: setrlimit()");455 }456 free(rlp);457 #endif458 return;459 }460 #endif /* HAS_GETRLIMIT */461 414 462 415 #ifdef NT_TCP … … 982 935 int newsock; 983 936 #endif 984 intinput_ready, output_ready;937 unsigned long input_ready, output_ready; 985 938 986 939 #ifdef NT_TCP … … 2431 2384 queue_newwrite(d, reply, 6); 2432 2385 process_output(d); 2386 /* Yeah, we still will send GA, which they should treat as a NOP, 2387 * but we'd better send newlines, too. 2388 */ 2389 d->conn_flags |= CONN_PROMPT_NEWLINES; 2433 2390 #ifdef DEBUG_TELNET 2434 2391 fprintf(stderr, "GOT IAC DO SGA, sending IAC WILL SGA IAG DO SGA\n"); … … 2698 2655 } else if (!strncmp(command, "SCREENHEIGHT", 12)) { 2699 2656 d->height = parse_integer(command + 12); 2657 } else if (!strncmp(command, "PROMPT_NEWLINES", 15)) { 2658 if (parse_integer(command + 15)) 2659 d->conn_flags |= CONN_PROMPT_NEWLINES; 2660 else 2661 d->conn_flags &= ~CONN_PROMPT_NEWLINES; 2700 2662 } else if (SUPPORT_PUEBLO 2701 2663 && !strncmp(command, PUEBLO_COMMAND, strlen(PUEBLO_COMMAND))) { … … 2822 2784 announce_connect(player, isnew, num); /* broadcast connect message */ 2823 2785 check_last(player, d->addr, d->ip); /* set Last, Lastsite, give paycheck */ 2824 /* Check folder 0, not silently (i.e. Report lack of mail, too)*/2786 /* Check all mail folders. If empty, report lack of mail. */ 2825 2787 queue_eol(d); 2826 2788 if (command_check_byname(player, "@MAIL")) 2827 check_ mail(player, 0, 0);2789 check_all_mail(player); 2828 2790 set_player_folder(player, 0); 2829 2791 do_look_around(player); … … 4475 4437 if (match->conn_flags & CONN_TELNET) 4476 4438 safe_str(" telnet", buff, bp); 4439 if (match->conn_flags & CONN_PROMPT_NEWLINES) 4440 safe_str(" prompt_newlines", buff, bp); 4477 4441 #ifdef HAS_OPENSSL 4478 4442 if (sslsock && match->ssl) … … 4813 4777 #define fclose(x) f_close(x) 4814 4778 #endif /* SUN_OS */ 4815 4816 static int4817 how_many_fds(void)4818 {4819 /* Determine how many open file descriptors we're allowed4820 * In order, we'll try:4821 * 1. sysconf(_SC_OPEN_MAX) - POSIX.14822 * 2. OPEN_MAX constant - POSIX.1 limits.h4823 * 3. getdtablesize - BSD (which Config maps to ulimit or NOFILE if need
