Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
Synchronet
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Main
Synchronet
Commits
0efb0e9f
Commit
0efb0e9f
authored
2 years ago
by
Rob Swindell
Browse files
Options
Downloads
Patches
Plain Diff
Additions and fixes and re-organization (of this doc)
parent
0f4325ee
No related branches found
No related tags found
1 merge request
!463
MRC mods by Codefenix (2024-10-20)
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
docs/v320_new.txt
+100
-90
100 additions, 90 deletions
docs/v320_new.txt
with
100 additions
and
90 deletions
docs/v320_new.txt
+
100
−
90
View file @
0efb0e9f
...
...
@@ -6,11 +6,12 @@
General
~~~~~~~
o New userbase (see https://wiki.synchro.net/history:newuserbase for details)
o
Overhaul
statistics files
o
New
statistics file
format
s
- */dsts.dab (daily statistics and running totals) -> */dsts.ini
- */csts.dab (cumulative statistics / log) -> */csts.tab
- DSTSEDIT (daily stats editor) goes away
, not needed (
just edit the file
)
- DSTSEDIT (daily stats editor) goes away
:
just edit the
dsts.ini
file
o Baja: Make !INCLUDE directives filename case-insensitive
- some old command shells/mods wouldn't compile on *nix systems otherwise
Security
~~~~~~~~
...
...
@@ -21,17 +22,17 @@ o New 'O' restriction is automatically applied to accounts with a duplicate
real name (when allowed by the sysop) and prevent such users from posting
or sending mail with their real name
o Change the semantics of the "Allow Sysop Logins" setting in SCFG->System:
an account with sysop access (i.e. level 90+) can still login, but any
action that
normally requires the system password will not be allowed. This
includes the
sysop-actions available in the FTP server when authenticating
with
<user-pass>:<system-pass> as the password. The sysop-user can still
an account with sysop access (i.e. level 90+) can still login, but any
action that
normally requires the system password will not be allowed. This
includes the
sysop-actions available in the FTP server when authenticating
with
<user-pass>:<system-pass> as the password. The sysop-user can still
authenticate (and login), but none of those sysop-actions will be available
to them.
Renamed/moved to SCFG->System->Security Options->Toggles->Allow Sysop Access
Customization
~~~~~~~~~~~~~
o New modules: msgscancfg.js and filescancfg.js
o New
stock
modules: msgscancfg.js and filescancfg.js
o New @-codes:
- BUILD_DATE
- BUILD_TIME
...
...
@@ -45,13 +46,25 @@ o @-codes can now be included in text centered with the CENTER @-code
Note: this centering logic does not know the expanded-size of the @-code, so
use a fixed-length @-code (e.g. with padding) or use the 'C' @-code format
modifier instead
o Fixed negative MSG_SCORE @-code value on 64-bit *nix builds
o New text.dat strings:
- HashingFile
- HashedFile
-
String 387 is now used for
YouCantUseThatNetmail
string
- YouCantUseThatNetmail
- NewUserValEmailSubj
- InactivityAlert
- FreeDownloadUserMsg
o New text.dat strings for received Fido and Internet mail
- InternetMailReceived
- InternetMailForwarded
- FidoNetMailReceived
- WithAttachment
- FidoEchoMailReceived
For The Millionaire (RIP?), closing issue #254
The first string (suppressed with %.0s) is an optional date/time stamp.
This also deprecates (removes support for) the [mail] NewMailNotice and
ForwardNotice keys in sbbs.ini
Windows
~~~~~~
o Synchronet should run on Windows XP again
...
...
@@ -60,18 +73,17 @@ o Synchronet should run on Windows XP again
o Ignore VDD WriteFile() failures if the child process has terminated
If the child process (e.g. door game) has terminated, don't log errors
if/when WriteFile() to the mailslot fails. This would be expected as the
mailslot is created/ow
e
n-by sbbsexec.dll which would also terminate along
mailslot is created/own
ed
-by sbbsexec.dll which would also terminate along
with the process, thus closing the mailslot
o Suppress "VDD Open failed" warning if child process terminated
o Fix (loss of) carrier detect reporting in Virtual UART driver
o Many improvements to the Virtual UART Driver as a result of SVDM development:
- Report CTS status in FOSSIL driver (high when outbuf has some space)
- Emulate FIFO enablement
- Support RTS flow control
- Report "DCD change" in MSR correctly
o Synchronet Control Panel (sbbsctrl.exe) now has a "Log Events to Disk"
option
and will write the
event thread log messages to data/events*.log
o New useredit.exe (
Delphi forms ported to C++Builder
)
o Synchronet Control Panel (sbbsctrl.exe) now has a "Log Events to Disk"
option, enabling writing of
event thread log messages to data/events*.log
o New useredit.exe (
all new C++ version, but using the old Delphi forms
)
Configuration Utility (SCFG)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
...
@@ -79,20 +91,20 @@ o Displays path/filename of config file actively being edited, not date/time
o Supports cycling through like-items using left/right arrow keys
e.g. comparing/glancing through grps, subs, libs, and dirs, is really easy!
o New "Servers" menu: Almost all settings in the sbbs.ini file are now
configurable here
.
configurable here
o New "Initial Setup Wizard" runs automatically on new-install or via '-w' opt
Similar to the SBBSCTRL:Configuration Wizard in function, but TUI, not GUI
o Moved Node->Toggle Options->Allow Login by User Number, Login by Real Name,
Always Prompt for Password, to System->Security Options
Always Prompt for Password, to
(new)
System->Security Options
o Moved Node->Advanced Options->Validation user, Notification User, and
Notification Error Level to (new) System->Notifications menu
o Moved Node->Advanced Options->Inactivity Warning and Inactivity
Disconnection
to System->Advanced->User Inactivity Warning (now a
percentage) and
Maximum User Inactivity
o Moved Node->Advanced Options->Inactivity Warning and Inactivity
Disconnection
to System->Advanced->User Inactivity Warning (now a
percentage) and
Maximum User Inactivity
o Removed Node->Advanced Options->Semaphore Frequency and Statistics Frequency
o Adding nodes
,
prompts to automatically adjust the Terminal Server LastNode
o Adding nodes prompts to automatically adjust the Terminal Server LastNode
value to include the new (higher) node number
o Moved security settings from "System" menu to System->Security Options
o Moved security settings from "System" menu to
(new)
System->Security Options
- Password
- Users Can Change Password
- Days to Preserve Deleted Users
...
...
@@ -100,80 +112,84 @@ o Moved security settings from "System" menu to System->Security Options
- New User Password (now prompted when setting Security->Open to New Users)
- Security Level Values, Expired Account Values, and Quick-Validation Values
- Toggle Options->Allow Sysop Logins, Display/Log Passwords Locally, Users
Expire when Out-of-time, Require Sys Pass during Login, Closed to New Users
Expire when Out-of-time, Require Sys Pass during Login, and
Closed to New Users
o Added System->New User Values->QWK Packet Settings
o Added New User Chat options to System->New User Values->Default Toggles:
Multinode Chat Echo, Multinode Chat Actions, Pageable for Chat,
Node Acitivty Messages, and Split-Screen Private Chat
o Moved System->New User Values->Question Toggles to System->New User Prompts
o Added System->Advanced->Maximum Log File Size (enable/control log rotation)
o Added System->Loadable Modules->Send Feedback, Chat Section, List Users,
Scan Dirs, List Files, View File Info, Batch Transfer
- All configured loadable modules can now include command-line options
o File Directory->Toggle->Template for New replaced with File Library->
Diretory
Defaults...
-
*
All
*
configured loadable modules can now include command-line options
o File Directory->Toggle->Template for New replaced with File Library->
Directory
Defaults...
"Clone Options" moved to Directory Defaults->Clone Settings
o New File Library options:
Upload Requirements, Download Requirements, Operator Requirements, Exemption
Requirements, Auto-Add Sub-directories, Virtual Sub-directories
o Internal codes (prefixes and suffixes) have double in
size
o Internal codes (prefixes and suffixes) have double
d
in
maximum length
o Add "Native" option for QWKnet call-out cmd-lines
o Add an 'enabled' property for QWKnet hubs, defaults to true
o Move the pack and unpack commands to an "Advanced" sub-menu since
they
are completely optional now
o Move the
QWKnet hub
pack and unpack commands to an "Advanced" sub-menu since
they
are completely optional now
(SBBS uses libarchive otherwise)
o Trim leading and trailing white-space in input strings, automatically
o Don't allow spaces when
inputt
ing/editing internal codes
o Don't allow spaces when
enter
ing/editing internal codes
JavaScript
~~~~~~~~~~
o Command-shells can be written entirely in JavaScript, no .bin stub needed
o file_area.web_vpath_prefix
o New property: file_area.web_vpath_prefix
o file_area.min_diskspace is in bytes now, not kilobytes
o file-metadata-object (return value of FileBase.get()).vpath
o methods for vetting filenames (e.g. for upload by users)
-
system.
illegal_filename() - check if contains illegal chars/sequences
-
system.
safest_filename() - check if contains only safest chars
-
system.
allowed_filename() - check if meets criteria from SCFG->File Options
-
system.
check_filename() - check if legal and meets configured criteria and
o
system
methods for vetting filenames (e.g. for upload by users)
- illegal_filename() - check if contains illegal chars/sequences
- safest_filename() - check if contains only safest chars
- allowed_filename() - check if meets criteria from SCFG->File Options
- check_filename() - check if legal and meets configured criteria and
is not in file.can
-
bbs.check_filename() - ditto, except will display badfile.msg as
appropriate
o
bbs.check_filename() - ditto, except will display badfile.msg as
appropriate
o MsgBase.save_msg() throws an exception when empty recipient list is provided
o Restore ability for MsgBase.open() to open an arbitrary SMB msgbase
o Remember the last 'first_msg' property value after MsgBase
instance
is closed
o Remember the last 'first_msg' property value after MsgBase is closed
o Fixed user.dat open file descriptor leak in User object constructor
o New User.stats.download_cps property
o New User.mail_settings property
o New User.close() method
o New console.flush() method
o New console.progress() method
Display a progress indication bar, e.g. "[ Scanning 10.0% ]" with the bar
backfill effect (when supported by the terminal)
o File.readBin() and writeBin() methods now support 64-bit integer binary data
o console.mouse_mode now supports being set to just true or false (no flags)
o console.pause() now accepts an optional bool argument (set_abort)
o Allow system.matchuserdata() to search deleted user records
o Add 'fidonet_addr' property to msg_area.sub[]
o New property: system.login_settings
o New property: system.mail_settings
o file_area.min_diskspace is in bytes now, not kilobytes
o New global function: rmfiles() - remove files and sub-dirs, recursively
o New bbs.batch_clear() method
o New bbs.chat_sec() method
o New bbs.sync() method
o New User.stats.download_cps property
o New User.mail_settings property
o New bbs methods: save_msg_scan() and reload_msgs_scan()
o bbs.telnet_gate() and rlogin_gate() now return boolean (success/failure)
o bbs.logoff() now returns boolean (false if log-off was denied)
o New bbs properties: first_node and last_node
o MsgBase.save_msg() throw an exception when empty recipient list is provided
o New system.find_login_id() method
o Allow system.matchuserdata() to search deleted user records
o New property: system.login_settings
o New property: system.mail_settings
o New console properties:
- line_delay
- max_getkey_inactivity
- last_getkey_activity
- max_socket_inactivity
o console.mouse_mode now supports being set to just true or false (no flags)
o console.pause() now accepts an optional bool argument (set_abort)
o New console.flush() method
o New console.progress() method
Display a progress indication bar, e.g. "[ Scanning 10.0% ]" with the bar
backfill effect (when supported by the terminal)
o File.readBin() and writeBin() methods now support 64-bit integer binary data
o New method: File.iniRemoveSections()
Servers
~~~~~~~
o MQTT (IoT protocol) statistics/status/output publishing and control
See https://wiki.synchro.net/ref:mqtt for details
o Allow a configured maximum-severity (minimum value) for TLS-related log
messages
. D
efault is 0 (LOG_EMERG, maximum severity)
messages
, d
efault is 0 (LOG_EMERG, maximum severity)
o All servers support login-by-realname/user-number (if enabled by the sysop)
o systemd integration (status reporting) on *nix builds
o Fix uploader-notification, credit awards, download-counters in FTP downloads
...
...
@@ -190,19 +206,19 @@ Terminal Server
~~~~~~~~~~~~~~~
o Socket inactivity watchdog now supported and configurable with separate
maximum inactivity values for Login, New User Registration, and normal
User Session (SCFG->Servers->Terminal Server->Max * Inactivity settings
User Session (SCFG->Servers->Terminal Server->Max * Inactivity settings
)
- This inactivity detection works even when scripts don't call getkey()
but is reset upon received TCP traffic of any kind (even NOP/GA)
but is reset upon received TCP traffic of any kind (even
Telnet
NOP/GA)
o Progress-update displays are now optimized for slow (e.g. modem) connections
o Basic PETSCII output column/line counting support (for auto-pause)
o Displayed Instant Messages (notifications and telegrams) are now stored
and historic messages viewable via ;msgs command and 'V' from the ^P prompt
o New display file naming (*.cXX.[asc|msg|ans|rip|seq]) where XX is the
minimum
column width (not necessarily the exact column width)
The
existing
*.XXcol.* naming is still supported for exact-column
width files
o ASC/MSG versions of display files no longer required
If all a sysop wants to create/use are .ans files, they can do that,
non-ANSI
users be damned
o New display file naming (*.cXX.[asc|msg|ans|rip|seq]) where XX is the
/minimum/
column width (not necessarily the exact column width)
The
old
*.XXcol.* naming is still supported for exact-column
-
width files
o ASC/MSG versions of display files
are
no longer required
If all a sysop wants to create/use are .ans files, they can do that,
non-ANSI
users be damned
o Use nearest-zone matching for source FTN address when replying to netmail
o Fix lost 'unexpected characters' received in ANSI get cursor position
response (issue #304)
...
...
@@ -233,10 +249,10 @@ Doors
o New option to Disable Local Display
o New option to Alert/Disconnect an Inactive User while running program
o Fix EXITINFO.BBS drop file generation (a few problems with size and garbage)
o Total
ly
re
-
write the PCBOARD.SYS and USERS.SYS drop file generation logic
o Limit
door.sys
drop file numeric values to 32767
Fixes issue with doors using The DoorFrame door library (e.g Lemonade!)
o Populate line 36 (user alias) of
door.sys
with the current user's handle
o Total rewrite
of
the PCBOARD.SYS and USERS.SYS drop file generation logic
o Limit
DOOR.SYS
drop file numeric values to 32767
-
Fixes issue
s
with doors using The DoorFrame door library (e.g Lemonade!)
o Populate line 36 (user alias) of
DOOR.SYS
with the current user's handle
Previously, we just always made this a blank line
o Add line 8 (user's real name) to DOORFILE.SR (Solar Realms' drop file)
o Dates in drop files are now always in MM/DD/YY format, never DD/MM/YY
...
...
@@ -256,21 +272,21 @@ o When user hangs-up on external programs on *nix, try to terminate w/SIGTERM
stdio-based external program on *nix, if the program was still running, we'd
send it a SIGHUP, wait up to 10 seconds for the process to terminate and if
it did not, terminate it (ungracefully) with SIGKILL. Since some programs
catch SIGTERM (and not SIGHUP) to indicate a termination request, we now
will
first attempt a SIGHUP, wait up to 5 seconds for the process to
terminate and
if it does not, then send a SIGTERM and wait up to another 5
seconds for it
to terminate and if it doesn't, then finally send it a
SIGKILL (which cannot
be caught and always results in an ungraceful
termination of the child
process)
catch SIGTERM (and not SIGHUP) to indicate a termination request, we now
will
first attempt a SIGHUP, wait up to 5 seconds for the process to
terminate and
if it does not, then send a SIGTERM and wait up to another 5
seconds for it
to terminate and if it doesn't, then finally send it a
SIGKILL (which cannot
be caught and always results in an ungraceful
termination of the child
process)
File Transfers
~~~~~~~~~~~~~~
o Extracted DIZ from sub-directory of archive does not preempt root DIZ File
o Increase maximum extended file description length from 4000 to 5000 chars
o Increase
d
maximum extended file description length from 4000 to 5000 chars
o Filenames > 12 chars use liberal filename matching
(fixes issue seen at https://youtu.be/_IWzIV0_sZ4?t=310)
o Allow maximum uploaded filename length to be configured (default: 64)
o Searching for file descriptions in the Terminal Server, now searching
s
file's
o Searching for file descriptions in the Terminal Server, now searching file's
tags, author, and author group, if available
o Fixed issue (#328) removing files from batch queues
o Fix "Testable Files" file extension comparison (issue #331)
...
...
@@ -290,34 +306,25 @@ o Allow sysop-choice of source of virtual sub-directory source name
long name, if they prefer.
o Removed FTP server DIR_FILES option (no longer applicable)
o Fix: Use the user's default download protocol for batch downloads
o Increase maximum file extension length from 3 to 15 characters (e.g.
.
tar.gz)
o Increase maximum file extension length from 3 to 15 characters (e.g. tar.gz)
o Fix bug (issue #515) with moving files between directories
o Minimum disk space more universally enforced and no longer limited to 65535K
o Better access enforcement to files in batch download queues
o Remove defunct files from batch download queue during logon
o Store/reuse file download throughput (in CPS), for transfer estimates/ETA
Message Areas
~~~~~~~~~~~~~
Message
Bases/
Areas
~~~~~~~~~~~~~
~~~~~~
o Sanity check sub-board's assigned FTN addresses when loading configuration
(use nearest matching configured AKA)
o Fixed QWKnet netmail dest user look-up (using qnet/users.dat)
broken back in 2021
o New text.dat strings for received Fido and Internet mail
- InternetMailReceived
- InternetMailForwarded
- FidoNetMailReceived
- WithAttachment
- FidoEchoMailReceived
For The Millionaire (RIP?), closing issue #254
The first string (suppressed with %.0s) is an optional date/time stamp.
This also deprecates (removes support for) the [mail] NewMailNotice and
ForwardNotice keys from sbbs.ini.
o Fix heap corruption in decoding of quoted-printable text in smblib
o Fix erroneous filtering of vote messages by age
e.g. !Filtering QWK message from (null) due to age: 19321 days
o Fix: Include blank lines in messages edited with internal editor
o Don't save draft messages upon disconnect for Guest or "no one" (user #0)
o Improved MIME/QP-encoded message text parsing
SBBSecho
~~~~~~~~
...
...
@@ -329,7 +336,7 @@ o Rework NetMail routing logic to handle point destinations better
HatchIT
~~~~~~~
o
Supports a n
ew non-interactive mode (patch by @acn)
o
N
ew non-interactive mode (patch by @acn)
o Generates MS-DOS compatible 'File' key values and 'Lfile' key when source
filename is not MS-DOS compatible
...
...
@@ -338,13 +345,13 @@ Web Server
o Direct Filebase access for downloading files with access controls,
notifications, updated statistics and credits (optional, enabled
via SCFG->Servers->Web Server->Filebase VPath Prefix (e.g. "/files/")
o Dynamic file area/base indexing
(set sbbs.ini [web] FileIndexScript to webfileindex.ssjs for demo)
o Requsted-path aliasing, via ctrl/web_alias.ini
o Log requests that resolve outside of the web root as hack attempts
o Fix HTTP-requests for files >= 2GB in size
o Perform a JS garbage collection for each new request in a reused session
o Dynamic file area/base indexing
(set sbbs.ini [web] FileIndexScript to webfileindex.ssjs for demo)
o Add UNIX domain FastCGI support
o Add UNIX domain FastCGI support (in *nix builds only)
Mail Server
~~~~~~~~~~~
...
...
@@ -355,3 +362,6 @@ o Fix false FORGED mail header 'FROM' field detection/rejection
FTP Server
~~~~~~~~~~
o Limit uploaded file sizes, accounting for free disk space
o Fix uploader-notification, credit awards, download-counters in downloads
o Source of virtual sub-directory names are now configurable in SCFG
- May be derived from internal code suffix (default), the short or long name
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment