diff --git a/docs/jsobjs.html b/docs/jsobjs.html index 6137fc016a210c20c71d5117b5c2bf7e123de168..d3387daeb066c4c901b40700ed32a3637a54b2e2 100644 --- a/docs/jsobjs.html +++ b/docs/jsobjs.html @@ -10,7 +10,10 @@ <body> <font face=arial,helvetica> <h1>Synchronet JavaScript Object Model Reference</h1> -Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 +Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Nov 26 2003 14:01 +<br><font size=-1> +Property and Method version numbers (when available) indicate the Synchronet version when the item was added or modified. +</font> <ol type=square> <li onclick = 'this.className = (this.className == "showList") ? "defaultStyles" : "showList";' onselectstart = 'event.returnValue = false;'> @@ -27,6 +30,9 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 onselectstart = 'event.returnValue = false;'> [+]  <a href="#js"><b>js</b></a> object <ul> +<li onclick = 'this.className = (this.className == "showList") ? "defaultStyles" : "showList";' + onselectstart = 'event.returnValue = false;'> +<a href=#js_methods>methods</a> <li onclick = 'this.className = (this.className == "showList") ? "defaultStyles" : "showList";' onselectstart = 'event.returnValue = false;'> <a href=#js_properties>properties</a> @@ -278,121 +284,186 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Returns</font> <th align=left width=200> <font color="white">Usage</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> -<tr valign=top><td><b>log</b><td>string<td><tt>log(value [,value]) -<td>add a line of text to the server and/or system log, <i>values</i> are typically string constants or variables +<tr valign=top><td><b>log</b><td>string<td><tt>log([level,] value [,value]) +<td>3.11 +<td>add a line of text to the server and/or system log, <i>values</i> are typically string constants or variables, <i>level</i> is the debug level/priority (default: <tt>LOG_INFO</tt>) <tr valign=top><td><b>read</b><td>string<td><tt>read([count]) +<td>3.11 <td>read up to count characters from input stream <tr valign=top><td><b>readln</b><td>string<td><tt>readln([count]) +<td>3.11 <td>read a single line, up to count characters, from input stream <tr valign=top><td><b>write</b><td>void<td><tt>write(value [,value]) +<td>3.11 <td>send one or more values (typically strings) to the server output <tr valign=top><td><b>writeln</b><td>void<td><tt>writeln(value [,value]) +<td>3.11 <td>send a line of text to the console or event log with automatic line termination (CRLF), <i>values</i> are typically string constants or variables (AKA print) <tr valign=top><td><b>printf</b><td>string<td><tt>printf(string format [,value][,value]) +<td>3.10 <td>print a formatted string - <small>CAUTION: for experienced C programmers ONLY</small> <tr valign=top><td><b>alert</b><td>void<td><tt>alert(value) +<td>3.10 <td>print an alert message (ala client-side JS) <tr valign=top><td><b>prompt</b><td>string<td><tt>prompt([value]) +<td>3.10 <td>displays a prompt (<i>value</i>) and returns a string of user input (ala clent-side JS) <tr valign=top><td><b>confirm</b><td>boolean<td><tt>confirm(value) +<td>3.10 <td>displays a Yes/No prompt and returns <i>true</i> or <i>false</i> based on users confirmation (ala client-side JS) <tr valign=top><td><b>exit</b><td>void<td><tt>exit([number exit_code]) +<td>3.11 <td>stop script execution, optionally setting the global property <tt>exit_code</tt> to the specified numeric value -<tr valign=top><td><b>load</b><td>boolean<td><tt>load(string filename [,args]) -<td>load and execute a JavaScript file, returns <i>true</i> if the execution was successful +<tr valign=top><td><b>load</b><td>boolean<td><tt>load([object scope,] string filename [,args]) +<td>3.11 +<td>load and execute a JavaScript module (<i>filename</i>), optionally specifying a target <i>scope</i> object (default: <i>this</i>) and a list of arguments to pass to the module (as <i>argv</i>), returns <i>true</i> if the execution was successful <tr valign=top><td><b>mswait</b><td>void<td><tt>mswait([number milliseconds]) +<td>3.10 <td>millisecond wait/sleep routine (AKA sleep) <tr valign=top><td><b>yield</b><td>void<td><tt>yield([bool forced]) +<td>3.11 <td>release current thread time-slice, a <i>forced</i> yield will yield to all other pending tasks (lowering CPU utilization), a non-<i>forced</i> yield will yield only to pending tasks of equal or higher priority. <i>forced</i> defaults to <i>true</i> <tr valign=top><td><b>random</b><td>number<td><tt>random(number max) +<td>3.10 <td>return random integer between 0 and max-1 <tr valign=top><td><b>time</b><td>number<td><tt>time() +<td>3.10 <td>return current time in Unix (time_t) format (number of seconds since Jan-01-1970) <tr valign=top><td><b>beep</b><td>void<td><tt>beep([number freq, duration]) +<td>3.10 <td>produce a tone on the local speaker at specified frequency for specified duration (in milliseconds) <tr valign=top><td><b>sound</b><td>boolean<td><tt>sound([string filename]) +<td>3.10 <td>play a waveform (.wav) sound file <tr valign=top><td><b>ctrl</b><td>string<td><tt>ctrl(number or string) +<td>3.11 <td>return ASCII control character representing character passed - Example: <tt>ctrl('C') returns ''</tt> <tr valign=top><td><b>ascii</b><td>number<td><tt>ascii([string text] or [number value]) +<td>3.10 <td>convert string to ASCII value or vice-versa (returns number OR string) <tr valign=top><td><b>ascii_str</b><td>string<td><tt>ascii_str(string text) +<td>3.10 <td>convert extended-ASCII in string to plain ASCII <tr valign=top><td><b>strip_ctrl</b><td>string<td><tt>strip_ctrl(string text) +<td>3.10 <td>strip control characters from string <tr valign=top><td><b>strip_exascii</b><td>string<td><tt>strip_exascii(string text) +<td>3.10 <td>strip extended-ASCII characters from string <tr valign=top><td><b>truncsp</b><td>string<td><tt>truncsp(string text) +<td>3.10 <td>truncate white-space characters off end of string <tr valign=top><td><b>truncstr</b><td>string<td><tt>truncstr(string text, charset) +<td>3.10 <td>truncate string at first char in <i>charset</i> <tr valign=top><td><b>lfexpand</b><td>string<td><tt>lfexpand(string text) +<td>3.10 <td>expand line-feeds (LF) to carriage-return/line-feeds (CRLF) <tr valign=top><td><b>file_getname</b><td>string<td><tt>file_getname(string path) +<td>3.11 <td>returns filename portion of passed path string <tr valign=top><td><b>file_getext</b><td>string<td><tt>file_getext(string path) +<td>3.11 <td>returns file extension portion of passed path/filename string (including '.') or <i>undefined</i> if no extension is found <tr valign=top><td><b>file_getcase</b><td>string<td><tt>file_getcase(string filename) +<td>3.11 <td>returns correct case of filename (long version of filename on Win32) or <i>undefined</i> if the file doesn't exist <tr valign=top><td><b>file_exists</b><td>boolean<td><tt>file_exists(string filename) +<td>3.10 <td>verify a file's existence <tr valign=top><td><b>file_remove</b><td>boolean<td><tt>file_remove(string filename) +<td>3.10 <td>delete a file <tr valign=top><td><b>file_rename</b><td>boolean<td><tt>file_rename(oldname, newname) +<td>3.11 <td>rename a file, possibly moving it to another directory in the process <tr valign=top><td><b>file_copy</b><td>boolean<td><tt>file_copy(source, destination) +<td>3.11 <td>copy a file from one directory or filename to another <tr valign=top><td><b>file_backup</b><td>boolean<td><tt>file_backup(string filename [,number level] [,bool rename]) +<td>3.11 <td>backup the specified <i>filename</i> as <tt>filename.<i>number</i>.extension</tt> where <i>number</i> is the backup number 0 through <i>level</i>-1 (default backup <i>level</i> is 5), if <i>rename</i> is <i>true</i>, the original file is renamed instead of copied (default is <i>false</i>) <tr valign=top><td><b>file_isdir</b><td>boolean<td><tt>file_isdir(string filename) +<td>3.10 <td>check if specified <i>filename</i> is a directory <tr valign=top><td><b>file_attrib</b><td>number<td><tt>file_attrib(string filename) +<td>3.10 <td>get a file's permissions/attributes <tr valign=top><td><b>file_date</b><td>number<td><tt>file_date(string filename) +<td>3.10 <td>get a file's last modified date/time (in time_t format) <tr valign=top><td><b>file_size</b><td>number<td><tt>file_size(string filename) +<td>3.10 <td>get a file's length (in bytes) <tr valign=top><td><b>file_utime</b><td>boolean<td><tt>file_utime(string filename [,access_time] [,mod_time]) +<td>3.11 <td>change a file's last accessed and modification date/time (in time_t format), or change to current time <tr valign=top><td><b>file_touch</b><td>boolean<td><tt>file_touch(string filename) +<td>3.11 <td>updates a file's last modification date/time to current time, creating an empty file if it doesn't already exist <tr valign=top><td><b>directory</b><td>array<td><tt>directory(string pattern [,flags]) +<td>3.10 <td>returns an array of directory entries, <i>pattern</i> is the path and filename or wildcards to search for (e.g. '/subdir/*.txt'), <i>flags</i> is a bitfield of optional <tt>glob</tt> flags (default is <tt>GLOB_MARK</tt>) +<tr valign=top><td><b>dir_freespace</b><td>number<td><tt>dir_freespace(string directory [,unit_size]) +<td>3.11 +<td>returns the amount of available disk space in the specified <i>directory</i> using the specified <i>unit_size</i> in bytes (default: 1), specify a <i>unit_size</i> of <tt>1024</tt> to return the available space in <i>kilobytes</i>. +<tr valign=top><td><b>socket_select</b><td>array<td><tt>socket_select([array of socket objects or descriptors] [,number timeout] [,bool write]) +<td>3.11 +<td>checks an array of socket objects or descriptors for read or write ability (default is <i>read</i>), default timeout value is 0.0 seconds (immediate timeout), returns an array of 0-based index values into the socket array, representing the sockets that were ready for reading or writing <tr valign=top><td><b>mkdir</b><td>boolean<td><tt>mkdir(string directory) +<td>3.10 <td>make a directory <tr valign=top><td><b>rmdir</b><td>boolean<td><tt>rmdir(string directory) +<td>3.10 <td>remove a directory <tr valign=top><td><b>strftime</b><td>string<td><tt>strftime(string format [,number time]) +<td>3.10 <td>return a formatted time string (ala C strftime) <tr valign=top><td><b>format</b><td>string<td><tt>format(string format [,args]) +<td>3.10 <td>return a formatted string (ala sprintf) - <small>CAUTION: for experienced C programmers ONLY</small> -<tr valign=top><td><b>html_encode</b><td>string<td><tt>html_encode(string text [,bool ex_ascii] [,bool white_space]) -<td>return an HTML-encoded text string (using standard HTML character entities), escaping IBM extended-ASCII and white-space characters by default +<tr valign=top><td><b>html_encode</b><td>string<td><tt>html_encode(string text [,bool ex_ascii] [,bool white_space] [,bool ansi] [,bool ctrl_a]) +<td>3.11 +<td>return an HTML-encoded text string (using standard HTML character entities), escaping IBM extended-ASCII, white-space characters, ANSI codes, and CTRL-A codes by default <tr valign=top><td><b>html_decode</b><td>string<td><tt>html_decode(string text) +<td>3.11 <td>return a decoded HTML-encoded text string <tr valign=top><td><b>word_wrap</b><td>string<td><tt>word_wrap(string text [,line_length]) +<td>3.11 <td>returns a word-wrapped version of the text string argument, <i>line_length</i> defaults to <i>79</i> <tr valign=top><td><b>quote_msg</b><td>string<td><tt>quote_msg(string text [,line_length] [,prefix]) +<td>3.11 <td>returns a quoted version of the message text string argumnet, <i>line_length</i> defaults to <i>79</i>, <i>prefix</i> defaults to <tt>" > "</tt> <tr valign=top><td><b>rot13_translate</b><td>string<td><tt>rot13_translate(string text) +<td>3.11 <td>returns ROT13-translated version of text string (will encode or decode text) <tr valign=top><td><b>base64_encode</b><td>string<td><tt>base64_encode(string text) +<td>3.11 <td>returns base64-encoded version of text string or <i>null</i> on error <tr valign=top><td><b>base64_decode</b><td>string<td><tt>base64_decode(string text) +<td>3.11 <td>returns base64-decoded text string or <i>null</i> on error (not useful for binary data) <tr valign=top><td><b>crc16_calc</b><td>number<td><tt>crc16_calc(string text) +<td>3.11 <td>calculate and return 16-bit CRC of text string <tr valign=top><td><b>crc32_calc</b><td>number<td><tt>crc32_calc(string text) +<td>3.11 <td>calculate and return 32-bit CRC of text string <tr valign=top><td><b>chksum_calc</b><td>number<td><tt>chksum_calc(string text) +<td>3.11 <td>calculate and return 32-bit checksum of text string <tr valign=top><td><b>md5_calc</b><td>string<td><tt>md5_calc(string text [,bool hex]) +<td>3.11 <td>calculate and return 128-bit MD5 digest of text string, result encoded in base64 (default) or hexadecimal <tr valign=top><td><b>resolve_ip</b><td>string<td><tt>resolve_ip(string hostname) +<td>3.11 <td>resolve IP address of specified hostname (AKA gethostbyname) <tr valign=top><td><b>resolve_host</b><td>string<td><tt>resolve_host(string ip_address) +<td>3.11 <td>resolve hostname of specified IP address (AKA gethostbyaddr) </table> <br> @@ -414,9 +485,33 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 </table> <h2><a name=js>js object</a> <br><font size=-1>JavaScript execution and garbage collection control object</font> +<font size=-1> - introduced in v3.11</font> </h2> <table border=1 width=100%> <caption align=left><b><tt>js</tt> +<a name=js_methods> methods</a> +</b></caption> +<tr bgcolor=gray> +<th align=left width=100> +<font color="white">Name</font> +<th align=left width=100> +<font color="white">Returns</font> +<th align=left width=200> +<font color="white">Usage</font> +<th align=left width=50> +<font color="white">Ver</font> +<th align=left> +<font color="white">Description</font> +<tr valign=top><td><b>eval</b><td>string<td><tt>js.eval(string script) +<td>3.11 +<td>evaluate a JavaScript string in its own (secure) context, returning the result +<tr valign=top><td><b>gc</b><td>void<td><tt>js.gc(bool forced) +<td>3.11 +<td>perform a garbage collection operation (freeing memory for unused allocated objects), if <i>forced</i> is <i>true</i> (the default) a garbage collection is always performed, otherwise it is only performed if deemed appropriate by the JavaScript engine +</table> +<br> +<table border=1 width=100%> +<caption align=left><b><tt>js</tt> <a name=js_properties> properties</a> </b></caption> <tr bgcolor=gray> @@ -424,28 +519,46 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> +<tr valign=top><td><b>version</b><td>string +<td>3.11 +<td>JavaScript engine version information (AKA system.js_version) +<tr valign=top><td><b>auto_terminate</b><td>boolean +<td>3.11 +<td>set to <i>false</i> to disable the automatic termination of the script upon external request <tr valign=top><td><b>terminated</b><td>boolean -<td>termination has been requested (stop execution as soon as possible)</td> +<td>3.11 +<td>termination has been requested (stop execution as soon as possible) <tr valign=top><td><b>branch_counter</b><td>number -<td>number of branch operations performed in this runtime</td> +<td>3.11 +<td>number of branch operations performed in this runtime <tr valign=top><td><b>branch_limit</b><td>number -<td>maximum number of branches, used for infinite-loop detection (0=disabled)</td> +<td>3.11 +<td>maximum number of branches, used for infinite-loop detection (0=disabled) <tr valign=top><td><b>yield_interval</b><td>number -<td>interval of periodic time-slice yields (lower number=higher frequency, 0=disabled)</td> +<td>3.11 +<td>interval of periodic time-slice yields (lower number=higher frequency, 0=disabled) <tr valign=top><td><b>gc_interval</b><td>number -<td>interval of periodic garbage collection attempts (lower number=higher frequency, 0=disabled)</td> +<td>3.11 +<td>interval of periodic garbage collection attempts (lower number=higher frequency, 0=disabled) <tr valign=top><td><b>gc_attempts</b><td>number -<td>number of garbage collections attempted in this runtime - <small>READ ONLY</small></td> +<td>3.11 +<td>number of garbage collections attempted in this runtime - <small>READ ONLY</small> <tr valign=top><td><b>gc_counter</b><td>number -<td>number of garbage collections performed in this runtime - <small>READ ONLY</small></td> +<td>3.11 +<td>number of garbage collections performed in this runtime - <small>READ ONLY</small> <tr valign=top><td><b>gc_last_bytes</b><td>number -<td>number of heap bytes in use after last garbage collection - <small>READ ONLY</small></td> +<td>3.11 +<td>number of heap bytes in use after last garbage collection - <small>READ ONLY</small> <tr valign=top><td><b>bytes</b><td>number -<td>number of heap bytes currently in use - <small>READ ONLY</small></td> +<td>3.11 +<td>number of heap bytes currently in use - <small>READ ONLY</small> <tr valign=top><td><b>max_bytes</b><td>number -<td>maximum number of bytes available for heap</td> +<td>3.11 +<td>maximum number of bytes available for heap </table> <h2><a name=system>system object</a> <br><font size=-1>Global system-related properties and methods</font> @@ -461,47 +574,72 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Returns</font> <th align=left width=200> <font color="white">Usage</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>username</b><td>string<td><tt>system.username(number) +<td>3.11 <td>returns name of user in specified user record <i>number</i>, or empty string if not found <tr valign=top><td><b>alias</b><td>string<td><tt>system.alias(string alias) +<td>3.10 <td>returns name of user that matches alias (if found in <tt>ctrl/alias.cfg</tt>) <tr valign=top><td><b>matchuser</b><td>number<td><tt>system.matchuser(string username [,bool sysop_alias]) +<td>3.10 <td>exact user name matching, returns number of user whose name/alias matches <i>username</i> or 0 if not found, matches well-known sysop aliases by default <tr valign=top><td><b>matchuserdata</b><td>number<td><tt>system.matchuserdata(field, data [,usernumber]) +<td>3.10 <td>search user database for data in a specific field (specified by offset), returns first matching user record number, optional <i>usernumber</i> specifies user record to skip <tr valign=top><td><b>trashcan</b><td>boolean<td><tt>system.trashcan(string filename, search) +<td>3.10 <td>search text/filename.can for pseudo-regexp <tr valign=top><td><b>findstr</b><td>boolean<td><tt>system.findstr(string filename, search) +<td>3.10 <td>search any file for pseudo-regexp <tr valign=top><td><b>zonestr</b><td>string<td><tt>system.zonestr([timezone]) +<td>3.10 <td>convert time zone integer to string, defaults to system timezone if <i>timezone</i> not specified <tr valign=top><td><b>timestr</b><td>string<td><tt>system.timestr([time]) +<td>3.10 <td>convert time_t integer into a time string, defaults to current time if <i>time</i> not specified <tr valign=top><td><b>datestr</b><td>string<td><tt>system.datestr([time]) +<td>3.10 <td>convert time_t integer into a date string (in either <tt>MM/DD/YY</tt> or <tt>DD/MM/YY</tt> format), defaults to current date if <i>time</i> not specified <tr valign=top><td><b>secondstr</b><td>string<td><tt>system.secondstr(seconds) +<td>3.10 <td>convert elapsed time in seconds into a string in <tt>hh:mm:ss</tt> format <tr valign=top><td><b>spamlog</b><td>boolean<td><tt>system.spamlog([protocol, action, reason, host, ip, to, from]) +<td>3.10 <td>log a suspected SPAM attempt <tr valign=top><td><b>hacklog</b><td>boolean<td><tt>system.hacklog([protocol, user, text, host, ip, port]) +<td>3.10 <td>log a suspected hack attempt <tr valign=top><td><b>filter_ip</b><td>boolean<td><tt>system.filter_ip([protocol, reason, host, ip, username]) +<td>3.11 <td>add an IP address (with comment) to the system's IP filter file <tr valign=top><td><b>get_node_message</b><td>string<td><tt>system.get_node_message(number node) +<td>3.11 <td>read any messages waiting for the specified node and return in a single string <tr valign=top><td><b>put_node_message</b><td>boolean<td><tt>system.put_node_message(number node, string message) +<td>3.10 <td>send a node a short text message, delivered immediately <tr valign=top><td><b>get_telegram</b><td>string<td><tt>system.get_telegram(number user) +<td>3.11 <td>returns any short text messages waiting for the specified user <tr valign=top><td><b>put_telegram</b><td>boolean<td><tt>system.put_telegram(number user, string message) +<td>3.10 <td>sends a user a short text message, delivered immediately or during next logon <tr valign=top><td><b>new_user</b><td>object<td><tt>system.new_user(name/alias) +<td>3.10 <td>creates a new user record, returns a new <a href=#User>User</a> object representing the new user account <tr valign=top><td><b>exec</b><td>number<td><tt>system.exec(command-line) -<td>executes a native system/shell command-line, returns 0 on success +<td>3.11 +<td>executes a native system/shell command-line, returns <i>0</i> on success +<tr valign=top><td><b>popen</b><td>array<td><tt>system.popen(command-line) +<td>3.11 +<td>executes a native system/shell command-line, returns array of captured output lines on success (<b>only functional on UNIX systems</b>) <tr valign=top><td><b>check_syspass</b><td>boolean<td><tt>system.check_syspass(string password) +<td>3.11 <td>compares the supplied <i>password</i> against the system password and return's <i>true</i> if it matches </table> <br> @@ -514,140 +652,214 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>name</b><td>string -<td>BBS name</td> +<td>3.10 +<td>BBS name <tr valign=top><td><b>operator</b><td>string -<td>operator name</td> +<td>3.10 +<td>operator name <tr valign=top><td><b>qwk_id</b><td>string -<td>system QWK-ID (for QWK packets)</td> +<td>3.10 +<td>system QWK-ID (for QWK packets) <tr valign=top><td><b>settings</b><td>number -<td>settings bitfield (see <tt>SS_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions)</td> +<td>3.10 +<td>settings bitfield (see <tt>SS_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions) <tr valign=top><td><b>psname</b><td>string -<td>PostLink name</td> +<td>3.10 +<td>PostLink name <tr valign=top><td><b>psnum</b><td>number -<td>PostLink system number</td> -<tr valign=top><td><b>inetaddr</b><td>string -<td>Internet address (host or domain name)</td> +<td>3.10 +<td>PostLink system number +<tr valign=top><td><b>inet_addr</b><td>string +<td>3.11 +<td>Internet address (host or domain name) <tr valign=top><td><b>location</b><td>string -<td>location (city, state)</td> +<td>3.10 +<td>location (city, state) <tr valign=top><td><b>timezone</b><td>number -<td>timezone (use <i>system.zonestr()</i> to get string representation)</td> +<td>3.10 +<td>timezone (use <i>system.zonestr()</i> to get string representation) <tr valign=top><td><b>pwdays</b><td>number -<td>days between forced password changes</td> +<td>3.10 +<td>days between forced password changes <tr valign=top><td><b>deldays</b><td>number -<td>days to preserve deleted user records</td> +<td>3.10 +<td>days to preserve deleted user records <tr valign=top><td><b>lastuser</b><td>number -<td>last user record number in user database (includes deleted and inactive user records)</td> +<td>3.11 +<td>last user record number in user database (includes deleted and inactive user records) <tr valign=top><td><b>lastuseron</b><td>string -<td>name of last user to logoff</td> +<td>3.10 +<td>name of last user to logoff <tr valign=top><td><b>freediskspace</b><td>number -<td>amount of free disk space (in bytes)</td> +<td>3.10 +<td>amount of free disk space (in bytes) <tr valign=top><td><b>freediskspacek</b><td>number -<td>amount of free disk space (in kilobytes)</td> +<td>3.10 +<td>amount of free disk space (in kilobytes) <tr valign=top><td><b>nodes</b><td>number -<td>total number of BBS nodes</td> +<td>3.10 +<td>total number of BBS nodes <tr valign=top><td><b>lastnode</b><td>number -<td>last displayable node number</td> +<td>3.10 +<td>last displayable node number <tr valign=top><td><b>newuser_password</b><td>string -<td>new user password</td> +<td>3.10 +<td>new user password <tr valign=top><td><b>newuser_magic_word</b><td>string -<td>new user magic word</td> +<td>3.10 +<td>new user magic word <tr valign=top><td><b>newuser_level</b><td>number -<td>new user level</td> +<td>3.10 +<td>new user level <tr valign=top><td><b>newuser_flags1</b><td>number -<td>new user flag set #1</td> +<td>3.10 +<td>new user flag set #1 <tr valign=top><td><b>newuser_flags2</b><td>number -<td>new user flag set #2</td> +<td>3.10 +<td>new user flag set #2 <tr valign=top><td><b>newuser_flags3</b><td>number -<td>new user flag set #3</td> +<td>3.10 +<td>new user flag set #3 <tr valign=top><td><b>newuser_flags4</b><td>number -<td>new user flag set #4</td> +<td>3.10 +<td>new user flag set #4 <tr valign=top><td><b>newuser_restrictions</b><td>number -<td>new user restriction flags</td> +<td>3.10 +<td>new user restriction flags <tr valign=top><td><b>newuser_exemptions</b><td>number -<td>new user exemption flags</td> +<td>3.10 +<td>new user exemption flags <tr valign=top><td><b>newuser_credits</b><td>number -<td>new user credits</td> +<td>3.10 +<td>new user credits <tr valign=top><td><b>newuser_minutes</b><td>number -<td>new user extra minutes</td> +<td>3.10 +<td>new user extra minutes <tr valign=top><td><b>newuser_command_shell</b><td>number -<td>new user command shell</td> +<td>3.10 +<td>new user command shell <tr valign=top><td><b>newuser_editor</b><td>string -<td>new user external editor</td> +<td>3.10 +<td>new user external editor <tr valign=top><td><b>newuser_settings</b><td>number -<td>new user settings</td> +<td>3.10 +<td>new user settings <tr valign=top><td><b>newuser_download_protocol</b><td>string -<td>new user file transfer protocol (command key)</td> +<td>3.10 +<td>new user file transfer protocol (command key) <tr valign=top><td><b>newuser_expiration_days</b><td>number -<td>new user expiration days</td> +<td>3.10 +<td>new user expiration days <tr valign=top><td><b>newuser_questions</b><td>number -<td>new user questions bitfield (see <tt>UQ_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions)</td> +<td>3.10 +<td>new user questions bitfield (see <tt>UQ_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions) <tr valign=top><td><b>expired_level</b><td>number -<td>expired user level</td> +<td>3.10 +<td>expired user level <tr valign=top><td><b>expired_flags1</b><td>number -<td>expired user flag set #1</td> +<td>3.10 +<td>expired user flag set #1 <tr valign=top><td><b>expired_flags2</b><td>number -<td>expired user flag set #2</td> +<td>3.10 +<td>expired user flag set #2 <tr valign=top><td><b>expired_flags3</b><td>number -<td>expired user flag set #3</td> +<td>3.10 +<td>expired user flag set #3 <tr valign=top><td><b>expired_flags4</b><td>number -<td>expired user flag set #4</td> +<td>3.10 +<td>expired user flag set #4 <tr valign=top><td><b>expired_restrictions</b><td>number -<td>expired user restriction flags</td> +<td>3.10 +<td>expired user restriction flags <tr valign=top><td><b>expired_exemptions</b><td>number -<td>expired user exemption flags</td> +<td>3.10 +<td>expired user exemption flags <tr valign=top><td><b>node_dir</b><td>string -<td>node directory</td> +<td>3.10 +<td>node directory <tr valign=top><td><b>ctrl_dir</b><td>string -<td>control file directory</td> +<td>3.10 +<td>control file directory <tr valign=top><td><b>data_dir</b><td>string -<td>data file directory</td> +<td>3.10 +<td>data file directory <tr valign=top><td><b>text_dir</b><td>string -<td>text file directory</td> +<td>3.10 +<td>text file directory <tr valign=top><td><b>temp_dir</b><td>string -<td>temporary file directory</td> +<td>3.10 +<td>temporary file directory <tr valign=top><td><b>exec_dir</b><td>string -<td>executable file directory</td> +<td>3.10 +<td>executable file directory <tr valign=top><td><b>mods_dir</b><td>string -<td>modified modules directory (optional)</td> +<td>3.10 +<td>modified modules directory (optional) <tr valign=top><td><b>logs_dir</b><td>string -<td>log file directory</td> +<td>3.10 +<td>log file directory <tr valign=top><td><b>devnull</b><td>string -<td>null device filename</td> +<td>3.11 +<td>null device filename +<tr valign=top><td><b>clock_ticks</b><td>number +<td>3.11 +<td>amount of elapsed processor time in clock 'ticks' +<tr valign=top><td><b>clock_ticks_per_second</b><td>number +<td>3.11 +<td>number of clock ticks per second <tr valign=top><td><b>local_host_name</b><td>string -<td>private host name that uniquely identifies this system on the local network</td> +<td>3.11 +<td>private host name that uniquely identifies this system on the local network <tr valign=top><td><b>host_name</b><td>string -<td>public host name that uniquely identifies this system on the Internet (usually the same as <i>system.inetaddr</i>)</td> +<td>N/A +<td>public host name that uniquely identifies this system on the Internet (usually the same as <i>system.inetaddr</i>) <tr valign=top><td><b>version</b><td>string -<td>Synchronet version number (e.g. '3.10')</td> +<td>N/A +<td>Synchronet version number (e.g. '3.10') <tr valign=top><td><b>revision</b><td>string -<td>Synchronet revision letter (e.g. 'k')</td> +<td>N/A +<td>Synchronet revision letter (e.g. 'k') <tr valign=top><td><b>beta_version</b><td>string -<td>Synchronet alpha/beta designation (e.g. ' beta')</td> +<td>N/A +<td>Synchronet alpha/beta designation (e.g. ' beta') <tr valign=top><td><b>full_version</b><td>string -<td>Synchronet full version information (e.g. '3.10k Beta Debug')</td> +<td>N/A +<td>Synchronet full version information (e.g. '3.10k Beta Debug') <tr valign=top><td><b>version_notice</b><td>string -<td>Synchronet version notice (includes version and platform)</td> +<td>N/A +<td>Synchronet version notice (includes version and platform) <tr valign=top><td><b>platform</b><td>string -<td>platform description (e.g. 'Win32', 'Linux', 'FreeBSD')</td> +<td>N/A +<td>platform description (e.g. 'Win32', 'Linux', 'FreeBSD') <tr valign=top><td><b>socket_lib</b><td>string -<td>socket library version information</td> +<td>N/A +<td>socket library version information <tr valign=top><td><b>msgbase_lib</b><td>string -<td>message base library version information</td> +<td>N/A +<td>message base library version information <tr valign=top><td><b>compiled_with</b><td>string -<td>compiler used to build Synchronet</td> +<td>N/A +<td>compiler used to build Synchronet <tr valign=top><td><b>compiled_when</b><td>string -<td>date and time compiled</td> +<td>N/A +<td>date and time compiled <tr valign=top><td><b>copyright</b><td>string -<td>Synchronet copyright display</td> +<td>N/A +<td>Synchronet copyright display <tr valign=top><td><b>js_version</b><td>string -<td>JavaScript engine version information</td> +<td>N/A +<td>JavaScript engine version information <tr valign=top><td><b>os_version</b><td>string -<td>operating system version information</td> +<td>N/A +<td>operating system version information <tr valign=top><td><b>uptime</b><td>number -<td>time/date system was brought online (in time_t format)</td> +<td>N/A +<td>time/date system was brought online (in time_t format) </table> <h2><a name=system.stats>system.stats object</a> <br><font size=-1>System statistics</font> @@ -661,42 +873,61 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>total_logons</b><td>number -<td>total logons</td> +<td>3.10 +<td>total logons <tr valign=top><td><b>logons_today</b><td>number -<td>logons today</td> +<td>3.10 +<td>logons today <tr valign=top><td><b>total_timeon</b><td>number -<td>total time used</td> +<td>3.10 +<td>total time used <tr valign=top><td><b>timeon_today</b><td>number -<td>time used today</td> +<td>3.10 +<td>time used today <tr valign=top><td><b>total_files</b><td>number -<td>total files in file bases</td> +<td>3.10 +<td>total files in file bases <tr valign=top><td><b>files_uploaded_today</b><td>number -<td>files uploaded today</td> +<td>3.10 +<td>files uploaded today <tr valign=top><td><b>bytes_uploaded_today</b><td>number -<td>bytes uploaded today</td> +<td>3.10 +<td>bytes uploaded today <tr valign=top><td><b>files_downloaded_today</b><td>number -<td>files downloaded today</td> +<td>3.10 +<td>files downloaded today <tr valign=top><td><b>bytes_downloaded_today</b><td>number -<td>bytes downloaded today</td> +<td>3.10 +<td>bytes downloaded today <tr valign=top><td><b>total_messages</b><td>number -<td>total messages in message bases</td> +<td>3.10 +<td>total messages in message bases <tr valign=top><td><b>messages_posted_today</b><td>number -<td>messages posted today</td> +<td>3.10 +<td>messages posted today <tr valign=top><td><b>total_email</b><td>number -<td>total messages in mail base</td> +<td>3.10 +<td>total messages in mail base <tr valign=top><td><b>email_sent_today</b><td>number -<td>email sent today</td> +<td>3.10 +<td>email sent today <tr valign=top><td><b>total_feedback</b><td>number -<td>total feedback messages waiting</td> +<td>3.10 +<td>total feedback messages waiting <tr valign=top><td><b>feedback_sent_today</b><td>number -<td>feedback sent today</td> +<td>3.10 +<td>feedback sent today <tr valign=top><td><b>total_users</b><td>number -<td>total user records (does not include deleted or inactive user records)</td> +<td>3.10 +<td>total user records (does not include deleted or inactive user records) <tr valign=top><td><b>new_users_today</b><td>number -<td>new users today</td> +<td>3.10 +<td>new users today </table> <h2><a name=system.node_list>system.node_list array</a> <br><font size=-1>BBS node listing</font> @@ -710,24 +941,34 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>status</b><td>number -<td>status (see <tt>nodedefs.js</tt> for valid values)</td> +<td>3.10 +<td>status (see <tt>nodedefs.js</tt> for valid values) <tr valign=top><td><b>errors</b><td>number -<td>error counter</td> +<td>3.10 +<td>error counter <tr valign=top><td><b>action</b><td>number -<td>current user action (see <tt>nodedefs.js</tt>)</td> +<td>3.10 +<td>current user action (see <tt>nodedefs.js</tt>) <tr valign=top><td><b>useron</b><td>number -<td>current user number</td> +<td>3.10 +<td>current user number <tr valign=top><td><b>connection</b><td>number -<td>connection speed (<tt>0xffff</tt> = Telnet or RLogin)</td> +<td>3.10 +<td>connection speed (<tt>0xffff</tt> = Telnet or RLogin) <tr valign=top><td><b>misc</b><td>number -<td>miscellaneous bitfield (see <tt>nodedefs.js</tt>)</td> +<td>3.10 +<td>miscellaneous bitfield (see <tt>nodedefs.js</tt>) <tr valign=top><td><b>aux</b><td>number -<td>auxillary value</td> +<td>3.10 +<td>auxillary value <tr valign=top><td><b>extaux</b><td>number -<td>extended auxillary value</td> +<td>3.10 +<td>extended auxillary value </table> <h2><a name=server>server object</a> <br><font size=-1>Server-specifc properties</font> @@ -741,12 +982,25 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>version</b><td>string -<td>server name and version number</td> +<td>3.10 +<td>server name and version number <tr valign=top><td><b>version_detail</b><td>string -<td>detailed version/build information</td> +<td>3.10 +<td>detailed version/build information +<tr valign=top><td><b>interface_ip_address</b><td>string +<td>3.11 +<td>IP address of bound network interface (<tt>0.0.0.0</tt> = <i>ANY</i>) +<tr valign=top><td><b>options</b><td>number +<td>3.11 +<td>bit-field of server-specific startup options +<tr valign=top><td><b>clients</b><td>number +<td>3.11 +<td>number of active clients (if available) </table> <h2><a name=client>client object</a> <br><font size=-1>Represents a TCP/IP client session</font> @@ -760,22 +1014,31 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>ip_address</b><td>string -<td>client's IP address (in dotted-decimal format)</td> +<td>3.10 +<td>client's IP address (in dotted-decimal format) <tr valign=top><td><b>host_name</b><td>string -<td>client's host name (up to 64 characters)</td> +<td>3.10 +<td>client's host name (up to 64 characters) <tr valign=top><td><b>port</b><td>number -<td>client's TCP or UDP port number</td> +<td>3.10 +<td>client's TCP or UDP port number <tr valign=top><td><b>connect_time</b><td>number -<td>date/time of initial connection (in time_t format)</td> +<td>3.10 +<td>date/time of initial connection (in time_t format) <tr valign=top><td><b>protocol</b><td>string -<td>protocol description (e.g. 'Telnet', 'FTP', etc.)</td> +<td>3.10 +<td>protocol description (e.g. 'Telnet', 'FTP', etc.) <tr valign=top><td><b>user_name</b><td>string -<td>user's name/alias (if logged in)</td> +<td>3.10 +<td>user's name/alias (if logged in) <tr valign=top><td><b>socket</b><td>object -<td>instance of <a href=#Socket>Socket class</a> representing client's TCP/IP connection</td> +<td>N/A +<td>instance of <a href=#Socket>Socket class</a> representing client's TCP/IP connection </table> <h2><a name=user>user object</a> <br><font size=-1>Instance of <i>User</i> class, representing current user online</font> @@ -792,9 +1055,12 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Returns</font> <th align=left width=200> <font color="white">Usage</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>compare_ars</b><td>boolean<td><tt>user.compare_ars(string ars) +<td>3.10 <td>Verify user meets access requirements string </table> <br> @@ -807,74 +1073,109 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>number</b><td>number -<td>record number (1-based)</td> +<td>3.10 +<td>record number (1-based) <tr valign=top><td><b>alias</b><td>string -<td>alias/name</td> +<td>3.10 +<td>alias/name <tr valign=top><td><b>name</b><td>string -<td>real name</td> +<td>3.10 +<td>real name <tr valign=top><td><b>handle</b><td>string -<td>chat handle</td> +<td>3.10 +<td>chat handle <tr valign=top><td><b>ip_address</b><td>string -<td>IP address last logged on from</td> +<td>3.10 +<td>IP address last logged on from <tr valign=top><td><b>note</b><td>string -<td>AKA ip_address</td> +<td>3.10 +<td>AKA ip_address <tr valign=top><td><b>host_name</b><td>string -<td>host name last logged on from</td> +<td>3.10 +<td>host name last logged on from <tr valign=top><td><b>computer</b><td>string -<td>AKA host_name</td> +<td>3.10 +<td>AKA host_name <tr valign=top><td><b>comment</b><td>string -<td>sysop's comment</td> +<td>3.10 +<td>sysop's comment <tr valign=top><td><b>netmail</b><td>string -<td>external e-mail address</td> +<td>3.10 +<td>external e-mail address <tr valign=top><td><b>email</b><td>string -<td>local Internet e-mail address - <small>READ ONLY</small></td> +<td>3.10 +<td>local Internet e-mail address - <small>READ ONLY</small> <tr valign=top><td><b>address</b><td>string -<td>street address</td> +<td>3.10 +<td>street address <tr valign=top><td><b>location</b><td>string -<td>location (city, state)</td> +<td>3.10 +<td>location (city, state) <tr valign=top><td><b>zipcode</b><td>string -<td>zip/postal code</td> +<td>3.10 +<td>zip/postal code <tr valign=top><td><b>phone</b><td>string -<td>phone number</td> +<td>3.10 +<td>phone number <tr valign=top><td><b>birthdate</b><td>string -<td>birth date</td> +<td>3.10 +<td>birth date <tr valign=top><td><b>age</b><td>number -<td>calculated age in years - <small>READ ONLY</small></td> +<td>3.10 +<td>calculated age in years - <small>READ ONLY</small> <tr valign=top><td><b>connection</b><td>string -<td>connection type</td> +<td>3.10 +<td>connection type <tr valign=top><td><b>modem</b><td>string -<td>AKA connection</td> +<td>3.10 +<td>AKA connection <tr valign=top><td><b>screen_rows</b><td>number -<td>terminal rows (lines)</td> +<td>3.10 +<td>terminal rows (lines) <tr valign=top><td><b>gender</b><td>string -<td>gender type</td> +<td>3.10 +<td>gender type <tr valign=top><td><b>cursub</b><td>string -<td>current message sub-board</td> +<td>3.10 +<td>current message sub-board <tr valign=top><td><b>curdir</b><td>string -<td>current file directory</td> +<td>3.10 +<td>current file directory <tr valign=top><td><b>curxtrn</b><td>string -<td>current external program being run</td> +<td>3.10 +<td>current external program being run <tr valign=top><td><b>editor</b><td>string -<td>external message editor</td> +<td>3.10 +<td>external message editor <tr valign=top><td><b>command_shell</b><td>string -<td>command shell</td> +<td>3.10 +<td>command shell <tr valign=top><td><b>settings</b><td>number -<td>settings bitfield</td> +<td>3.10 +<td>settings bitfield <tr valign=top><td><b>qwk_settings</b><td>number -<td>QWK packet settings bitfield</td> +<td>3.10 +<td>QWK packet settings bitfield <tr valign=top><td><b>chat_settings</b><td>number -<td>chat settings bitfield</td> +<td>3.10 +<td>chat settings bitfield <tr valign=top><td><b>temp_file_ext</b><td>string -<td>temporary file type (extension)</td> +<td>3.10 +<td>temporary file type (extension) <tr valign=top><td><b>new_file_time</b><td>number -<td>new file scan date/time (time_t format)</td> +<td>3.11 +<td>new file scan date/time (time_t format) <tr valign=top><td><b>download_protocol</b><td>string -<td>file transfer protocol (command key)</td> +<td>3.10 +<td>file transfer protocol (command key) <tr valign=top><td><b>logontime</b><td>number -<td>logon time (time_t format)</td> +<td>3.10 +<td>logon time (time_t format) </table> <h2><a name=user.stats>user.stats object</a> <br><font size=-1>User statistics (all <small>READ ONLY</small>)</font> @@ -888,45 +1189,65 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>laston_date</b><td>number -<td>date of previous logon</td> +<td>3.10 +<td>date of previous logon <tr valign=top><td><b>firston_date</b><td>number -<td>date of first logon</td> +<td>3.10 +<td>date of first logon <tr valign=top><td><b>total_logons</b><td>number -<td>total number of logons</td> +<td>3.10 +<td>total number of logons <tr valign=top><td><b>logons_today</b><td>number -<td>total logons today</td> +<td>3.10 +<td>total logons today <tr valign=top><td><b>total_timeon</b><td>number -<td>total time used (in minutes)</td> +<td>3.10 +<td>total time used (in minutes) <tr valign=top><td><b>timeon_today</b><td>number -<td>time used today</td> +<td>3.10 +<td>time used today <tr valign=top><td><b>timeon_last_logon</b><td>number -<td>time used last session</td> +<td>3.10 +<td>time used last session <tr valign=top><td><b>total_posts</b><td>number -<td>total messages posted</td> +<td>3.10 +<td>total messages posted <tr valign=top><td><b>total_emails</b><td>number -<td>total e-mails sent</td> +<td>3.10 +<td>total e-mails sent <tr valign=top><td><b>total_feedbacks</b><td>number -<td>total feedback messages sent</td> +<td>3.10 +<td>total feedback messages sent <tr valign=top><td><b>email_today</b><td>number -<td>e-mail sent today</td> +<td>3.10 +<td>e-mail sent today <tr valign=top><td><b>posts_today</b><td>number -<td>messages posted today</td> +<td>3.10 +<td>messages posted today <tr valign=top><td><b>bytes_uploaded</b><td>number -<td>total bytes uploaded</td> +<td>3.10 +<td>total bytes uploaded <tr valign=top><td><b>files_uploaded</b><td>number -<td>total files uploaded</td> +<td>3.10 +<td>total files uploaded <tr valign=top><td><b>bytes_downloaded</b><td>number -<td>total bytes downloaded</td> +<td>3.10 +<td>total bytes downloaded <tr valign=top><td><b>files_downloaded</b><td>number -<td>total files downloaded</td> +<td>3.10 +<td>total files downloaded <tr valign=top><td><b>leech_attempts</b><td>number -<td>suspected leech downloads</td> +<td>3.10 +<td>suspected leech downloads </table> <h2><a name=user.limits>user.limits object</a> <br><font size=-1>User limitations based on security level (all <small>READ ONLY</small>)</font> +<font size=-1> - introduced in v3.11</font> </h2> <table border=1 width=100%> <caption align=left><b><tt>user.limits</tt> @@ -937,22 +1258,31 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>time_per_logon</b><td>number -<td>time (in minutes) per logon</td> +<td>3.11 +<td>time (in minutes) per logon <tr valign=top><td><b>time_per_day</b><td>number -<td>time (in minutes) per day</td> +<td>3.11 +<td>time (in minutes) per day <tr valign=top><td><b>logons_per_day</b><td>number -<td>logons per day</td> +<td>3.11 +<td>logons per day <tr valign=top><td><b>lines_per_message</b><td>number -<td>lines per message (post or email)</td> +<td>3.11 +<td>lines per message (post or email) <tr valign=top><td><b>email_per_day</b><td>number -<td>email sent per day</td> +<td>3.11 +<td>email sent per day <tr valign=top><td><b>posts_per_day</b><td>number -<td>messages posted per day</td> +<td>3.11 +<td>messages posted per day <tr valign=top><td><b>free_credits_per_day</b><td>number -<td>free credits given per day</td> +<td>3.11 +<td>free credits given per day </table> <h2><a name=user.security>user.security object</a> <br><font size=-1>User security settings</font> @@ -966,36 +1296,52 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>password</b><td>string -<td>password</td> +<td>3.10 +<td>password <tr valign=top><td><b>password_date</b><td>number -<td>date password last modified (time_t format)</td> +<td>3.10 +<td>date password last modified (time_t format) <tr valign=top><td><b>level</b><td>number -<td>security level (0-99)</td> +<td>3.10 +<td>security level (0-99) <tr valign=top><td><b>flags1</b><td>number -<td>flag set #1 (bitfield)</td> +<td>3.10 +<td>flag set #1 (bitfield) <tr valign=top><td><b>flags2</b><td>number -<td>flag set #2 (bitfield)</td> +<td>3.10 +<td>flag set #2 (bitfield) <tr valign=top><td><b>flags3</b><td>number -<td>flag set #3 (bitfield)</td> +<td>3.10 +<td>flag set #3 (bitfield) <tr valign=top><td><b>flags4</b><td>number -<td>flag set #4 (bitfield)</td> +<td>3.10 +<td>flag set #4 (bitfield) <tr valign=top><td><b>exemptions</b><td>number -<td>exemption flags (bitfield)</td> +<td>3.10 +<td>exemption flags (bitfield) <tr valign=top><td><b>restrictions</b><td>number -<td>restriction flags (bitfield)</td> +<td>3.10 +<td>restriction flags (bitfield) <tr valign=top><td><b>credits</b><td>number -<td>credits</td> +<td>3.10 +<td>credits <tr valign=top><td><b>free_credits</b><td>number -<td>free credits (for today only)</td> +<td>3.10 +<td>free credits (for today only) <tr valign=top><td><b>minutes</b><td>number -<td>extra minutes (time bank)</td> +<td>3.10 +<td>extra minutes (time bank) <tr valign=top><td><b>extra_time</b><td>number -<td>extra minutes (for today only)</td> +<td>3.10 +<td>extra minutes (for today only) <tr valign=top><td><b>expiration_date</b><td>number -<td>expiration date/time (time_t format)</td> +<td>3.10 +<td>expiration date/time (time_t format) </table> <h2><a name=bbs>bbs object</a> <br><font size=-1>Controls the Telnet/RLogin BBS experience</font> @@ -1011,165 +1357,246 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Returns</font> <th align=left width=200> <font color="white">Usage</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>atcode</b><td>string<td><tt>bbs.atcode(string code) +<td>3.10 <td>returns @-code value, specified <i>code</i> string does not include @ character delimiters <tr valign=top><td><b>text</b><td>string<td><tt>bbs.text(number line) +<td>3.10 <td>returns specified text string from text.dat <tr valign=top><td><b>replace_text</b><td>boolean<td><tt>bbs.replace_text(number line, string text) +<td>3.10 <td>replaces specified text string in memory <tr valign=top><td><b>revert_text</b><td>boolean<td><tt>bbs.revert_text([number line]) +<td>3.10 <td>reverts specified text string to original text string; if <i>line</i> unspecified, reverts all text lines <tr valign=top><td><b>load_text</b><td>boolean<td><tt>bbs.load_text(string basefilename) +<td>3.10 <td>load an alternate text.dat from ctrl directory, automatically appends '.dat' to basefilename <tr valign=top><td><b>newuser</b><td>void<td><tt>bbs.newuser() +<td>3.10 <td>interactive new user procedure <tr valign=top><td><b>login</b><td>boolean<td><tt>bbs.login(string username, password_prompt) +<td>3.10 <td>login with <i>username</i>, displaying <i>password_prompt</i> for password (if required) <tr valign=top><td><b>logon</b><td>boolean<td><tt>bbs.logon() +<td>3.10 <td>interactive logon procedure <tr valign=top><td><b>logoff</b><td>void<td><tt>bbs.logoff() +<td>3.10 <td>interactive logoff procedure <tr valign=top><td><b>logout</b><td>void<td><tt>bbs.logout() +<td>3.10 <td>non-interactive logout procedure <tr valign=top><td><b>hangup</b><td>void<td><tt>bbs.hangup() +<td>3.10 <td>hangup (disconnect) immediately <tr valign=top><td><b>nodesync</b><td>void<td><tt>bbs.nodesync() +<td>3.10 <td>synchronize with node database, checks for messages, interruption, etc. (AKA node_sync) <tr valign=top><td><b>auto_msg</b><td>void<td><tt>bbs.auto_msg() +<td>3.10 <td>read/create system's auto-message <tr valign=top><td><b>time_bank</b><td>void<td><tt>bbs.time_bank() +<td>3.10 <td>enter the time banking system <tr valign=top><td><b>qwk_sec</b><td>void<td><tt>bbs.qwk_sec() +<td>3.10 <td>enter the QWK message packet upload/download/config section <tr valign=top><td><b>text_sec</b><td>void<td><tt>bbs.text_sec() +<td>3.10 <td>enter the text files section <tr valign=top><td><b>xtrn_sec</b><td>void<td><tt>bbs.xtrn_sec() +<td>3.10 <td>enter the external programs section <tr valign=top><td><b>xfer_policy</b><td>void<td><tt>bbs.xfer_policy() +<td>3.10 <td>display the file transfer policy <tr valign=top><td><b>batch_menu</b><td>void<td><tt>bbs.batch_menu() +<td>3.10 <td>enter the batch file transfer menu <tr valign=top><td><b>batch_download</b><td>boolean<td><tt>bbs.batch_download() +<td>3.10 <td>start a batch download <tr valign=top><td><b>batch_add_list</b><td>void<td><tt>bbs.batch_add_list(filename) +<td>3.10 <td>add file list to batch download queue <tr valign=top><td><b>temp_xfer</b><td>void<td><tt>bbs.temp_xfer() +<td>3.10 <td>enter the temporary file tranfer menu <tr valign=top><td><b>user_sync</b><td>void<td><tt>bbs.user_sync() +<td>3.10 <td>read the current user data from the database <tr valign=top><td><b>user_config</b><td>void<td><tt>bbs.user_config() +<td>3.10 <td>enter the user settings configuration menu <tr valign=top><td><b>sys_info</b><td>void<td><tt>bbs.sys_info() +<td>3.10 <td>display system information <tr valign=top><td><b>sub_info</b><td>void<td><tt>bbs.sub_info([subboard]) +<td>3.10 <td>display message sub-board information (current <i>subboard</i>, if unspecified) <tr valign=top><td><b>dir_info</b><td>void<td><tt>bbs.dir_info([directory]) +<td>3.10 <td>display file directory information (current <i>directory</i>, if unspecified) <tr valign=top><td><b>user_info</b><td>void<td><tt>bbs.user_info() +<td>3.10 <td>display current user information <tr valign=top><td><b>ver</b><td>void<td><tt>bbs.ver() +<td>3.10 <td>display software version information <tr valign=top><td><b>sys_stats</b><td>void<td><tt>bbs.sys_stats() +<td>3.10 <td>display system statistics <tr valign=top><td><b>node_stats</b><td>void<td><tt>bbs.node_stats() +<td>3.10 <td>display current node statistics <tr valign=top><td><b>list_users</b><td>void<td><tt>bbs.list_users() +<td>3.10 <td>display user list <tr valign=top><td><b>edit_user</b><td>void<td><tt>bbs.edit_user() +<td>3.10 <td>enter the user editor <tr valign=top><td><b>change_user</b><td>void<td><tt>bbs.change_user() +<td>3.10 <td>change to a different user <tr valign=top><td><b>list_logons</b><td>void<td><tt>bbs.list_logons() +<td>3.10 <td>display the logon list <tr valign=top><td><b>read_mail</b><td>void<td><tt>bbs.read_mail() +<td>3.10 <td>read private e-mail <tr valign=top><td><b>email</b><td>boolean<td><tt>bbs.email(number user [,number mode] [,string top] [,string subject]) +<td>3.10 <td>send private e-mail or netmail <tr valign=top><td><b>netmail</b><td>boolean<td><tt>bbs.netmail(string address [,number mode] [,string subject]) +<td>3.10 <td>send private netmail <tr valign=top><td><b>bulk_mail</b><td>void<td><tt>bbs.bulk_mail([ars]) +<td>3.10 <td>send bulk private e-mail <tr valign=top><td><b>upload_file</b><td>boolean<td><tt>bbs.upload_file(directory) +<td>3.10 <td>upload file to file directory specified by number or internal code <tr valign=top><td><b>bulk_upload</b><td>boolean<td><tt>bbs.bulk_upload(directory) +<td>3.10 <td>add files (already in local storage path) to file directory specified by number or internal code <tr valign=top><td><b>resort_dir</b><td>boolean<td><tt>bbs.resort_dir(directory) +<td>3.10 <td>re-sort the file directory specified by number or internal code) <tr valign=top><td><b>list_files</b><td>number<td><tt>bbs.list_files(directory [,string filespec] [,number mode]) +<td>3.10 <td>list files in the specified file directory, optionally specifying a file specification (wildcards) and <i>mode</i> (bitfield) <tr valign=top><td><b>list_file_info</b><td>number<td><tt>bbs.list_file_info(directory [,string filespec] [,number mode]) +<td>3.10 <td>list extended file information for files in the specified file directory <tr valign=top><td><b>post_msg</b><td>boolean<td><tt>bbs.post_msg(sub-board [,number mode]) +<td>3.10 <td>post a message in the specified message sub-board (number or internal code) with optinal <i>mode</i> (bitfield) <tr valign=top><td><b>cfg_msg_scan</b><td>void<td><tt>bbs.cfg_msg_scan([number type]) +<td>3.10 <td>configure message scan (<i>type</i> is either <tt>SCAN_CFG_NEW</tt> or <tt>SCAN_CFG_TOYOU</tt>) <tr valign=top><td><b>cfg_msg_ptrs</b><td>void<td><tt>bbs.cfg_msg_ptrs([number type]) +<td>3.10 <td>change message scan pointer values (<i>type</i> is either <tt>SCAN_CFG_NEW</tt> or <tt>SCAN_CFG_TOYOU</tt>) <tr valign=top><td><b>reinit_msg_ptrs</b><td>void<td><tt>bbs.reinit_msg_ptrs() +<td>3.10 <td>re-initialize new message scan pointers <tr valign=top><td><b>scan_subs</b><td>void<td><tt>bbs.scan_subs([number mode, boolean all]) +<td>3.10 <td>scan sub-boards for messages <tr valign=top><td><b>scan_dirs</b><td>void<td><tt>bbs.scan_dirs([number mode, boolean all]) +<td>3.10 <td>scan directories for files <tr valign=top><td><b>scan_posts</b><td>boolean<td><tt>bbs.scan_posts([sub-board, number mode, string find]) +<td>3.10 <td>scan posts in the specified message sub-board (number or internal code), optionally search for 'find' string <tr valign=top><td><b>menu</b><td>void<td><tt>bbs.menu(base_filename) +<td>3.10 <td>display a menu file from the text/menu directory <tr valign=top><td><b>log_key</b><td>boolean<td><tt>bbs.log_key(key [,boolean comma]) +<td>3.10 <td>log key to node.log (comma optional) <tr valign=top><td><b>log_str</b><td>boolean<td><tt>bbs.log_str(text) +<td>3.10 <td>log string to node.log <tr valign=top><td><b>finduser</b><td>number<td><tt>bbs.finduser(username_or_number) +<td>3.10 <td>find user name (partial name support), interactive <tr valign=top><td><b>trashcan</b><td>boolean<td><tt>bbs.trashcan(base_filename, search_string) +<td>3.10 <td>search file for psuedo-regexp (search string) in trashcan file (text/base_filename.can) <tr valign=top><td><b>exec</b><td>number<td><tt>bbs.exec(cmdline [,number mode] [,string startup_dir]) +<td>3.10 <td>execute a program, optionally changing current directory to <i>startup_dir</i> (see <tt>EX_*</tt> in <tt>sbbsdefs.js</tt> for valid <i>mode</i> bits) <tr valign=top><td><b>exec_xtrn</b><td>boolean<td><tt>bbs.exec_xtrn(xtrn_number_or_code) +<td>3.10 <td>execute external program by internal code <tr valign=top><td><b>user_event</b><td>boolean<td><tt>bbs.user_event(number event_type) +<td>3.10 <td>execute user event by event type (see <tt>EVENT_*</tt> in <tt>sbbsdefs.js</tt> for valid values) <tr valign=top><td><b>telnet_gate</b><td>void<td><tt>bbs.telnet_gate(string address [,number mode]) +<td>3.10 <td>external telnet gateway (see <tt>TG_*</tt> in <tt>sbbsdefs.js</tt> for valid <i>mode</i> bits) <tr valign=top><td><b>check_syspass</b><td>boolean<td><tt>bbs.check_syspass() +<td>3.10 <td>prompt for and verify system password <tr valign=top><td><b>good_password</b><td>string<td><tt>bbs.good_password(string password) +<td>3.10 <td>check if requested user password meets minimum password requirements (length, uniqueness, etc.) <tr valign=top><td><b>page_sysop</b><td>boolean<td><tt>bbs.page_sysop() +<td>3.10 <td>page the sysop for chat <tr valign=top><td><b>page_guru</b><td>boolean<td><tt>bbs.page_guru() +<td>3.10 <td>page the guru for chat <tr valign=top><td><b>multinode_chat</b><td>void<td><tt>bbs.multinode_chat() +<td>3.10 <td>enter multi-node chat <tr valign=top><td><b>private_message</b><td>void<td><tt>bbs.private_message() +<td>3.10 <td>use the private inter-node message prompt <tr valign=top><td><b>private_chat</b><td>void<td><tt>bbs.private_chat() +<td>3.10 <td>enter private inter-node chat <tr valign=top><td><b>get_node_message</b><td>void<td><tt>bbs.get_node_message() +<td>3.10 <td>receive and display an inter-node message <tr valign=top><td><b>put_node_message</b><td>boolean<td><tt>bbs.put_node_message(number node, string text) +<td>3.10 <td>send an inter-node message <tr valign=top><td><b>get_telegram</b><td>void<td><tt>bbs.get_telegram([number usernum]) +<td>3.10 <td>receive and display a telegram <tr valign=top><td><b>put_telegram</b><td>boolean<td><tt>bbs.put_telegram(number user, string text) +<td>3.10 <td>send a telegram to a user <tr valign=top><td><b>list_nodes</b><td>void<td><tt>bbs.list_nodes() +<td>3.10 <td>list all nodes <tr valign=top><td><b>whos_online</b><td>void<td><tt>bbs.whos_online() +<td>3.10 <td>list active nodes only (who's online) <tr valign=top><td><b>spy</b><td>void<td><tt>bbs.spy(node_number) +<td>3.10 <td>spy on a node <tr valign=top><td><b>cmdstr</b><td>string<td><tt>bbs.cmdstr(string str [,string fpath] [,string fspec]) +<td>3.10 <td>return expanded command string using Synchronet command-line specifiers <tr valign=top><td><b>get_filespec</b><td>string<td><tt>bbs.get_filespec() +<td>3.10 <td>returns a file specification input by the user (optionally with wildcards) <tr valign=top><td><b>get_newscantime</b><td>number<td><tt>bbs.get_newscantime(number time) +<td>3.10 <td>confirm or change newscan time, returns new newscan time value (time_t format) <tr valign=top><td><b>select_shell</b><td>boolean<td><tt>bbs.select_shell() +<td>3.10 <td>prompt user to select a new command shell <tr valign=top><td><b>select_editor</b><td>boolean<td><tt>bbs.select_editor() +<td>3.10 <td>prompt user to select a new external message editor </table> <br> @@ -1182,162 +1609,241 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>sys_status</b><td>number -<td>system status bitfield (see <tt>SS_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions)</td> +<td>3.10 +<td>system status bitfield (see <tt>SS_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions) <tr valign=top><td><b>startup_options</b><td>number -<td>startup options bitfield (see <tt>BBS_OPT_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions)</td> +<td>3.10 +<td>startup options bitfield (see <tt>BBS_OPT_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions) <tr valign=top><td><b>answer_time</b><td>number -<td>answer time, in time_t format</td> +<td>3.10 +<td>answer time, in time_t format <tr valign=top><td><b>logon_time</b><td>number -<td>logon time, in time_t format</td> +<td>3.10 +<td>logon time, in time_t format <tr valign=top><td><b>new_file_time</b><td>number -<td>file newscan time, in time_t format</td> +<td>3.10 +<td>file newscan time, in time_t format <tr valign=top><td><b>last_new_file_time</b><td>number -<td>previous newscan time, in time_t format</td> +<td>3.10 +<td>previous newscan time, in time_t format <tr valign=top><td><b>online</b><td>number -<td>online (see <tt>ON_*</tt> in <tt>sbbsdefs.js</tt> for valid values)</td> +<td>3.10 +<td>online (see <tt>ON_*</tt> in <tt>sbbsdefs.js</tt> for valid values) <tr valign=top><td><b>time_left</b><td>number -<td>time left (in seconds)</td> +<td>3.11 +<td>time left (in seconds) <tr valign=top><td><b>event_time</b><td>number -<td>time of next exclusive event (in time_t format), or 0 if none</td> +<td>3.11 +<td>time of next exclusive event (in time_t format), or 0 if none <tr valign=top><td><b>event_code</b><td>string -<td>internal code of next exclusive event</td> +<td>3.11 +<td>internal code of next exclusive event <tr valign=top><td><b>node_num</b><td>number -<td>current node number</td> +<td>3.10 +<td>current node number <tr valign=top><td><b>node_settings</b><td>number -<td>current node settings bitfield (see <tt>NM_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions)</td> +<td>3.10 +<td>current node settings bitfield (see <tt>NM_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions) <tr valign=top><td><b>node_action</b><td>number -<td>current node action (see <tt>nodedefs.js</tt> for valid values)</td> +<td>3.10 +<td>current node action (see <tt>nodedefs.js</tt> for valid values) <tr valign=top><td><b>node_val_user</b><td>number -<td>validation feedback user for this node (or 0 for no validation feedback required)</td> +<td>3.10 +<td>validation feedback user for this node (or 0 for no validation feedback required) <tr valign=top><td><b>logon_ulb</b><td>number -<td>bytes uploaded during this session</td> +<td>3.10 +<td>bytes uploaded during this session <tr valign=top><td><b>logon_dlb</b><td>number -<td>bytes downloaded during this session</td> +<td>3.10 +<td>bytes downloaded during this session <tr valign=top><td><b>logon_uls</b><td>number -<td>files uploaded during this session</td> +<td>3.10 +<td>files uploaded during this session <tr valign=top><td><b>logon_dls</b><td>number -<td>files downloaded during this session</td> +<td>3.10 +<td>files downloaded during this session <tr valign=top><td><b>logon_posts</b><td>number -<td>messages posted during this session</td> +<td>3.10 +<td>messages posted during this session <tr valign=top><td><b>logon_emails</b><td>number -<td>e-mails sent during this session</td> +<td>3.10 +<td>e-mails sent during this session <tr valign=top><td><b>logon_fbacks</b><td>number -<td>feedback messages sent during this session</td> +<td>3.10 +<td>feedback messages sent during this session <tr valign=top><td><b>posts_read</b><td>number -<td>messages read during this session</td> +<td>3.10 +<td>messages read during this session <tr valign=top><td><b>menu_dir</b><td>string -<td>menu subdirectory (overrides default)</td> +<td>3.10 +<td>menu subdirectory (overrides default) <tr valign=top><td><b>menu_file</b><td>string -<td>menu file (overrides default)</td> +<td>3.10 +<td>menu file (overrides default) <tr valign=top><td><b>main_cmds</b><td>number -<td>total main menu commands received from user during this session</td> +<td>3.10 +<td>total main menu commands received from user during this session <tr valign=top><td><b>file_cmds</b><td>number -<td>total file menu commands received from user during this session</td> +<td>3.10 +<td>total file menu commands received from user during this session <tr valign=top><td><b>curgrp</b><td>number -<td>current message group</td> +<td>3.10 +<td>current message group <tr valign=top><td><b>cursub</b><td>number -<td>current message sub-board</td> +<td>3.10 +<td>current message sub-board <tr valign=top><td><b>curlib</b><td>number -<td>current file library</td> +<td>3.10 +<td>current file library <tr valign=top><td><b>curdir</b><td>number -<td>current file directory</td> +<td>3.10 +<td>current file directory <tr valign=top><td><b>connection</b><td>string -<td>remote connection type</td> +<td>3.10 +<td>remote connection type <tr valign=top><td><b>rlogin_name</b><td>string -<td>rlogin name</td> +<td>3.10 +<td>rlogin name <tr valign=top><td><b>client_name</b><td>string -<td>client name</td> +<td>3.10 +<td>client name <tr valign=top><td><b>alt_ul_dir</b><td>number -<td>current alternate upload path number</td> +<td>3.10 +<td>current alternate upload path number <tr valign=top><td><b>smb_group</b><td>string -<td>message group name of message being read</td> +<td>3.10 +<td>message group name of message being read <tr valign=top><td><b>smb_group_desc</b><td>string -<td>message group description of message being read</td> +<td>3.10 +<td>message group description of message being read <tr valign=top><td><b>smb_group_number</b><td>number -<td>message group number of message being read</td> +<td>3.10 +<td>message group number of message being read <tr valign=top><td><b>smb_sub</b><td>string -<td>sub-board name of message being read</td> +<td>3.10 +<td>sub-board name of message being read <tr valign=top><td><b>smb_sub_desc</b><td>string -<td>sub-board description of message being read</td> +<td>3.10 +<td>sub-board description of message being read <tr valign=top><td><b>smb_sub_code</b><td>string -<td>sub-board internal code of message being read</td> +<td>3.10 +<td>sub-board internal code of message being read <tr valign=top><td><b>smb_sub_number</b><td>number -<td>sub-board number of message being read</td> +<td>3.10 +<td>sub-board number of message being read <tr valign=top><td><b>smb_attr</b><td>number -<td>message base attributes</td> +<td>3.10 +<td>message base attributes <tr valign=top><td><b>smb_last_msg</b><td>number -<td>highest message number in message base</td> +<td>3.10 +<td>highest message number in message base <tr valign=top><td><b>smb_total_msgs</b><td>number -<td>total number of messages in message base</td> +<td>3.10 +<td>total number of messages in message base <tr valign=top><td><b>smb_msgs</b><td>number -<td>number of messages loaded from message base</td> +<td>3.10 +<td>number of messages loaded from message base <tr valign=top><td><b>smb_curmsg</b><td>number -<td>current message number in message base</td> +<td>3.10 +<td>current message number in message base <tr valign=top><td><b>msg_to</b><td>string -<td>message recipient name</td> +<td>3.10 +<td>message recipient name <tr valign=top><td><b>msg_to_ext</b><td>string -<td>message recipient extension</td> +<td>3.10 +<td>message recipient extension <tr valign=top><td><b>msg_to_net</b><td>string -<td>message recipient network type</td> +<td>3.10 +<td>message recipient network type <tr valign=top><td><b>msg_to_agent</b><td>number -<td>message recipient agent type</td> +<td>3.10 +<td>message recipient agent type <tr valign=top><td><b>msg_from</b><td>string -<td>message sender name</td> +<td>3.10 +<td>message sender name <tr valign=top><td><b>msg_from_ext</b><td>string -<td>message sender extension</td> +<td>3.10 +<td>message sender extension <tr valign=top><td><b>msg_from_net</b><td>string -<td>message sender network type</td> +<td>3.10 +<td>message sender network type <tr valign=top><td><b>msg_from_agent</b><td>number -<td>message sender agent type</td> +<td>3.10 +<td>message sender agent type <tr valign=top><td><b>msg_replyto</b><td>string -<td>message reply-to name</td> +<td>3.10 +<td>message reply-to name <tr valign=top><td><b>msg_replyto_ext</b><td>string -<td>message reply-to extension</td> +<td>3.10 +<td>message reply-to extension <tr valign=top><td><b>msg_replyto_net</b><td>string -<td>message reply-to network type</td> +<td>3.10 +<td>message reply-to network type <tr valign=top><td><b>msg_replyto_agent</b><td>number -<td>message reply-to agent type</td> +<td>3.10 +<td>message reply-to agent type <tr valign=top><td><b>msg_subject</b><td>string -<td>message subject</td> +<td>3.10 +<td>message subject <tr valign=top><td><b>msg_date</b><td>number -<td>message date/time</td> +<td>3.10 +<td>message date/time <tr valign=top><td><b>msg_timezone</b><td>number -<td>message time zone</td> +<td>3.10 +<td>message time zone <tr valign=top><td><b>msg_date_imported</b><td>number -<td>message date/time imported</td> +<td>3.10 +<td>message date/time imported <tr valign=top><td><b>msg_attr</b><td>number -<td>message attributes</td> +<td>3.10 +<td>message attributes <tr valign=top><td><b>msg_auxattr</b><td>number -<td>message auxillary attributes</td> +<td>3.10 +<td>message auxillary attributes <tr valign=top><td><b>msg_netattr</b><td>number -<td>message network attributes</td> +<td>3.10 +<td>message network attributes <tr valign=top><td><b>msg_offset</b><td>number -<td>message header offset</td> +<td>3.10 +<td>message header offset <tr valign=top><td><b>msg_number</b><td>number -<td>message number</td> +<td>3.10 +<td>message number <tr valign=top><td><b>msg_expiration</b><td>number -<td>message expiration</td> +<td>3.10 +<td>message expiration <tr valign=top><td><b>msg_forwarded</b><td>number -<td>message forwarded</td> +<td>3.10 +<td>message forwarded <tr valign=top><td><b>msg_thread_orig</b><td>number -<td>message thread, original message number</td> +<td>3.10 +<td>message thread, original message number <tr valign=top><td><b>msg_thread_next</b><td>number -<td>message thread, next message number</td> +<td>3.10 +<td>message thread, next message number <tr valign=top><td><b>msg_thread_first</b><td>number -<td>message thread, first reply to this message</td> +<td>3.10 +<td>message thread, first reply to this message <tr valign=top><td><b>msg_id</b><td>string -<td>message identifier</td> +<td>3.10 +<td>message identifier <tr valign=top><td><b>msg_reply_id</b><td>string -<td>message replied-to identifier</td> +<td>3.10 +<td>message replied-to identifier <tr valign=top><td><b>msg_delivery_attempts</b><td>number -<td>message delivery attempt counter</td> +<td>3.10 +<td>message delivery attempt counter <tr valign=top><td><b>batch_upload_total</b><td>number -<td>number of files in batch upload queue</td> +<td>3.10 +<td>number of files in batch upload queue <tr valign=top><td><b>batch_dnload_total</b><td>number -<td>number of files in batch download queue</td> +<td>3.10 +<td>number of files in batch download queue </table> <h2><a name=console>console object</a> <br><font size=-1>Controls the user's Telnet/RLogin terminal</font> @@ -1353,89 +1859,132 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Returns</font> <th align=left width=200> <font color="white">Usage</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>inkey</b><td>string<td><tt>console.inkey([number mode] [,number timeout]) +<td>3.11 <td>get a single key with optional <i>timeout</i> in milliseconds (defaults to 0, for no wait), see <tt>K_*</tt> in <tt>sbbsdefs.js</tt> for <i>mode</i> bits <tr valign=top><td><b>getkey</b><td>string<td><tt>console.getkey([number mode]) +<td>3.10 <td>get a single key, with wait, see <tt>K_*</tt> in <tt>sbbsdefs.js</tt> for <i>mode</i> bits <tr valign=top><td><b>getstr</b><td>string<td><tt>console.getstr([string][,maxlen][,mode]) +<td>3.10 <td>get a text string from the user, see <tt>K_*</tt> in <tt>sbbsdefs.js</tt> for <i>mode</i> bits <tr valign=top><td><b>getnum</b><td>number<td><tt>console.getnum([maxnum]) +<td>3.10 <td>get a number between 1 and <i>maxnum</i> from the user <tr valign=top><td><b>getkeys</b><td>number<td><tt>console.getkeys(string keys [,maxnum]) +<td>3.10 <td>get one key from of a list of valid command <i>keys</i>, or a number between 1 and <i>maxnum</i> <tr valign=top><td><b>gettemplate</b><td>string<td><tt>console.gettemplate(format [,string] [,mode]) +<td>3.10 <td>get a string based on template <tr valign=top><td><b>ungetstr</b><td>void<td><tt>console.ungetstr() +<td>3.10 <td>put a string in the keyboard buffer <tr valign=top><td><b>yesno</b><td>boolean<td><tt>console.yesno(string question) +<td>3.10 <td>YES/no question <tr valign=top><td><b>noyes</b><td>boolean<td><tt>console.noyes(string question) +<td>3.10 <td>NO/yes question <tr valign=top><td><b>mnemonics</b><td>void<td><tt>console.mnemonics(string text) +<td>3.10 <td>print a mnemonics string <tr valign=top><td><b>clear</b><td>void<td><tt>console.clear() +<td>3.10 <td>clear screen and home cursor <tr valign=top><td><b>home</b><td>void<td><tt>console.home() +<td>3.11 <td>send cursor to home position (x,y:1,1) <tr valign=top><td><b>clearline</b><td>void<td><tt>console.clearline() +<td>3.10 <td>clear current line <tr valign=top><td><b>cleartoeol</b><td>void<td><tt>console.cleartoeol() +<td>3.11 <td>clear to end-of-line (ANSI) <tr valign=top><td><b>crlf</b><td>void<td><tt>console.crlf() +<td>3.10 <td>output a carriage-return/line-feed pair (new-line) <tr valign=top><td><b>pause</b><td>void<td><tt>console.pause() +<td>3.10 <td>display pause prompt and wait for key hit <tr valign=top><td><b>beep</b><td>void<td><tt>console.beep([number count]) +<td>3.11 <td>beep for count number of times (default count is 1) <tr valign=top><td><b>print</b><td>void<td><tt>console.print(string text) +<td>3.10 <td>display a string (supports Ctrl-A codes) <tr valign=top><td><b>write</b><td>void<td><tt>console.write(string text) +<td>3.10 <td>display a raw string <tr valign=top><td><b>putmsg</b><td>void<td><tt>console.putmsg(string text [,number mode]) +<td>3.10 <td>display message text (Ctrl-A codes, @-codes, pipe codes, etc), see <tt>P_*</tt> in <tt>sbbsdefs.js</tt> for <i>mode</i> bits <tr valign=top><td><b>center</b><td>void<td><tt>console.center(string text) +<td>3.10 <td>display a string centered on the screen <tr valign=top><td><b>strlen</b><td>number<td><tt>console.strlen(string text) +<td>3.10 <td>returns the number of characters in text, excluding Ctrl-A codes <tr valign=top><td><b>printfile</b><td>void<td><tt>console.printfile(string text [,number mode]) +<td>3.10 <td>print a message text file with optional mode <tr valign=top><td><b>printtail</b><td>void<td><tt>console.printtail(string text, number lines [,number mode]) +<td>3.10 <td>print last x lines of file with optional mode <tr valign=top><td><b>editfile</b><td>void<td><tt>console.editfile(string filename) +<td>3.10 <td>edit/create a text file using the user's preferred message editor <tr valign=top><td><b>uselect</b><td>number<td><tt>console.uselect([number, string title, string item, string ars]) +<td>3.10 <td>user selection menu, call for each item, then with no args to display select menu <tr valign=top><td><b>saveline</b><td>void<td><tt>console.saveline() +<td>3.10 <td>save last output line <tr valign=top><td><b>restoreline</b><td>void<td><tt>console.restoreline() +<td>3.10 <td>restore last output line <tr valign=top><td><b>ansi</b><td>string<td><tt>console.ansi(number attribute) +<td>3.10 <td>returns ANSI encoding of specified attribute <tr valign=top><td><b>pushxy</b><td>void<td><tt>console.pushxy() +<td>3.11 <td>save current cursor position (AKA ansi_save) <tr valign=top><td><b>popxy</b><td>void<td><tt>console.popxy() +<td>3.11 <td>restore saved cursor position (AKA ansi_restore) <tr valign=top><td><b>gotoxy</b><td>void<td><tt>console.gotoxy(number x,y) +<td>3.11 <td>Move cursor to a specific screen coordinate (ANSI), arguments can be separate x and y cooridinates or an object with x and y properites (like that returned from <tt>console.getxy()</tt>) <tr valign=top><td><b>up</b><td>void<td><tt>console.up([number rows]) +<td>3.11 <td>Move cursor up one or more rows (ANSI) <tr valign=top><td><b>down</b><td>void<td><tt>console.down([number rows]) +<td>3.11 <td>Move cursor down one or more rows (ANSI) <tr valign=top><td><b>right</b><td>void<td><tt>console.right([number columns]) +<td>3.11 <td>Move cursor right one or more columns (ANSI) <tr valign=top><td><b>left</b><td>void<td><tt>console.left([number columns]) +<td>3.11 <td>Move cursor left one or more columns (ANSI) <tr valign=top><td><b>getlines</b><td>void<td><tt>console.getlines() +<td>3.11 <td>Auto-detect the number of rows/lines on the user's terminal (ANSI) <tr valign=top><td><b>getxy</b><td>object<td><tt>console.getxy() +<td>3.11 <td>Returns the current cursor position as an object (with x and y properties) <tr valign=top><td><b>lock_input</b><td>void<td><tt>console.lock_input([boolean lock]) +<td>3.10 <td>Lock the user input thread (allowing direct client socket access) <tr valign=top><td><b>telnet_cmd</b><td>void<td><tt>console.telnet_cmd(number cmd [,number option]) +<td>3.10 <td>Send telnet command (with optional command option) to remote client <tr valign=top><td><b>handle_ctrlkey</b><td>boolean<td><tt>console.handle_ctrlkey(string key [,number mode]) +<td>3.11 <td>Call internal control key handler for specified control key, returns true if handled </table> <br> @@ -1448,48 +1997,68 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>status</b><td>number -<td>status bitfield (see <tt>CON_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions)</td> +<td>3.10 +<td>status bitfield (see <tt>CON_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions) <tr valign=top><td><b>line_counter</b><td>number -<td>current line counter (used for automatic screen pause)</td> +<td>3.10 +<td>current line counter (used for automatic screen pause) <tr valign=top><td><b>attributes</b><td>number -<td>current display attributes (set with number or string value)</td> +<td>3.10 +<td>current display attributes (set with number or string value) <tr valign=top><td><b>top_of_screen</b><td>number -<td>set to 1 if the terminal cursor is already at the top of the screen</td> +<td>3.10 +<td>set to 1 if the terminal cursor is already at the top of the screen <tr valign=top><td><b>screen_rows</b><td>number -<td>number of terminal screen rows (in lines)</td> +<td>3.10 +<td>number of terminal screen rows (in lines) <tr valign=top><td><b>screen_columns</b><td>number -<td>number of terminal screen columns (in character cells)</td> +<td>3.11 +<td>number of terminal screen columns (in character cells) <tr valign=top><td><b>autoterm</b><td>number -<td>bitfield of automatically detected terminal settings (see <tt>USER_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions)</td> +<td>3.10 +<td>bitfield of automatically detected terminal settings (see <tt>USER_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions) <tr valign=top><td><b>terminal</b><td>string -<td>terminal type description (e.g. 'ANSI')</td> +<td>3.11 +<td>terminal type description (e.g. 'ANSI') <tr valign=top><td><b>timeout</b><td>number -<td>user inactivity timeout reference</td> +<td>3.10 +<td>user inactivity timeout reference <tr valign=top><td><b>timeleft_warning</b><td>number -<td>low timeleft warning flag</td> +<td>3.10 +<td>low timeleft warning flag <tr valign=top><td><b>aborted</b><td>number -<td>input/output has been aborted</td> +<td>3.10 +<td>input/output has been aborted <tr valign=top><td><b>abortable</b><td>number -<td>output can be aborted with Ctrl-C</td> +<td>3.10 +<td>output can be aborted with Ctrl-C <tr valign=top><td><b>telnet_mode</b><td>number -<td>current telnet mode bitfield (see <tt>TELNET_MODE_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions)</td> +<td>3.10 +<td>current telnet mode bitfield (see <tt>TELNET_MODE_*</tt> in <tt>sbbsdefs.js</tt> for bit definitions) <tr valign=top><td><b>wordwrap</b><td>string -<td>word-wrap buffer (used by getstr) - <small>READ ONLY</small></td> +<td>3.10 +<td>word-wrap buffer (used by getstr) - <small>READ ONLY</small> <tr valign=top><td><b>question</b><td>string -<td>current yes/no question (set by yesno and noyes)</td> +<td>3.10 +<td>current yes/no question (set by yesno and noyes) <tr valign=top><td><b>getstr_offset</b><td>number -<td>cursor position offset for use with <tt>getstr(K_USEOFFSET)</tt></td> +<td>3.11 +<td>cursor position offset for use with <tt>getstr(K_USEOFFSET)</tt> <tr valign=top><td><b>ctrlkey_passthru</b><td>number -<td>control key pass-through bitmask, set bits represent control key combinations <i>not</i> handled by <tt>inkey()</tt> method</td> +<td>3.10 +<td>control key pass-through bitmask, set bits represent control key combinations <i>not</i> handled by <tt>inkey()</tt> method </table> <h2><a name=msg_area>msg_area object</a> <br><font size=-1>Message Areas</font> </h2> <h2><a name=msg_area.sub>msg_area.sub object</a> <br><font size=-1>Associative array of all sub-boards (use internal code as index)</font> +<font size=-1> - introduced in v3.11</font> </h2> <h2><a name=msg_area.grp_list>msg_area.grp_list array</a> <br><font size=-1>Message Groups</font> @@ -1506,13 +2075,13 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <th align=left> <font color="white">Description</font> <tr valign=top><td><b>number</b><td>number -<td>group number</td> +<td>group number <tr valign=top><td><b>name</b><td>string -<td>group name</td> +<td>group name <tr valign=top><td><b>description</b><td>string -<td>group description</td> +<td>group description <tr valign=top><td><b>ars</b><td>string -<td>group access requirements</td> +<td>group access requirements </table> <h2><a name=msg_area.grp_list.sub_list>msg_area.grp_list.sub_list array</a> <br><font size=-1>Message Sub-boards</h2>(all properties are <small>READ ONLY</small> except for <i>scan_ptr</i>, <i>scan_cfg</i>, and <i>last_read</i>)</font> @@ -1529,67 +2098,68 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <th align=left> <font color="white">Description</font> <tr valign=top><td><b>number</b><td>number -<td>sub-board number</td> +<td>sub-board number <tr valign=top><td><b>grp_number</b><td>number -<td>group number</td> +<td>group number <tr valign=top><td><b>code</b><td>string -<td>sub-board internal code</td> +<td>sub-board internal code <tr valign=top><td><b>name</b><td>string -<td>sub-board name</td> +<td>sub-board name <tr valign=top><td><b>description</b><td>string -<td>sub-board description</td> +<td>sub-board description <tr valign=top><td><b>qwk_name</b><td>string -<td>sub-board QWK name</td> +<td>sub-board QWK name <tr valign=top><td><b>newsgroup</b><td>string -<td>newsgroup name (as configured or dymamically generated)</td> +<td>newsgroup name (as configured or dymamically generated) <tr valign=top><td><b>ars</b><td>string -<td>sub-board access requirements</td> +<td>sub-board access requirements <tr valign=top><td><b>read_ars</b><td>string -<td>sub-board reading requirements</td> +<td>sub-board reading requirements <tr valign=top><td><b>post_ars</b><td>string -<td>sub-board posting requirements</td> +<td>sub-board posting requirements <tr valign=top><td><b>operator_ars</b><td>string -<td>sub-board operator requirements</td> +<td>sub-board operator requirements <tr valign=top><td><b>moderated_ars</b><td>string -<td>sub-board moderated-user requirements (if non-blank)</td> +<td>sub-board moderated-user requirements (if non-blank) <tr valign=top><td><b>data_dir</b><td>string -<td>sub-board data storage location</td> +<td>sub-board data storage location <tr valign=top><td><b>fidonet_origin</b><td>string -<td>FidoNet origin line</td> +<td>FidoNet origin line <tr valign=top><td><b>qwknet_tagline</b><td>string -<td>QWK Network tagline</td> +<td>QWK Network tagline <tr valign=top><td><b>settings</b><td>number -<td>toggle options (bitfield)</td> +<td>toggle options (bitfield) <tr valign=top><td><b>ptridx</b><td>number -<td>index into message scan configuration/pointer file</td> +<td>index into message scan configuration/pointer file <tr valign=top><td><b>qwk_conf</b><td>number -<td>QWK conference number</td> +<td>QWK conference number <tr valign=top><td><b>max_crcs</b><td>number -<td>configured maximum number of message CRCs to store (for dupe checking)</td> +<td>configured maximum number of message CRCs to store (for dupe checking) <tr valign=top><td><b>max_msgs</b><td>number -<td>configured maximum number of messages before purging</td> +<td>configured maximum number of messages before purging <tr valign=top><td><b>max_age</b><td>number -<td>configured maximum age (in days) of messages before expiration</td> +<td>configured maximum age (in days) of messages before expiration <tr valign=top><td><b>can_read</b><td>boolean -<td>user has sufficient access to read messages</td> +<td>user has sufficient access to read messages <tr valign=top><td><b>can_post</b><td>boolean -<td>user has sufficient access to post messages</td> +<td>user has sufficient access to post messages <tr valign=top><td><b>is_operator</b><td>boolean -<td>user has operator access to this message area</td> +<td>user has operator access to this message area <tr valign=top><td><b>is_moderated</b><td>boolean -<td>user's posts are moderated</td> +<td>user's posts are moderated <tr valign=top><td><b>scan_ptr</b><td>number -<td>user's current new message scan pointer (highest-read message number)</td> +<td>user's current new message scan pointer (highest-read message number) <tr valign=top><td><b>scan_cfg</b><td>number -<td>user's message scan configuration (bitfield) see <tt>SUB_SCAN_*</tt> in <tt>sbbsdefs.js</tt> for valid bits</td> +<td>user's message scan configuration (bitfield) see <tt>SUB_SCAN_*</tt> in <tt>sbbsdefs.js</tt> for valid bits <tr valign=top><td><b>lead_read</b><td>number -<td>user's last-read message number</td> +<td>user's last-read message number </table> <h2><a name=file_area>file_area object</a> <br><font size=-1>File Transfer Areas</font> </h2> <h2><a name=file_area.dir>file_area.dir object</a> <br><font size=-1>Associative array of all directories (use internal code as index)</font> +<font size=-1> - introduced in v3.11</font> </h2> <table border=1 width=100%> <caption align=left><b><tt>file_area</tt> @@ -1620,15 +2190,15 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <th align=left> <font color="white">Description</font> <tr valign=top><td><b>number</b><td>number -<td>library number</td> +<td>library number <tr valign=top><td><b>name</b><td>string -<td>library name</td> +<td>library name <tr valign=top><td><b>description</b><td>string -<td>library description</td> +<td>library description <tr valign=top><td><b>ars</b><td>string -<td>library access requirements</td> +<td>library access requirements <tr valign=top><td><b>link</b><td>string -<td>library link (for HTML index)</td> +<td>library link (for HTML index) </table> <h2><a name=file_area.lib_list.dir_list>file_area.lib_list.dir_list array</a> <br><font size=-1>File Transfer Directories</font> @@ -1645,63 +2215,64 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <th align=left> <font color="white">Description</font> <tr valign=top><td><b>number</b><td>number -<td>directory number</td> +<td>directory number <tr valign=top><td><b>lib_number</b><td>number -<td>library number</td> +<td>library number <tr valign=top><td><b>code</b><td>string -<td>directory internal code</td> +<td>directory internal code <tr valign=top><td><b>name</b><td>string -<td>directory name</td> +<td>directory name <tr valign=top><td><b>description</b><td>string -<td>directory description</td> +<td>directory description <tr valign=top><td><b>path</b><td>string -<td>directory file storage location</td> +<td>directory file storage location <tr valign=top><td><b>ars</b><td>string -<td>directory access requirements</td> +<td>directory access requirements <tr valign=top><td><b>upload_ars</b><td>string -<td>directory upload requirements</td> +<td>directory upload requirements <tr valign=top><td><b>download_ars</b><td>string -<td>directory download requirements</td> +<td>directory download requirements <tr valign=top><td><b>exempt_ars</b><td>string -<td>directory exemption requirements</td> +<td>directory exemption requirements <tr valign=top><td><b>operator_ars</b><td>string -<td>directory operator requirements</td> +<td>directory operator requirements <tr valign=top><td><b>extensions</b><td>string -<td>allowed file extensions (comma delimited)</td> +<td>allowed file extensions (comma delimited) <tr valign=top><td><b>upload_sem</b><td>string -<td>upload semaphore file</td> +<td>upload semaphore file <tr valign=top><td><b>data_dir</b><td>string -<td>directory data storage location</td> +<td>directory data storage location <tr valign=top><td><b>settings</b><td>number -<td>toggle options (bitfield)</td> +<td>toggle options (bitfield) <tr valign=top><td><b>seqdev</b><td>number -<td>sequential (slow storage) device number</td> +<td>sequential (slow storage) device number <tr valign=top><td><b>sort</b><td>number -<td>sort order (see <tt>SORT_*</tt> in <tt>sbbsdefs.js</tt> for valid values)</td> +<td>sort order (see <tt>SORT_*</tt> in <tt>sbbsdefs.js</tt> for valid values) <tr valign=top><td><b>max_files</b><td>number -<td>configured maximum number of files</td> +<td>configured maximum number of files <tr valign=top><td><b>max_age</b><td>number -<td>configured maximum age (in days) of files before expiration</td> +<td>configured maximum age (in days) of files before expiration <tr valign=top><td><b>upload_credit_pct</b><td>number -<td>percent of file size awarded uploader in credits upon file upload</td> +<td>percent of file size awarded uploader in credits upon file upload <tr valign=top><td><b>download_credit_pct</b><td>number -<td>percent of file size awarded uploader in credits upon subsequent downloads</td> +<td>percent of file size awarded uploader in credits upon subsequent downloads <tr valign=top><td><b>link</b><td>string -<td>directory link (for HTML index)</td> +<td>directory link (for HTML index) <tr valign=top><td><b>can_upload</b><td>boolean -<td>user has sufficient access to upload files</td> +<td>user has sufficient access to upload files <tr valign=top><td><b>can_download</b><td>boolean -<td>user has sufficient access to download files</td> +<td>user has sufficient access to download files <tr valign=top><td><b>is_exempt</b><td>boolean -<td>user is exempt from download credit costs</td> +<td>user is exempt from download credit costs <tr valign=top><td><b>is_operator</b><td>boolean -<td>user has operator access to this directory</td> +<td>user has operator access to this directory </table> <h2><a name=xtrn_area>xtrn_area object</a> <br><font size=-1>External Program Areas</font> </h2> <h2><a name=xtrn_area.prog>xtrn_area.prog object</a> <br><font size=-1>Associative array of all external programs (use internal code as index)</font> +<font size=-1> - introduced in v3.11</font> </h2> <h2><a name=xtrn_area.sec_list>xtrn_area.sec_list array</a> <br><font size=-1>Online Program (door) Sections</font> @@ -1718,13 +2289,13 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <th align=left> <font color="white">Description</font> <tr valign=top><td><b>number</b><td>number -<td>external program section number</td> +<td>external program section number <tr valign=top><td><b>code</b><td>string -<td>external program section internal code</td> +<td>external program section internal code <tr valign=top><td><b>name</b><td>string -<td>external program section name</td> +<td>external program section name <tr valign=top><td><b>ars</b><td>string -<td>external program section access requirements</td> +<td>external program section access requirements </table> <h2><a name=xtrn_area.sec_list.prog_list>xtrn_area.sec_list.prog_list array</a> <br><font size=-1>Online External Programs (doors)</font> @@ -1741,40 +2312,41 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <th align=left> <font color="white">Description</font> <tr valign=top><td><b>code</b><td>string -<td>internal code</td> +<td>internal code <tr valign=top><td><b>name</b><td>string -<td>name</td> +<td>name <tr valign=top><td><b>cmd</b><td>string -<td>command-line</td> +<td>command-line <tr valign=top><td><b>clean_cmd</b><td>string -<td>clean-up command-line</td> +<td>clean-up command-line <tr valign=top><td><b>startup_dir</b><td>string -<td>startup directory</td> +<td>startup directory <tr valign=top><td><b>ars</b><td>string -<td>access requirements</td> +<td>access requirements <tr valign=top><td><b>execution_ars</b><td>string -<td>execution requirements</td> +<td>execution requirements <tr valign=top><td><b>settings</b><td>number -<td>toggle options (bitfield)</td> +<td>toggle options (bitfield) <tr valign=top><td><b>type</b><td>number -<td>drop file type</td> +<td>drop file type <tr valign=top><td><b>event</b><td>number -<td>event type (0=none)</td> +<td>event type (0=none) <tr valign=top><td><b>textra</b><td>number -<td>extra time given to users running this program</td> +<td>extra time given to users running this program <tr valign=top><td><b>max_time</b><td>number -<td>maximum time allowed in program</td> +<td>maximum time allowed in program <tr valign=top><td><b>cost</b><td>number -<td>execution cost (credits to run this program)</td> +<td>execution cost (credits to run this program) <tr valign=top><td><b>number</b><td>number -<td>program number</td> +<td>program number <tr valign=top><td><b>sec_number</b><td>number -<td>program section number</td> +<td>program section number <tr valign=top><td><b>can_run</b><td>boolean -<td>user has sufficient access to run this program</td> +<td>user has sufficient access to run this program </table> <h2><a name=xtrn_area.event>xtrn_area.event object</a> <br><font size=-1>Associative array of all timed events (use internal code as index)</font> +<font size=-1> - introduced in v3.11</font> </h2> <table border=1 width=100%> <caption align=left><b><tt>xtrn_area.event</tt> @@ -1788,26 +2360,27 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <th align=left> <font color="white">Description</font> <tr valign=top><td><b>cmd</b><td>string -<td>command-line</td> +<td>command-line <tr valign=top><td><b>startup_dir</b><td>string -<td>startup directory</td> +<td>startup directory <tr valign=top><td><b>node_num</b><td>number -<td>node number</td> +<td>node number <tr valign=top><td><b>time</b><td>number -<td>time to execute</td> +<td>time to execute <tr valign=top><td><b>freq</b><td>number -<td>frequency to execute</td> +<td>frequency to execute <tr valign=top><td><b>days</b><td>number -<td>days of week to execute (bitfield)</td> +<td>days of week to execute (bitfield) <tr valign=top><td><b>mdays</b><td>number -<td>days of month to execute (bitfield)</td> +<td>days of month to execute (bitfield) <tr valign=top><td><b>last_run</b><td>number -<td>date/time last run (in time_t format)</td> +<td>date/time last run (in time_t format) <tr valign=top><td><b>settings</b><td>number -<td>toggle options (bitfield)</td> +<td>toggle options (bitfield) </table> <h2><a name=xtrn_area.editor>xtrn_area.editor object</a> <br><font size=-1>Associative array of all external editors (use internal code as index)</font> +<font size=-1> - introduced in v3.11</font> </h2> <table border=1 width=100%> <caption align=left><b><tt>xtrn_area.editor</tt> @@ -1821,15 +2394,15 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <th align=left> <font color="white">Description</font> <tr valign=top><td><b>name</b><td>string -<td>name</td> +<td>name <tr valign=top><td><b>cmd</b><td>string -<td>command-line</td> +<td>command-line <tr valign=top><td><b>ars</b><td>string -<td>access requirements</td> +<td>access requirements <tr valign=top><td><b>settings</b><td>number -<td>toggle options (bitfield)</td> +<td>toggle options (bitfield) <tr valign=top><td><b>type</b><td>number -<td>drop file type</td> +<td>drop file type </table> <h2><a name=MsgBase>MsgBase class</a> <br><font size=-1>Class used for accessing message bases</font> @@ -1846,25 +2419,36 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Returns</font> <th align=left width=200> <font color="white">Usage</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>open</b><td>boolean<td><tt>MsgBase.open() +<td>3.10 <td>open message base <tr valign=top><td><b>close</b><td>boolean<td><tt>MsgBase.close() +<td>3.10 <td>close message base (if open) <tr valign=top><td><b>get_msg_header</b><td>object<td><tt>MsgBase.get_msg_header([boolean by_offset,] number_or_id) +<td>3.10 <td>returns a specific message header, <i>null</i> on failure <tr valign=top><td><b>put_msg_header</b><td>boolean<td><tt>MsgBase.put_msg_header([boolean by_offset,] number, object header) +<td>3.10 <td>write a message header <tr valign=top><td><b>get_msg_body</b><td>string<td><tt>MsgBase.get_msg_body([boolean by_offset,] number_or_id [,boolean strip_ctrl_a]) +<td>3.10 <td>returns the body text of a specific message, <i>null</i> on failure <tr valign=top><td><b>get_msg_tail</b><td>string<td><tt>MsgBase.get_msg_tail([boolean by_offset,] number_or_id [,boolean strip_ctrl_a]) +<td>3.10 <td>returns the tail text of a specific message, <i>null</i> on failure <tr valign=top><td><b>get_msg_index</b><td>object<td><tt>MsgBase.get_msg_index([boolean by_offset,] number) +<td>3.11 <td>returns a specific message index, <i>null</i> on failure. The index object will contain the following properties:<br><table><tr><td><tt>subject</tt><td>CRC-16 of lowercase message subject<tr><td><tt>to</tt><td>CRC-16 of lowercase recipient's name (or user number if e-mail)<tr><td><tt>from</tt><td>CRC-16 of lowercase sender's name (or user number if e-mail)<tr><td><tt>attr</tt><td>Attribute bitfield<tr><td><tt>time</tt><td>Date/time (in time_t format)<tr><td><tt>number</tt><td>Message number<tr><td><tt>offset</tt><td>Byte-offset into header file</table> <tr valign=top><td><b>remove_msg</b><td>boolean<td><tt>MsgBase.remove_msg([boolean by_offset,] number_or_id) +<td>3.11 <td>mark message as deleted <tr valign=top><td><b>save_msg</b><td>boolean<td><tt>MsgBase.save_msg(object header, string body_text) +<td>3.10 <td>create a new message in message base, the <i>header</i> object may contain the following properties:<br><table><tr><td><tt>subject</tt><td>Message subject <i>(required)</i><tr><td><tt>to</tt><td>Recipient's name <i>(required)</i><tr><td><tt>to_ext</tt><td>Recipient's user number (for local e-mail)<tr><td><tt>to_org</tt><td>Recipient's organization<tr><td><tt>to_net_type</tt><td>Recipient's network type (default: 0 for local)<tr><td><tt>to_net_addr</tt><td>Recipient's network address<tr><td><tt>to_agent</tt><td>Recipient's agent type<tr><td><tt>from</tt><td>Sender's name <i>(required)</i><tr><td><tt>from_ext</tt><td>Sender's user number<tr><td><tt>from_org</tt><td>Sender's organization<tr><td><tt>from_net_type</tt><td>Sender's network type (default: 0 for local)<tr><td><tt>from_net_addr</tt><td>Sender's network address<tr><td><tt>replyto</tt><td>Replies should be sent to this name<tr><td><tt>replyto_ext</tt><td>Replies should be sent to this user number<tr><td><tt>replyto_org</tt><td>Replies should be sent to organization<tr><td><tt>replyto_net_type</tt><td>Replies should be sent to this network type<tr><td><tt>replyto_net_addr</tt><td>Replies should be sent to this network address<tr><td><tt>replyto_agent</tt><td>Replies should be sent to this agent type<tr><td><tt>id</tt><td>Message's RFC-822 compliant Message-ID<tr><td><tt>reply_id</tt><td>Message's RFC-822 compliant Reply-ID<tr><td><tt>reverse_path</tt><td>Message's SMTP sender address<tr><td><tt>path</tt><td>Messages's NNTP path<tr><td><tt>newsgroups</tt><td>Message's NNTP newsgroups header<tr><td><tt>ftn_msgid</tt><td>FidoNet FTS-9 Message-ID<tr><td><tt>ftn_reply</tt><td>FidoNet FTS-9 Reply-ID<tr><td><tt>ftn_area</tt><td>FidoNet FTS-4 echomail AREA tag<tr><td><tt>ftn_flags</tt><td>FidoNet FSC-53 FLAGS<tr><td><tt>ftn_pid</tt><td>FidoNet FSC-46 Program Identifier<tr><td><tt>ftn_tid</tt><td>FidoNet FSC-46 Tosser Identifier<tr><td><tt>date</tt><td>RFC-822 formatted date/time<tr><td><tt>attr</tt><td>Attribute bitfield<tr><td><tt>auxattr</tt><td>Auxillary attribute bitfield<tr><td><tt>netattr</tt><td>Network attribute bitfield<tr><td><tt>when_written_time</tt><td>Date/time (in time_t format)<tr><td><tt>when_written_zone</tt><td>Time zone<tr><td><tt>when_imported_time</tt><td>Date/time message was imported<tr><td><tt>when_imported_zone</tt><td>Time zone<tr><td><tt>thread_orig</tt><td>Replying to this message number<tr><td><tt>thread_next</tt><td>Number of next message in this thread<tr><td><tt>thread_first</tt><td>Number of first reply to this message<tr><td><tt>field_list[].type</tt><td>Other SMB header fields (type)<tr><td><tt>field_list[].data</tt><td>Other SMB header fields (data)</table> </table> <br> @@ -1877,34 +2461,49 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>error</b><td>string -<td>last occurred message base error - <small>READ ONLY</small></td> +<td>3.10 +<td>last occurred message base error - <small>READ ONLY</small> <tr valign=top><td><b>file</b><td>string -<td>base path and filename of message base - <small>READ ONLY</small></td> +<td>3.10 +<td>base path and filename of message base - <small>READ ONLY</small> <tr valign=top><td><b>retry_time</b><td>number -<td>message base open/lock retry timeout (in seconds)</td> +<td>3.10 +<td>message base open/lock retry timeout (in seconds) <tr valign=top><td><b>retry_delay</b><td>number -<td>delay between message base open/lock retries (in milliseconds)</td> +<td>3.11 +<td>delay between message base open/lock retries (in milliseconds) <tr valign=top><td><b>first_msg</b><td>number -<td>first message number - <small>READ ONLY</small></td> +<td>3.10 +<td>first message number - <small>READ ONLY</small> <tr valign=top><td><b>last_msg</b><td>number -<td>last message number - <small>READ ONLY</small></td> +<td>3.10 +<td>last message number - <small>READ ONLY</small> <tr valign=top><td><b>total_msgs</b><td>number -<td>total number of messages - <small>READ ONLY</small></td> +<td>3.10 +<td>total number of messages - <small>READ ONLY</small> <tr valign=top><td><b>max_crcs</b><td>number -<td>maximum number of message CRCs to store (for dupe checking) - <small>READ ONLY</small></td> +<td>3.10 +<td>maximum number of message CRCs to store (for dupe checking) - <small>READ ONLY</small> <tr valign=top><td><b>max_msgs</b><td>number -<td>maximum number of messages before expiration - <small>READ ONLY</small></td> +<td>3.10 +<td>maximum number of messages before expiration - <small>READ ONLY</small> <tr valign=top><td><b>max_age</b><td>number -<td>maximum age (in days) of messages to store - <small>READ ONLY</small></td> +<td>3.10 +<td>maximum age (in days) of messages to store - <small>READ ONLY</small> <tr valign=top><td><b>attributes</b><td>number -<td>message base attributes - <small>READ ONLY</small></td> +<td>3.10 +<td>message base attributes - <small>READ ONLY</small> <tr valign=top><td><b>subnum</b><td>number -<td>sub-board number (0-based, -1 for e-mail) - <small>READ ONLY</small></td> +<td>3.10 +<td>sub-board number (0-based, -1 for e-mail) - <small>READ ONLY</small> <tr valign=top><td><b>is_open</b><td>boolean -<td><i>true</i> if the message base has been opened successfully - <small>READ ONLY</small></td> +<td>3.10 +<td><i>true</i> if the message base has been opened successfully - <small>READ ONLY</small> </table> <h2><a name=MsgBase.cfg>MsgBase.cfg object</a> <br><font size=-1>Configuration parameters for this message area (<i>sub-boards only</i>) - <small>READ ONLY</small></font> @@ -1921,47 +2520,47 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <th align=left> <font color="white">Description</font> <tr valign=top><td><b>number</b><td>number -<td>sub-board number</td> +<td>sub-board number <tr valign=top><td><b>grp_number</b><td>number -<td>group number</td> +<td>group number <tr valign=top><td><b>code</b><td>string -<td>sub-board internal code</td> +<td>sub-board internal code <tr valign=top><td><b>name</b><td>string -<td>sub-board name</td> +<td>sub-board name <tr valign=top><td><b>description</b><td>string -<td>sub-board description</td> +<td>sub-board description <tr valign=top><td><b>qwk_name</b><td>string -<td>sub-board QWK name</td> +<td>sub-board QWK name <tr valign=top><td><b>newsgroup</b><td>string -<td>newsgroup name (as configured or dymamically generated)</td> +<td>newsgroup name (as configured or dymamically generated) <tr valign=top><td><b>ars</b><td>string -<td>sub-board access requirements</td> +<td>sub-board access requirements <tr valign=top><td><b>read_ars</b><td>string -<td>sub-board reading requirements</td> +<td>sub-board reading requirements <tr valign=top><td><b>post_ars</b><td>string -<td>sub-board posting requirements</td> +<td>sub-board posting requirements <tr valign=top><td><b>operator_ars</b><td>string -<td>sub-board operator requirements</td> +<td>sub-board operator requirements <tr valign=top><td><b>moderated_ars</b><td>string -<td>sub-board moderated-user requirements (if non-blank)</td> +<td>sub-board moderated-user requirements (if non-blank) <tr valign=top><td><b>data_dir</b><td>string -<td>sub-board data storage location</td> +<td>sub-board data storage location <tr valign=top><td><b>fidonet_origin</b><td>string -<td>FidoNet origin line</td> +<td>FidoNet origin line <tr valign=top><td><b>qwknet_tagline</b><td>string -<td>QWK Network tagline</td> +<td>QWK Network tagline <tr valign=top><td><b>settings</b><td>number -<td>toggle options (bitfield)</td> +<td>toggle options (bitfield) <tr valign=top><td><b>ptridx</b><td>number -<td>index into message scan configuration/pointer file</td> +<td>index into message scan configuration/pointer file <tr valign=top><td><b>qwk_conf</b><td>number -<td>QWK conference number</td> +<td>QWK conference number <tr valign=top><td><b>max_crcs</b><td>number -<td>configured maximum number of message CRCs to store (for dupe checking)</td> +<td>configured maximum number of message CRCs to store (for dupe checking) <tr valign=top><td><b>max_msgs</b><td>number -<td>configured maximum number of messages before purging</td> +<td>configured maximum number of messages before purging <tr valign=top><td><b>max_age</b><td>number -<td>configured maximum age (in days) of messages before expiration</td> +<td>configured maximum age (in days) of messages before expiration </table> <h2><a name=File>File class</a> <br><font size=-1>Class used for opening, creating, reading, or writing files on the local file system<p>Special features include:</h2><ol type=disc><li>Exclusive-access files (default) or shared files<ol type=circle><li>optional record-locking<li>buffered or non-buffered I/O</ol><li>Support for binary files<ol type=circle><li>native or network byte order (endian)<li>automatic Unix-to-Unix (<i>UUE</i>), yEncode (<i>yEnc</i>) or Base64 encoding/decoding</ol><li>Support for ASCII text files<ol type=circle><li>supports line-based I/O<ol type=square><li>entire file may be read or written as an array of strings<li>individual lines may be read or written one line at a time</ol><li>supports fixed-length records<ol type=square><li>optional end-of-text (<i>etx</i>) character for automatic record padding/termination<li>Synchronet <tt>.dat</tt> files use an <i>etx</i> value of 3 (Ctrl-C)</ol><li>supports <tt>.ini</tt> formated configuration files<li>optional ROT13 encoding/translation</ol><li>Dynamically-calculated industry standard checksums (e.g. CRC-16, CRC-32, MD5)</ol></font> @@ -1978,51 +2577,75 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Returns</font> <th align=left width=200> <font color="white">Usage</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>open</b><td>boolean<td><tt>File.open([string mode, boolean shareable, number buflen]) +<td>3.10 <td>open file, <i>shareable</i> defaults to <i>false</i>, <i>buflen</i> defaults to 2048 bytes, mode (default: <tt>w+</tt>) specifies the type of access requested for the file, as follows:<br><tt>r </tt> open for reading; if the file does not exist or cannot be found, the open call fails<br><tt>w </tt> open an empty file for writing; if the given file exists, its contents are destroyed<br><tt>a </tt> open for writing at the end of the file (appending); creates the file first if it doesnę° exist<br><tt>r+</tt> open for both reading and writing (the file must exist)<br><tt>w+</tt> open an empty file for both reading and writing; if the given file exists, its contents are destroyed<br><tt>a+</tt> open for reading and appending<br><tt>b </tt> open in binary (untranslated) mode; translations involving carriage-return and linefeed characters are suppressed (e.g. <tt>r+b</tt>)<br> <tr valign=top><td><b>close</b><td>void<td><tt>File.close() +<td>3.10 <td>close file <tr valign=top><td><b>remove</b><td>boolean<td><tt>File.remove() +<td>3.10 <td>remove the file from the disk <tr valign=top><td><b>clear_error</b><td>boolean<td><tt>File.clear_error() +<td>3.10 <td>clears the current error value (AKA clearError) <tr valign=top><td><b>flush</b><td>boolean<td><tt>File.flush() +<td>3.10 <td>flush/commit buffers to disk <tr valign=top><td><b>rewind</b><td>boolean<td><tt>File.rewind() +<td>3.11 <td>repositions the file pointer (<i>position</i>) to the beginning of a file and clears error and end-of-file indicators <tr valign=top><td><b>lock</b><td>boolean<td><tt>File.lock([offset, length]) +<td>3.10 <td>lock file record for exclusive access (file must be opened <i>shareable</i>) <tr valign=top><td><b>unlock</b><td>boolean<td><tt>File.unlock([offset, length]) +<td>3.10 <td>unlock file record for exclusive access <tr valign=top><td><b>read</b><td>string<td><tt>File.read([maxlen]) +<td>3.10 <td>read a string from file (optionally unix-to-unix or base64 decoding in the process), <i>maxlen</i> defaults to the current length of the file minus the current file position <tr valign=top><td><b>readln</b><td>string<td><tt>File.readln([maxlen]) +<td>3.10 <td>read a line-feed terminated string, <i>maxlen</i> defaults to 512 characters <tr valign=top><td><b>readBin</b><td>number<td><tt>File.readBin([bytes]) +<td>3.10 <td>read a binary integer from the file, default number of <i>bytes</i> is 4 (32-bits) <tr valign=top><td><b>readAll</b><td>array<td><tt>File.readAll() +<td>3.10 <td>read all lines into an array of strings <tr valign=top><td><b>write</b><td>boolean<td><tt>File.write(string text [,len]) +<td>3.10 <td>write a string to the file (optionally unix-to-unix or base64 decoding in the process) <tr valign=top><td><b>writeln</b><td>boolean<td><tt>File.writeln([string text]) +<td>3.10 <td>write a line-feed terminated string to the file <tr valign=top><td><b>writeBin</b><td>boolean<td><tt>File.writeBin(value [,bytes]) +<td>3.10 <td>write a binary integer to the file, default number of <i>bytes</i> is 4 (32-bits) <tr valign=top><td><b>writeAll</b><td>boolean<td><tt>File.writeAll(array lines) +<td>3.10 <td>write an array of strings to file <tr valign=top><td><b>printf</b><td>number<td><tt>File.printf(string format [,args]) +<td>3.10 <td>write a formatted string to the file (ala fprintf) - <small>CAUTION: for experienced C programmers ONLY</small> <tr valign=top><td><b>iniGetSections</b><td>array<td><tt>File.iniGetSections([prefix]) +<td>3.11 <td>parse all section names from a <tt>.ini</tt> file (format = '<tt>[section]</tt>') and return the section names as an <i>array of strings</i>, optionally, only those section names that begin with the specified <i>prefix</i> <tr valign=top><td><b>iniGetKeys</b><td>array<td><tt>File.iniGetKeys(section) +<td>3.11 <td>parse all key names from the specified <i>section</i> in a <tt>.ini</tt> file and return the key names as an <i>array of strings</i> <tr valign=top><td><b>iniGetValue</b><td>string<td><tt>File.iniGetValue(section, key [,default]) +<td>3.11 <td>parse a key from a <tt>.ini</tt> file and return its value (format = '<tt>key = value</tt>'). returns the specified <i>default</i> value if the key or value is missing or invalid. will return a <i>bool</i>, <i>number</i>, <i>string</i>, or an <i>array of strings</i> determined by the type of <i>default</i> value specified <tr valign=top><td><b>iniGetObject</b><td>object<td><tt>File.iniGetObject(section) +<td>3.11 <td>parse an entire section from a .ini file and return all of its keys and values as properties of an object <tr valign=top><td><b>iniGetAllObjects</b><td>array<td><tt>File.iniGetAllObjects([name_property] [,prefix]) +<td>3.11 <td>parse all sections from a .ini file and return all sections and keys an array of objects with each section's keys as properties of each section object, <i>name_property</i> is the name of the property to create to contain the section's name (default is <tt>"name"</tt>), the optional <i>prefix</i> has the same use as in the <tt>iniGetSections</tt> method, if a <i>prefix</i> is specified, it is removed from each section's name </table> <br> @@ -2035,54 +2658,79 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>name</b><td>string -<td>filename specified in constructor - <small>READ ONLY</small></td> +<td>3.10 +<td>filename specified in constructor - <small>READ ONLY</small> <tr valign=top><td><b>mode</b><td>string -<td>mode string specified in <i>open</i> call - <small>READ ONLY</small></td> +<td>3.10 +<td>mode string specified in <i>open</i> call - <small>READ ONLY</small> <tr valign=top><td><b>exists</b><td>boolean -<td><i>true</i> if the file exists - <small>READ ONLY</small></td> +<td>3.10 +<td><i>true</i> if the file exists - <small>READ ONLY</small> <tr valign=top><td><b>is_open</b><td>boolean -<td><i>true</i> if the file has been opened successfully - <small>READ ONLY</small></td> +<td>3.10 +<td><i>true</i> if the file has been opened successfully - <small>READ ONLY</small> <tr valign=top><td><b>eof</b><td>boolean -<td><i>true</i> if the current file position is at the <i>end of file</i> - <small>READ ONLY</small></td> +<td>3.10 +<td><i>true</i> if the current file position is at the <i>end of file</i> - <small>READ ONLY</small> <tr valign=top><td><b>error</b><td>number -<td>the last occurred error value (use clear_error to clear) - <small>READ ONLY</small></td> +<td>3.10 +<td>the last occurred error value (use clear_error to clear) - <small>READ ONLY</small> <tr valign=top><td><b>descriptor</b><td>number -<td>the open file descriptor (advanced use only) - <small>READ ONLY</small></td> +<td>3.10 +<td>the open file descriptor (advanced use only) - <small>READ ONLY</small> <tr valign=top><td><b>etx</b><td>number -<td>end-of-text character (advanced use only), if non-zero used by <i>read</i>, <i>readln</i>, and <i>write</i></td> +<td>3.10 +<td>end-of-text character (advanced use only), if non-zero used by <i>read</i>, <i>readln</i>, and <i>write</i> <tr valign=top><td><b>debug</b><td>boolean -<td>set to <i>true</i> to enable debug log output</td> +<td>3.10 +<td>set to <i>true</i> to enable debug log output <tr valign=top><td><b>position</b><td>number -<td>the current file position (offset in bytes), change value to seek within file</td> +<td>3.10 +<td>the current file position (offset in bytes), change value to seek within file <tr valign=top><td><b>date</b><td>number -<td>last modified date/time (in time_t format)</td> +<td>3.11 +<td>last modified date/time (in time_t format) <tr valign=top><td><b>length</b><td>number -<td>the current length of the file (in bytes)</td> +<td>3.10 +<td>the current length of the file (in bytes) <tr valign=top><td><b>attributes</b><td>number -<td>file mode/attributes</td> +<td>3.10 +<td>file mode/attributes <tr valign=top><td><b>network_byte_order</b><td>boolean -<td>set to <i>true</i> if binary data is to be written and read in Network Byte Order (big end first)</td> +<td>3.11 +<td>set to <i>true</i> if binary data is to be written and read in Network Byte Order (big end first) <tr valign=top><td><b>rot13</b><td>boolean -<td>set to <i>true</i> to enable automatic ROT13 translatation of text</td> +<td>3.11 +<td>set to <i>true</i> to enable automatic ROT13 translatation of text <tr valign=top><td><b>uue</b><td>boolean -<td>set to <i>true</i> to enable automatic Unix-to-Unix encode and decode on <tt>read</tt> and <tt>write</tt> calls</td> +<td>3.11 +<td>set to <i>true</i> to enable automatic Unix-to-Unix encode and decode on <tt>read</tt> and <tt>write</tt> calls <tr valign=top><td><b>yenc</b><td>boolean -<td>set to <i>true</i> to enable automatic yEnc encode and decode on <tt>read</tt> and <tt>write</tt> calls</td> +<td>3.11 +<td>set to <i>true</i> to enable automatic yEnc encode and decode on <tt>read</tt> and <tt>write</tt> calls <tr valign=top><td><b>base64</b><td>boolean -<td>set to <i>true</i> to enable automatic Base64 encode and decode on <tt>read</tt> and <tt>write</tt> calls</td> +<td>3.11 +<td>set to <i>true</i> to enable automatic Base64 encode and decode on <tt>read</tt> and <tt>write</tt> calls <tr valign=top><td><b>crc16</b><td>number -<td>calculated 16-bit CRC of file contents - <small>READ ONLY</small></td> +<td>3.11 +<td>calculated 16-bit CRC of file contents - <small>READ ONLY</small> <tr valign=top><td><b>crc32</b><td>number -<td>calculated 32-bit CRC of file contents - <small>READ ONLY</small></td> +<td>3.11 +<td>calculated 32-bit CRC of file contents - <small>READ ONLY</small> <tr valign=top><td><b>chksum</b><td>number -<td>calculated 32-bit checksum of file contents - <small>READ ONLY</small></td> +<td>3.11 +<td>calculated 32-bit checksum of file contents - <small>READ ONLY</small> <tr valign=top><td><b>md5_hex</b><td>undefined -<td>calculated 128-bit MD5 digest of file contents as hexadecimal string - <small>READ ONLY</small></td> +<td>3.11 +<td>calculated 128-bit MD5 digest of file contents as hexadecimal string - <small>READ ONLY</small> <tr valign=top><td><b>md5_base64</b><td>undefined -<td>calculated 128-bit MD5 digest of file contents as base64-encoded string - <small>READ ONLY</small></td> +<td>3.11 +<td>calculated 128-bit MD5 digest of file contents as base64-encoded string - <small>READ ONLY</small> </table> <h2><a name=Socket>Socket class</a> <br><font size=-1>Class used for TCP/IP socket communications</font> @@ -2099,43 +2747,63 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Returns</font> <th align=left width=200> <font color="white">Usage</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> <tr valign=top><td><b>close</b><td>void<td><tt>Socket.close() +<td>3.10 <td>close (shutdown) the socket immediately -<tr valign=top><td><b>bind</b><td>boolean<td><tt>Socket.bind([port]) -<td>bind socket to a port (number or service name) +<tr valign=top><td><b>bind</b><td>boolean<td><tt>Socket.bind([port] [,ip_address]) +<td>3.11 +<td>bind socket to a TCP or UDP <i>port</i> (number or service name), optionally specifying a network interface (via <i>ip_address</i>) <tr valign=top><td><b>connect</b><td>boolean<td><tt>Socket.connect(host, port [,timeout]) -<td>connect to a remote port (number or service name) on the specified host (IP address or host name), default <i>timeout</i> value is <i>10</i> (seconds) +<td>3.11 +<td>connect to a remote port (number or service name) on the specified host (IP address or host name), default <i>timeout</i> value is <i>10.0</i> (seconds) <tr valign=top><td><b>listen</b><td>boolean<td><tt>Socket.listen() +<td>3.10 <td>place socket in a state to listen for incoming connections (use before an accept) <tr valign=top><td><b>accept</b><td>object<td><tt>Socket.accept() +<td>3.10 <td>accept an incoming connection, returns a new <i>Socket</i> object representing the new connection <tr valign=top><td><b>send</b><td>boolean<td><tt>Socket.send(data) +<td>3.10 <td>send a string (AKA write) <tr valign=top><td><b>sendto</b><td>boolean<td><tt>Socket.sendto(data, address, port) +<td>3.10 <td>send data to a specific host (IP address or host name) and port (number or service name), for UDP sockets <tr valign=top><td><b>sendfile</b><td>boolean<td><tt>Socket.sendfile(filename) +<td>3.10 <td>send an entire file over the socket <tr valign=top><td><b>sendBin</b><td>boolean<td><tt>Socket.sendBin(number value [,number bytes]) +<td>3.11 <td>send a binary integer over the socket, default number of bytes is 4 (32-bits) <tr valign=top><td><b>recv</b><td>string<td><tt>Socket.recv([maxlen]) +<td>3.10 <td>receive a string, default maxlen is 512 characters (AKA read) <tr valign=top><td><b>peek</b><td>string<td><tt>Socket.peek([maxlen]) +<td>3.10 <td>receive a string, default maxlen is 512 characters, leaves string in receive buffer <tr valign=top><td><b>recvline</b><td>string<td><tt>Socket.recvline([maxlen] [,timeout]) +<td>3.10 <td>receive a line-feed terminated string, default maxlen is 512 characters, default timeout is 30 seconds (AKA readline and readln) <tr valign=top><td><b>recvfrom</b><td>object<td><tt>Socket.recvfrom([bool binary] [,maxlen or int_size]) +<td>3.11 <td>receive data (string or integer) from a socket (typically UDP)<p>returns object with <i>ip_address</i> and <i>port</i> of sender along with <i>data</i><p><i>binary</i> defaults to <i>false</i>, <i>maxlen</i> defaults to 512 chars, <i>int_size</i> defaults to 4 bytes (32-bits) <tr valign=top><td><b>recvBin</b><td>number<td><tt>Socket.recvBin([number bytes]) +<td>3.11 <td>receive a binary integer from the socket, default number of bytes is 4 (32-bits) <tr valign=top><td><b>getoption</b><td>number<td><tt>Socket.getoption(option) +<td>3.10 <td>get socket option value, option may be socket option name (see <tt>sockopts</tt> in <tt>sockdefs.js</tt>) or number <tr valign=top><td><b>setoption</b><td>boolean<td><tt>Socket.setoption(option, value) +<td>3.10 <td>set socket option value, option may be socket option name (see <tt>sockopts</tt> in <tt>sockdefs.js</tt>) or number <tr valign=top><td><b>ioctl</b><td>number<td><tt>Socket.ioctl(command [,argument]) +<td>3.10 <td>send socket IOCTL (advanced) <tr valign=top><td><b>poll</b><td>number<td><tt>Socket.poll([number timeout] [,bool write]) +<td>3.10 <td>poll socket for read or write ability (default is <i>read</i>), default timeout value is 0.0 seconds (immediate timeout) </table> <br> @@ -2148,36 +2816,52 @@ Generated for <b>Synchronet v3.11a alpha Debug</b>, compiled Sep 26 2003 15:56 <font color="white">Name</font> <th align=left width=100> <font color="white">Type</font> +<th align=left width=50> +<font color="white">Ver</font> <th align=left> <font color="white">Description</font> -<tr valign=top><td><b>descriptor</b><td>number -<td>error status for the last socket operation that failed - <small>READ ONLY</small></td> <tr valign=top><td><b>error</b><td>number -<td><i>true</i> if socket is in a connected state - <small>READ ONLY</small></td> +<td>3.11 +<td>error status for the last socket operation that failed - <small>READ ONLY</small> <tr valign=top><td><b>is_connected</b><td>boolean -<td><i>true</i> if socket can accept written data - <small>READ ONLY</small></td> +<td>3.10 +<td><i>true</i> if socket is in a connected state - <small>READ ONLY</small> <tr valign=top><td><b>is_writeable</b><td>boolean -<td><i>true</i> if data is waiting to be read from socket - <small>READ ONLY</small></td> +<td>3.11 +<td><i>true</i> if socket can accept written data - <small>READ ONLY</small> <tr valign=top><td><b>data_waiting</b><td>boolean -<td>number of bytes waiting to be read - <small>READ ONLY</small></td> +<td>3.10 +<td><i>true</i> if data is waiting to be read from socket - <small>READ ONLY</small> <tr valign=top><td><b>nread</b><td>number -<td>enable debug logging</td> +<td>3.10 +<td>number of bytes waiting to be read - <small>READ ONLY</small> <tr valign=top><td><b>debug</b><td>number -<td>socket descriptor (advanced uses only)</td> +<td>3.10 +<td>enable debug logging +<tr valign=top><td><b>descriptor</b><td>number +<td>3.10 +<td>socket descriptor (advanced uses only) <tr valign=top><td><b>nonblocking</b><td>boolean -<td>use non-blocking operation (default is <i>false</i>)</td> +<td>3.10 +<td>use non-blocking operation (default is <i>false</i>) <tr valign=top><td><b>local_ip_address</b><td>string -<td>local IP address (string in dotted-decimal format)</td> +<td>3.10 +<td>local IP address (string in dotted-decimal format) <tr valign=top><td><b>local_port</b><td>number -<td>local TCP or UDP port number</td> +<td>3.10 +<td>local TCP or UDP port number <tr valign=top><td><b>remote_ip_address</b><td>string -<td>remote IP address (string in dotted-decimal format)</td> +<td>3.10 +<td>remote IP address (string in dotted-decimal format) <tr valign=top><td><b>remote_port</b><td>number -<td>remote TCP or UDP port number</td> +<td>3.10 +<td>remote TCP or UDP port number <tr valign=top><td><b>type</b><td>number -<td>socket type, <tt>SOCK_STREAM</tt> (TCP) or <tt>SOCK_DGRAM</tt> (UDP)</td> +<td>3.10 +<td>socket type, <tt>SOCK_STREAM</tt> (TCP) or <tt>SOCK_DGRAM</tt> (UDP) <tr valign=top><td><b>network_byte_order</b><td>boolean -<td><i>true</i> if binary data is to be sent in Network Byte Order (big end first), default is <i>true</i></td> +<td>3.11 +<td><i>true</i> if binary data is to be sent in Network Byte Order (big end first), default is <i>true</i> </table> <p><small> -Totals: 445 properties, 247 methods +Totals: 452 properties, 252 methods