What's New in Synchronet v3.12
- Web Server (New!)
- HTTP 1.0 and 1.1
- Virtual Hosts
- CGI (currently on Unix only)
- Server-side JavaScript (SSJS) for dynamically-generated web content
- Default HTML user interface for creating new user accounts and reading messages
- Standard format HTTP access logs (data/logs/http-*)
- Configurable MIME file type support (ctrl/mime_types.ini)
- ... and many more cool features thanks to Stephen Hurd (Deuce)
- Mail Server
- Supports SMTP authentication (PLAIN, LOGIN, or CRAM-MD5) when using an external relay server
- Creates default MIME Content-Type for non-Internet messages (charset=IBM437)
- Supports user@[ip_address] notation
- Supports RFC822 header fields in Field[white-space]: format
- Fixed receipt of SMTP telegrams (inter-BBS instant-messages)
- Fixed possible buffer overflow scenarios
- Fixed UDP DNS MX-record look-up bug
- If posting via authenticatd SMTP (e.g. sub:code@yourbbs.com), verifies user meets access requirements
- Much-improved external mail processor support using new ctrl/mailproc.ini
- Or ctrl/mailproc.host.ini if it exists
- Includes ListServer module as example mail processor
- See listserver.txt for details
- Mail processors may run only for specific recipients (or a set of recipients)
- Additional mail processor command-line specifiers:
- %R (Reverse path)
- %S (Sender's name)
- %A (Sender's address)
- JavaScript mail processor modules:
- can now use log() to write to the mail server log window
(AKA write, writeln, and print)
- have access to global variables: sender_name, sender_address, and reverse_path
- Telnet/RLogin Server
- Telnet option negotiation overhaul:
- Compatibility with more clients
- Gets/stores terminal type
- Supports negotiated window size (much more reliable than ANSI cursor position reports)
- Telnet server now escapes the telnet IAC (ASCII 255) character
- Many RLogin improvements and behavior changes (ask Deuce for details)
- Switched "Allowed RLogin address list" from data/rlogin.can to ctrl/rlogin.cfg
- QWK/REP packing/unpacking semaphore file allows multiple hosts to process QWK events (for FTP server)
- Counts and logs number of "short sends" on client socket
- Fixed crashes/segfaults when re-loading configuration files
- Fixed "Monitor Time Left" external program toggle option
- Fixed calculation of upload/download and post/call ratios over 50% in Access Requirement Strings
- Beeps at user when reaching end of allowed string input
- Batch download file list now contains the long filenames if the file transfer protocol is "Native 32-bit"
- Rejects filenames begining with a dash as a "suspicious filename"
- Use default SHELL value of /bin/sh if environment variable not set for Unix version
- Created PROT ARS keyword (e.g. "Telnet" or "RLogin")
- The %p command-line specifier now expands to the client's protocol (e.g. "Telnet" or "RLogin")
- Allow spinning cursor to be completely disabled by users (even for pause prompts)
- input_thread_mutex lock fix (work-around necessary for some Linux distros)
- Eliminated hard-coded "Continue?" prompt during new user procedure, using text.dat line 564 instead
- FTP Server
- Supports both shared and non-shared open modes when sending files (for download)
- Guest/anonymous HTML clients can now toggle on/off extended file descriptions in 00index.html
- Don't update existing (pre-packed?) QWK packet when downloading or "sizing" a QWK packet via FTP
- Synchronet Services
- Configurable stack size for service threads
- Improved client_add() and client_remove() methods
- Eliminated support for legacy ctrl/services.cfg
- Must use ctrl/services.ini or ctrl/services.host.ini now
- Fixed termination request with active clients
- All Servers
- Automatic bind-retry on failure (typically, "address/port already in use")
- Much more flexible semaphore file format for recycling or shutting-down servers using the local file system
- Format: ctrl/action[.host][.service]
- Examples:
- ctrl/recycle - recycle all services on all hosts
- ctrl/recycle.vert - recycle all services on system with hostname "vert"
- ctrl/shutdown.vert.telnet - shutdown telnet service on vert only
service may be "telnet", "ftp", "mail", "web" or "services"
- Legacy (ctrl/*.rec) recycle semaphore files still supported
- Startup initialization file (ctrl/sbbs.ini) is re-parsed upon server recycle
- Much more responsive to requests for termination (immediate) and shutdown (when not in use)
- Message Bases (SMBLIB v2.40)
- Performance and reliability improvements
- The e-mail message base (data/mail) now supports an unlimited number of messages (within SMB limits)
- High-level functions added for the convenience of 3rd party developers
- New security header fields track who posted what messages from where
- New hash database
- to perform fast look-ups of message-IDs for threading and duplicate checking
- robust body text dupe checking (better than legacy CRC history method)
- hash history file is never purged or deleted so old dupes cannot return
- no chance for false positives
- Auto-thread linkage
- resulting thread-links will be used extensively in future threaded message displays (ala web-boards)
- New SMBUTIL commands:
- d delete all messages
- h dump hash database
- New SMBUTIL options:
- -c[m] create message base if it doesn't exist (m=max msgs)
- -l LZH-compress imported message text
- -o print errors on stdout (instead of stderr)
- -p wait for keypress (pause) on exit
- -! wait for keypress (pause) on error
- -b beep on error (quiet is now the default)
- New CHKSMB options:
- -b beep on error (quiet is now the default)
- -h do not check hash database
- FIXSMB may now be used to repair multiple message bases with a single command
Example: fixsmb data/*.shd
- FIXSMB now removes "in-transit" attributes (holding messages in the mail server queue)
- FIXSMB will now add message hashes to the hash database (if missing)
- JavaScript
- JSexec new global methods:
- chdir() (change current directory)
- putenv() (create/set environment variable)
- Background (multi-threaded) script support using load(true, filename, args)
- New Queue class for bi-directional communications between modules/threads
- New bbs.mods object for a common global repository for 3rd party modifications/modules
- Reduced memory usage (using the undocumented JSPROP_SHARED attribute for properties)
- MsgBase.save_msg() will accept any variable type for the body text
and will automatically convert to a string (even arrays of objects)
- For a complete list of JavaScript Object Model changes, see v312_jsnew.html
- Full-screen Utilities (e.g. SCFG, EchoCfg, etc.)
- Mouse support returns to Win32
- Strings longer than the screen width can now be edited
- Support ANSI terminals (remote input doesn't currently work on NT-based OSes)
- Support X consoles on Unix
- Compatibility with terminals/keyboards lacking some extended keys.
The following are now equivalanet in ulist (menus) and string input:
- ^B = home
- ^E = end
- ^V = insert (string input only)
- ^Z = help (F1)
and in menus only:
- + = insert
- - = delete
- backspace = escape (not new)
- ^U = pgup
- ^D = pgdn
- ^C = copy (F5)
- ^V = paste (F6)
- ... and many more cool features thanks to Stephen Hurd (Deuce)
- Windows NT Services
- Supports mute/umute and sysop available/unavailable control from the Synchronet Control Panel
- Event log messages no longer contain warnings about "missing event source descriptions"
- Synchronet Control Panel (for Win32)
- Now stores common server settings in ctrl/sbbs.ini instead of Windows Registry
- Legacy registry settings are automatically imported
- Allows easy interoperation with sbbsNTsvcs.exe and sbbs.exe
- The startup .ini file can now be specified on the sbbsctrl.exe comand-line
- Will use ctrl/host.ini by default, if it exists
- Optionally use Windows file associations when editing or viewing text/ansi/ascii files
- Synchronet Control Panel configuration (window sizes/positions/colors, etc) may be exported-to
or imported-from ctrl/sbbsctrl.ini
- Synchronet Console
- Added commands:
- (R)ecycle/(S)hutdown/(T)erminate any server (or all servers)
- (!) to execute an external (system) command
For many more changes since v3.10, see v311_new.html and
v311_jsnew.html
Copyright © 2005 Rob
Swindell
$Id: v312_new.html,v 1.6 2005/08/12 00:54:36 rswindell Exp $