Skip to content
Snippets Groups Projects
Commit bbd7deb4 authored by cvs2git's avatar cvs2git
Browse files

This commit was manufactured by cvs2svn to create tag 'sbbs310h'.

parent 9b65d11b
No related branches found
No related tags found
No related merge requests found
Showing with 202 additions and 633 deletions
# The "checkoutlist" file is used to support additional version controlled
# administrative files in $CVSROOT/CVSROOT, such as template files.
#
# The first entry on a line is a filename which will be checked out from
# the corresponding RCS file in the $CVSROOT/CVSROOT directory.
# The remainder of the line is an error message to use if the file cannot
# be checked out.
#
# File format:
#
# [<whitespace>]<filename><whitespace><error message><end-of-line>
#
# comment lines begin with '#'
# The "commitinfo" file is used to control pre-commit checks.
# The filter on the right is invoked with the repository and a list
# of files to check. A non-zero exit of the filter program will
# cause the commit to be aborted.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being committed to, relative
# to the $CVSROOT. For the first match that is found, then the remainder
# of the line is the name of the filter to run.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".
# Set this to "no" if pserver shouldn't check system users/passwords
#SystemAuth=no
# Set `PreservePermissions' to `yes' to save file status information
# in the repository.
#PreservePermissions=no
# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top
# level of the new working directory when using the `cvs checkout'
# command.
#TopLevelAdmin=no
# This file affects handling of files based on their names.
#
# The -t/-f options allow one to treat directories of files
# as a single file, or to transform a file in other ways on
# its way in and out of CVS.
#
# The -m option specifies whether CVS attempts to merge files.
#
# The -k option specifies keyword expansion (e.g. -kb for binary).
#
# Format of wrapper file ($CVSROOT/CVSROOT/cvswrappers or .cvswrappers)
#
# wildcard [option value][option value]...
#
# where option is one of
# -f from cvs filter value: path to filter
# -t to cvs filter value: path to filter
# -m update methodology value: MERGE or COPY
# -k expansion mode value: b, o, kkv, &c
#
# and value is a single-quote delimited value.
# For example:
#*.gif -k 'b'
# The "editinfo" file is used to allow verification of logging
# information. It works best when a template (as specified in the
# rcsinfo file) is provided for the logging procedure. Given a
# template with locations for, a bug-id number, a list of people who
# reviewed the code before it can be checked in, and an external
# process to catalog the differences that were code reviewed, the
# following test can be applied to the code:
#
# Making sure that the entered bug-id number is correct.
# Validating that the code that was reviewed is indeed the code being
# checked in (using the bug-id number or a seperate review
# number to identify this particular code set.).
#
# If any of the above test failed, then the commit would be aborted.
#
# Actions such as mailing a copy of the report to each reviewer are
# better handled by an entry in the loginfo file.
#
# One thing that should be noted is the the ALL keyword is not
# supported. There can be only one entry that matches a given
# repository.
# The "loginfo" file controls where "cvs commit" log information
# is sent. The first entry on a line is a regular expression which must match
# the directory that the change is being made to, relative to the
# $CVSROOT. If a match is found, then the remainder of the line is a filter
# program that should expect log information on its standard input.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name ALL appears as a regular expression it is always used
# in addition to the first matching regex or DEFAULT.
#
# You may specify a format string as part of the
# filter. The string is composed of a `%' followed
# by a single format character, or followed by a set of format
# characters surrounded by `{' and `}' as separators. The format
# characters are:
#
# s = file name
# V = old version number (pre-checkin)
# v = new version number (post-checkin)
#
# For example:
#DEFAULT (echo ""; id; echo %s; date; cat) >> $CVSROOT/CVSROOT/commitlog
# or
#DEFAULT (echo ""; id; echo %{sVv}; date; cat) >> $CVSROOT/CVSROOT/commitlog
# Three different line formats are valid:
# key -a aliases...
# key [options] directory
# key [options] directory files...
#
# Where "options" are composed of:
# -i prog Run "prog" on "cvs commit" from top-level of module.
# -o prog Run "prog" on "cvs checkout" of module.
# -e prog Run "prog" on "cvs export" of module.
# -t prog Run "prog" on "cvs rtag" of module.
# -u prog Run "prog" on "cvs update" of module.
# -d dir Place module in directory "dir" instead of module name.
# -l Top-level directory only -- do not recurse.
#
# NOTE: If you change any of the "Run" options above, you'll have to
# release and re-checkout any working directories of these modules.
#
# And "directory" is a path to a directory relative to $CVSROOT.
#
# The "-a" option specifies an alias. An alias is interpreted as if
# everything on the right of the "-a" had been typed on the command line.
#
# You can encode a module within a module by using the special '&'
# character to interpose another module into the current module. This
# can be useful for creating a module that consists of many directories
# spread out over the entire source repository.
# The "notify" file controls where notifications from watches set by
# "cvs watch add" or "cvs edit" are sent. The first entry on a line is
# a regular expression which is tested against the directory that the
# change is being made to, relative to the $CVSROOT. If it matches,
# then the remainder of the line is a filter program that should contain
# one occurrence of %s for the user to notify, and information on its
# standard input.
#
# "ALL" or "DEFAULT" can be used in place of the regular expression.
#
# For example:
#ALL mail %s -s "CVS notification"
# The "rcsinfo" file is used to control templates with which the editor
# is invoked on commit and import.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being made to, relative to the
# $CVSROOT. For the first match that is found, then the remainder of the
# line is the name of the file that contains the template.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".
# The "taginfo" file is used to control pre-tag checks.
# The filter on the right is invoked with the following arguments:
#
# $1 -- tagname
# $2 -- operation "add" for tag, "mov" for tag -F, and "del" for tag -d
# $3 -- repository
# $4-> file revision [file revision ...]
#
# A non-zero exit of the filter program will cause the tag to be aborted.
#
# The first entry on a line is a regular expression which is tested
# against the directory that the change is being committed to, relative
# to the $CVSROOT. For the first match that is found, then the remainder
# of the line is the name of the filter to run.
#
# If the repository name does not match any of the regular expressions in this
# file, the "DEFAULT" line is used, if it is specified.
#
# If the name "ALL" appears as a regular expression it is always used
# in addition to the first matching regex or "DEFAULT".
# The "verifymsg" file is used to allow verification of logging
# information. It works best when a template (as specified in the
# rcsinfo file) is provided for the logging procedure. Given a
# template with locations for, a bug-id number, a list of people who
# reviewed the code before it can be checked in, and an external
# process to catalog the differences that were code reviewed, the
# following test can be applied to the code:
#
# Making sure that the entered bug-id number is correct.
# Validating that the code that was reviewed is indeed the code being
# checked in (using the bug-id number or a seperate review
# number to identify this particular code set.).
#
# If any of the above test failed, then the commit would be aborted.
#
# Actions such as mailing a copy of the report to each reviewer are
# better handled by an entry in the loginfo file.
#
# One thing that should be noted is the the ALL keyword is not
# supported. There can be only one entry that matches a given
# repository.
......@@ -1244,4 +1244,195 @@ o Added support for server recycle semaphore file (ctrl/ftpsrvr.rec)
o Automatic server recycling upon socket select or accept failure
***********************************************************
* What's New in Synchronet Version 3.10 Revision H (Beta) *
***********************************************************
General
~~~~~~~
o New NewsLink event module (exec/newslink.js)
- used to link sub-boards with newsgroups (e.g. USENET)
- requires ctrl/newslink.cfg
- create a timed event with command line of "?newslink"
o Changed use of gmtime() to localtime() for systems using local/system
time zone rather than GMT/UTC (the default)
o Including Win32 console-mode version of Synchronet (sbbs.exe)
- less overhead
- more ideally suited to run as an NT service
- identical to Unix version
o Better error reporting (includes text description of errno)
o All TCP servers support recycling via semaphore and semaphore files
- ctrl/telnet.rec, ftpsrvr.rec, mailsrvr.rec, and services.rec
- waits until server is not in-use before recycling
- re-loads config files
- re-binds sockets
o Fixed bugs in parsing ARS keywords: UNIX, LINUX, and WIN32
- any additional ARS keywords in the same string were corrupted
Configuration Utility (SCFG) Updated for Version 3.x
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o Changed default QWKnet call-out command line to use QNET-FTP module
o Fixed access violations/segfaults when adding file options:
protocols, download events, viewable/testable/compressable/extractable file
types, and alternate file paths, at the end of the list
o New System "Toggle Option" to use local/system time zone instead of
GMT/UTC
o New Node "Toggle Option" to leave NODE.DAB open (defaults to "Yes")
- This is how Synchronet operated prior to v3, but was changed in the
interest of Linux/smbfs-compatibility
- In the interest of performance and reliability, I've changed the default
behavior back to leaving the file open and added an option to disable
this behavior (and make it behave like Synchronet v3.0)
o System toggles default to previously configured state
o Added External Program "Time Option" to enable "Monitor Time Left"
- Synchronet will automatically disconnect the user if they run out of time
o New "Newsgroup Name" for sub-boards (used by NNTP service)
Control Panel (Win32)
~~~~~~~~~~~~~~~~~~~~~
o Fixed resource (thread and process handle) leak when using BBS->Configure
o Fixed potentially incorrect client counter in status bar
o New File->Properties->Advanced tab to set control directory and host name
- Host name should be set only if different for this instance of sbbsctrl
JavaScript (http://synchro.net/docs/js.html)
~~~~~~~~~~
o Added BranchCallback for detecting infinite loops and releasing timeslices
while executing scripts
o New MsgBase.subnum (0-based sub-board number) property
o New message hdr.date property for proper RFC822 date representation
o Added time to message-id for messages in sub-boards (for more uniqueness)
o Added extra bool param to MsgBase.get_msg_body() method (tails)
- defaults to true if unspecified
o New MsgBase.get_msg_tail() method
- returns message tail (tear/taglines) only
o New global properties:
- errno (mirrors C RTL "errno" variable)
- errno_str (String description of errno value)
o New global methods:
- ascii_str(String) return ex-ascii string converted to pure ascii
- strip_exascii(String) return string with ex-ascii chars removed
o New system methods:
- system.spamlog(prot, reason, host, ip_addr, to)
- system.hacklog(prot, user, text, host, ip_addr, port)
o New system.host_name property
- may be different from Internet address configured in SCFG->Networks->
Internet e-mail
- configured with sbbsctrl->File->Properites->Advanced
- only required for multiple machine BBSes (e.g. vert/rob/cvs.synchro.net)
o New socket method:
- socket.sendfile(filename)
o Global printf() function outputs to event log when appropriate
o Fixed JavaScript context corruption caused by bbs.login() method
o Fixed null pointer dereferences when accessing properites of unopen JS file
o Fixed bug in File.writeAll() method (would stop writing prematurely)
o File.readln() and readAll() methods no longer truncate trailing whitespace
o Doesn't ask for new/your message scan if user has access to no message areas
Telnet Server
~~~~~~~~~~~~~
o Added QWK config menu option to toggle QWK_EXT flag
o Added support for long conference names in CONTROL.DAT if QWK_EXT flag set
o Now detects if new user record number (determined by name.dat) is beyond
the valid size of the user.dat, generates an error log message, and fixes the
user number so the record can be created successfully
o Added code to putusername() to automatically fix a corrupted name.dat file
o Added error report if failed to create new user record
o Fixed output_sem re-initialization bug that caused segfaults in Linux and
*may* have been a cause of occasional output blocks in Win32
o Mail maintenance/purge event no longer tries to delete msgs in an empty base
o No longer clears useron number in node.dab when logging off
- multinode chat users need this value to display the user name that left
chat channel (disconnected)
o New toggle option to check time left online while executing doors
- fix for doors that fail to check user's time left online
o Switched back to using DOSXTRN for offline events
- executing events without DOSXTRN caused too many problems
o Fixed Win32 resource leaks when executing external programs
o Fixed CR to CRLF expansion for intercepted standard I/O in Win32 programs
o Fixed condition in node.dab where a node status could be left as "in use"
o New command-line specifier (%.) expands to ".exe" for non-Unix platforms
- Allows Unix and Win32 executables to reside in the same directory
o NT FOSSIL driver no longer creates sbbsexec*.log files
Synchronet Services
~~~~~~~~~~~~~~~~~~~
o NNTP Service (exec/nntpservice.js)
- Added log output for rejected commands when not authenticated
- Handles P (post) user restriction more gracefully
- Served message headers now include properly formatted date field
- Posted messages now use original date/time in header
- Added support for SLAVE and IHAVE commands
- Updated From: headers to include user name separate from address
- Added subject trashcan (text/subject.can) checking (spam filtering/log)
o Finger Service
- Fixed negative time online values
o Fixed buffer overflow bug in JavaScript global log() method
o Support for unique host names per Synchronet instance (system.host_name)
FTP Server
~~~~~~~~~~
o Fixed race condition that caused client transfer threads to be orphaned
o Eliminated warning when attempting to close socket after sock_mutex is gone
o Added special log output to ftp_close_socket when closing the server socket
o Rearranged termination sequence at end of ctrl_thread to fix race conditions
o Added wait at end of ftp_server thread for other threads to terminate
/* End of V310_NEW.TXT */
......@@ -12,7 +12,7 @@
// area subboard (internal code) newsgroup
// ...
const VERSION="1.00 Alpha"
const VERSION="1.00 Beta"
printf("Synchronet NewsLink session started (v%s)", VERSION);
......@@ -270,6 +270,7 @@ for(i in area) {
,antispam,hdr.from
,antispam,system.inetaddr));
writeln("To: " + hdr.to);
writeln("X-Comment-To: " + hdr.to);
writeln("Subject: " + hdr.subject);
writeln("Message-ID: " + hdr.id);
writeln("Date: " + hdr.date);
......@@ -375,6 +376,7 @@ for(i in area) {
switch(line.toLowerCase()) {
case "to":
case "apparently-to":
case "x-comment-to":
hdr.to=data;
break;
case "from":
......@@ -392,13 +394,14 @@ for(i in area) {
case "references":
hdr.reply_id=data;
break;
/* TODO: Parse date field */
}
}
if(hdr.id.indexOf('@' + system.inetaddr)!=-1) // avoid dupe loop
continue;
if(system.trashcan("subject",hdr.subject)) {
printf("!BLOCKED subject: %s",hdr.subject);
var reason = format("Blocked subject (%s)",hdr.subject);
system.spamlog("NNTP",reason,hdr.from,server,hdr.to);
continue;
}
......
......@@ -12,7 +12,7 @@
load("sbbsdefs.js");
const VERSION = "1.00 Alpha";
const VERSION = "1.00 Beta";
var debug = false;
var no_anonymous = false;
......@@ -305,6 +305,7 @@ while(client.socket.is_connected) {
,hdr.from
,hdr.from,system.inetaddr));
writeln("To: " + hdr.to);
writeln("X-Comment-To: " + hdr.to);
writeln("Subject: " + hdr.subject);
writeln("Message-ID: " + hdr.id);
writeln("Date: " + hdr.date);
......@@ -404,6 +405,7 @@ while(client.socket.is_connected) {
switch(line.toLowerCase()) {
case "to":
case "apparently-to":
case "x-comment-to":
hdr.to=data;
break;
case "from":
......@@ -425,6 +427,9 @@ while(client.socket.is_connected) {
if(system.trashcan("subject",hdr.subject)) {
log(format("!BLOCKED subject: %s",hdr.subject));
var reason = format("Blocked subject from %s (%s): %s"
,user.alias,hdr.from,hdr.subject);
system.spamlog("NNTP",reason,client.host_name,client.ip_address,hdr.to);
writeln("441 posting failed");
break;
}
......
: Battle Hymn of Republic |
t 2
s 5
v Mine \
f4 133
v eyes \
f4 160
v have \
f4 100
v seen \
f4 160
v the \
D4 100
v glor\
d4 160
v y \
f4 100
v of \
A4 160
v the \
c5 100
v com\
d5 160
v ing \
d5 100
v of \
d5 160
v the \
c5 100
v lord.\
A4 200
v
\ No newline at end of file
: Bouree |
t 2
b3 80
c4 80
d4 160
g3 80
F3 80
g3 160
g4 160
F4 160
e4 80
F4 80
d4 160
a3 80
b3 80
c4 160
F3 80
e3 80
F3 160
d4 160
b3 160
: Buffalo Gals |
s 5
c3 100
c3 100
c3 200
e3 200
g3 100
g3 100
a3 133
g3 200
g3 133
e3 200
r 200
g3 133
f3 200
f3 133
d3 200
r 200
a3 133
g3 200
g3 133
e3 200
: Camptown Races |
s 5
t 2
a3 100
a3 100
F3 100
a3 100
b3 100
a3 100
F3 200
F3 100
e3 300
F3 100
e3 200
r 15
a3 100
a3 100
F3 100
a3 100
b3 100
a3 100
F3 200
t 200
c5 2
p -.50
b4 2
p -.50
A4 1
p -.50
b4 1
p -.50
A4 1
p -.50
a4 1
p -.50
G4 2
p -.50
g4 2
p -.50
F4 2
p -.50
g4 1
p -.10
g4 1
p -.10
g4 1
p -.10
g4 1
p -.10
g4 1
p -.10
g4 1
p -.10
g4 1
: Now we're going to set-up and play a song
Visual The Entertainer
pitch 323.50 All commands can be abreviated with just one character
t 200
s 10
:r 10 Rest before we begin
:intro
o 6
d 1
e 1
c 1
o -1
a 2
b 1
g 1
r 1
d 1
e 1
c 1
o -1
a 2
b 1
g 1
r 1
d 1
e 1
c 1
o -1
a 2
b 1
a 1
G 1
g 2
r 2
g5 1
r 1
: begin
o 5
d4 1
D4 1
e4 1
c5 2
e4 1
c5 2
e4 1
c5 3
a3 1
r 1
g3 1
c 1
d 1
D 1
e 1
c 1
d 1
e 2
b4 1
d 2
c 1
r 1
g3 1
r 1
g3 1
r 1
d4 1
D4 1
e4 1
c5 2
e4 1
c5 2
e4 1
c5 3
a3 1
r 1
g3 1
r 1
a4 1
g4 1
F4 1
a4 1
c5 1
e5 2
d5 1
c5 1
b4 1
d5 1
r 1
g3 1
r 1
a3 1
r 1
d4 1
D4 1
e4 1
c5 2
e4 1
c5 2
e4 1
c5 3
a3 1
r 1
g3 1
c 1
d 1
D 1
e 1
c 1
d 1
e 2
b4 1
d 2
c 1
r 1
g3 1
r 1
g3 1
r 1
c 1
d 1
e 1
c 1
d 1
e 2
c 1
d 1
c 1
e 1
c 1
d 1
e 2
c 1
d 1
c 1
e 1
c 1
d 1
e 2
b4 1
d 2
c 1
r 1
g3 1
r 1
a3 1
r 1
: repeat
d4 1
D4 1
e4 1
c5 2
e4 1
c5 2
e4 1
c5 3
a3 1
r 1
g3 1
c 1
d 1
D 1
e 1
c 1
d 1
e 2
b4 1
d 2
c 1
r 1
g3 1
r 1
g3 1
r 1
d4 1
D4 1
e4 1
c5 2
e4 1
c5 2
e4 1
c5 3
a3 1
r 1
g3 1
r 1
a4 1
g4 1
F4 1
a4 1
c5 1
e5 2
d5 1
c5 1
b4 1
d5 1
r 1
g3 1
r 1
a3 1
r 1
d4 1
D4 1
e4 1
c5 2
e4 1
c5 2
e4 1
c5 3
a3 1
r 1
g3 1
c 1
d 1
D 1
e 1
c 1
d 1
e 2
b4 1
d 2
c 1
r 1
g3 1
r 1
g3 1
r 1
c 1
d 1
e 1
c 1
d 1
e 2
c 1
d 1
c 1
e 1
c 1
d 1
e 2
c 1
d 1
c 1
e 1
c 1
d 1
e 2
b4 1
d 2
c 1
r 1
g3 1
r 1
c3 1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment