diff --git a/docs/v319_new.txt b/docs/v319_new.txt new file mode 100644 index 0000000000000000000000000000000000000000..5c446d7a6f3730cf9802e10347fe197b5e4f8c08 --- /dev/null +++ b/docs/v319_new.txt @@ -0,0 +1,249 @@ +*************************************************** +* What's New in Synchronet Version 3.19 for Win32 * +* (ChangeLog since v3.18b for Win32 Sep 20, 2020) * +*************************************************** + +Terminal Server +~~~~~~~~~~~~~~~ +o Allow FOSSIL mode of the Win32 virtual UART/FOSSIL driver to be disabled +o Allow "FOSSIL Only" as a configuration option for external programs in SCFG +o Add support for NTVDMx64 (16-bit DOS doors on x64 editions of Windows) +o Don't force password-changes for users with blank passwords (e.g. Guest +o Allow node directory to be configured in adv. node options +o Support for manual terminal width setting and terminals w/ > 99 rows +o String command (e.g. ';find') to find message and file areas by word +o Access Requirement Strings (ARS) +- SYSOP ARS keyword now applies to target user, not necessarily the user online +o New @-codes: +- !x to perform Ctrl-A style terminal/attribute control +- TEXT:<num> to display text.dat string #num +- NETMAIL: user's personal netmail or email address - for WitNik +- FWD: "On" if the user has opted for forwarding their mail to netmail or "Off" +- TMP: user's chosen temporay file type (e.g. "ZIP") +- NOTE: user's note (same as MEMO1) +- UDR (upload/download byte-ratio) +- UDFR (file ratio) +- LASTIP: user's most recent IP address at time of logoff +- BDATEFMT +- BIRTH: for full-format (MM/DD/YYYY or DD/MM/YYYY) user birthdate +- SYSAVAILYN - same as SYSAVAIL but expands to Yes or No instead +- SHOW:<ars> to only show text to users meeting ARS +- MSG_THREAD_ID +- MSG_THREAD_BACK +- MSG_THREAD_NEXT +- MSG_THREAD_FIRST +- FREESPACEM - Mebibytes +- FREESPACEG - Gibibytes +- FREESPACET - Tebibytes +- MAILR (read mail waiting) +- MAILU (unread mail waiting) +- GIT_HASH +- GIT_BRANCH +- SEX and GENDERS +o New aliases (for consistency): BIRTHFMT -> BDATEFMT and BIRTH:<fmt> -> + BDATE:<fmt> +o Support C escape sequences in FILL @-code argument + e.g. FILL:\x20 to fill with space +o Support strftime format arguments to DATE/TIME @-codes +- DATE: (alias: TIME:) +- BDATE: +- PWDATE: +- SINCE: +- LASTON: +- FIRSTON: +- LASTNEW: +- EXPDATE: +- GETKEY +- WAIT:<milliseconds> +- CONTINUE +o New option to create door drop files in node's temp directory +o Changed user birthdate format to YYYYMMDD, input to YYYY/MM/DD +o Support markup tags (optionally) when displaying post +o Support PETSCII terminals connected to non-PETSCII ports +o Support forwarding of local email msg to networked mail (w/comments) + and change of message subject +o Store client terminal information in node#/terminal.ini +o Create node#/client.ini for each node client connection +o Load/keep/refresh each node's configuration in memory +o Support 3rd party installer files for 150+ external programs (doors) + See xtrn/3rdp-intall/README.md for details +o new text.dat strings: +- InternetMailSent +- FidoNetMailSent +- QWKNetMailSent +- FileInfoEditPrompt +- EditExtDescriptionQ +Change SearchExtendedQ to DisplayExtendedFileInfoQ +- FiAuthor +- FiGroup + + +General +~~~~~~~ +o New file base format (based on SMB), see docs/newfilebase.txt + - supports long filenames + - better support for files > 2GB and 4GB + - extended file descriptions up to 4000 chars are now supported +DIZ enhancements: Read/use SAUCE data, support ANSI, increase max 1->4K + +Inspired by Blocktronics (and other ANSI art group) packs' FILE_ID.DIZ/ANS +files: +* Support (and prioritize) FILE_ID.ANS +* Convert ANSI color/attribute sequences in DIZ files to Ctrl-A equivalent +(uses SAUCE width and ICE color, if specified) +* Don't treat DIZ as a series of lines, they're not always nowadays. +* New putmsg() mode: P_INDENT to print files indented by current column +* Display full (up to 64-char) filenames in lists when using 132+ column +terminal. +* Use the Author, Group, and Title fields from the SAUCE if present/non-blank +o libarchive integration (into SBBS and SBBSecho) + built-in support for creating/extracting zip, 7zip, and tgz files + additional read-only formats: rar, lha/lzh, iso, xar, and cab +o Recognize the "standard" USENET signature delimiter: "\n-- \n" +o Use Linux OFD locks on 64-bit Linux builds +o Use a more-liberal username matching algorithm + e.g. Ignore all non-trailing non-alphanumeric characters +o HAPROXY support option +o Support for single-part MIME-attachment decode/download +o .ini file !include now supports wildcard patterns, e.g .!include modopts.d/*.ini +Allow sysop to configure new user gender options (not just M/F) + +Up to 40 characters can be configured by the sysop for gender options. +The default choice/configuration is now: "M/F/X" (not just "M/F") +New @-code: GENDERS +text.dat EnterYourSex -> EnterYourGender + +Add support for "name@address" syntax in twitlist.cfg + +Security +~~~~~~~~ +o Give sysop more control over characters allowed in uploaded filenames + +JavaScript +~~~~~~~~~~ +o Added 'user' properties: birthyear, birthmonth, and birthday +o Added 'system.text()' method: like bbs.text() +o More control over console output streams (-A and -S options) +New JS User.stats properties: +- read_mail_waiting +- unread_mail_waiting +- spam_waiting +New FileBase class +New Archive class +New JS system properties: git_hash and git_branch +Add edit_msg() and forward_msg() methods to JS 'bbs' object +Expose the next-run-date/time for an event as a new `next_run` property +for `xtrn_area.event[]` (in `time_t` format) for easier debugging of these +kinds of issues. +Also expose the error log level as a new property: `error_level` while we're +here. +File.iniGetValue(), iniGetKeys(), iniGetObjects() no supported nested +(!include'd) .ini files +'jsexec -r<expression>' to evaluate a JS expression from command-line +New bbs.view_file(filename) method +Add bbs.export_filelist() method +Add BBS property: msg_from_bbsid + +Exposes the FTN BBSID value from the message header (if there is one). + +Fix: can_* and is_* properties were not dynamic. Added "files" property. + +The following properties would only reflect the status at the time the +file_area object was initialized: + - can_access + - can_upload + - can_download + - is_operator + - is_exempt + + ... so if changes were made the user while online, for example, these property +values would *not* also change to reflect the current state. + +The lib[] and lib_list[] 'can_access' properties still have this flaw. + +Also: Add a new "files" property to the dir[] and dir_list[] objects to report +the current number of files in each directory database. + +Fix: can_* and is_* properties were not dynamic. Added "posts" property. + +The following properties would only reflect the status at the time the +msg_area object was initialized: +- can_access +- can_read +- can_post +- is_operator +- is_moderated + +... so if changes were made the user while online, for example, these +property values would *not* also change to reflect the current state. + +The grp[] and grp_list[] 'can_access' properties still have this flaw. + +Also: Add a new "posts" property to the sub[] and sub_list[] objects to +report the current number of posted messages (quicker than opening a MsgBase +instance). + +SBBSecho +~~~~~~~~ +o Signal the sub-board's configured semaphore file when importing echomail +o Don't attempt to parse origin addr from origin lines in NetMail msgs +o Support user netmail forwarding +o Automatically route in-transit mail to points to boss nodes +o When packing netmail (stored messages), don't discard non-zero zones +o Log an error and exit immediately when a local linked-node is configured +o Generate a MSGID kludge for netmail messages created by SBBSecho +o Built-in sbbsecho.log rotation + New configuration params: MaxLogSize (default: 10M) and MaxLogsKept (10) + + +Control Panel +~~~~~~~~~~~~~ +New sem-file: ctrl/sound.mute +Update sound (WAV) file play-on-event support in Windows build + +A "hack attempt" sound file is now supported in the Terminal Server, Mail +Server, and Services. + +"login" and "logoff" sound files are now supported in the Terminal Server, FTP +Server, Web Server, Mail Server, and Services. +This enhancement fixes Issue #157 + +The following sound files may now be configured in the [Global] section of the +ctrl/sbbs.ini file, if desired to set the default sound files for all +servers/services in on place: +- AnswerSound +- LoginSound +- LogoutSound +- HangupSound +- HackAttemptSound + +Web Server +~~~~~~~~~~ +o Fix requests to the webserver using IPv6 address http://[1234:1234::] + requests +o Fix heap corruption that could occur when HSTS feature is enabled + +FTP Server +~~~~~~~~~~ +o Disable FTP Bounce (FXP) support by default (but configurable) +o FTPS (FTP over TLS) fixes (e.g. uploads) +o Implement max concurrent connections for FTP + by setting MaxConcurrentConnections in the [ftp] section of sbbs.ini + +Mail Server +~~~~~~~~~~~ +o Optionally limit concurrent connections to mail server + via MaxConcurrentConnections key in [mail] section of sbbs.ini +o Reject control chars in base64-decoded auth credentials (name/password) +o POP3 CAPA cmd support in transaction state +o Detect and reject forged "from" fields in submitted msg headers +o No longer decodes based64-encoded messages before storing in msg/mail base +o Support quoted filenames in message subjects + +smbutil +~~~~~~~ +o Don't count vote/poll messages when purging to meet the maximum msgs setting +o New commands to flag/unflag all messages for deletion +o Replace ESC chars with '.' when viewing messages, support '-<count>' with 'r' +o Also, allow continuous reading of 1 or more consecutive messages using the + -<digit> option (no prompting)