Back to Table of Contents

## [15.1] - CHKSMB - Checks mail/message base for validity

    usage: chksmb [/opts] <filespec.SHD>

    opts:
           s - stop after errored message base
           p - pause after errored message base
           q - quiet mode (no beeps while checking)

    WARNING: All BBS nodes should be DOWNed (offline) or inactive when utilizing
    	 the CHKSMB utility.

    The purpose of the CHKSMB utility is to insure that mail and/or message bases
    are valid.  If you suspect that your mail, or one of your message bases has
    become corrupted, you can run CHKSMB.  This will inform you of any possible
    corruption, and display information which may be useful in determining the
    cause of the corruption.

    Example command line:

    	CHKSMB \SBBS\DATA\MAIL \SBBS\DATA\SUBS\*.SHD

    to check your e-mail and sub-board data files for possible corruption.

    Most mail and/or message bases which are corrupted can be reconstructed
    (fixed) using the SMBUTIL program with the pack option.

    Message bases with corrupted index files must be fixed with the FIXSMB program.

## [15.2] - FIXSMB - Rebuild Synchronet Message/Mail Base

    usage: fixsmb [/opts] <smb_file>

     opts:
           m - mail format instead of sub-board format

       ex: FIXSMB /M C:\SBBS\DATA\MAIL
       or: FIXSMB C:\SBBS\DATA\SUBS\DEBATE

    Use the FIXSMB utility whenever CHKSMB shows that a message base has become
    corrupted due to problems with the index.

## [15.3] - SMBUTIL - Synchronet Message Base Utility

    usage: smbutil [/opts] cmd <filespec.SHD>

    cmd:
           l[n] = list msgs starting at number n
           r[n] = read msgs starting at number n
           v[n] = view msg headers starting at number n
           k[n] = kill (delete) n msgs
           i<f> = import from text file f
           s    = display msg base status
           c    = change msg base status
           m    = maintain msg base - delete old msgs and msgs over max
           p[k] = pack msg base (k specifies minimum packable Kbytes)
    opts:
           a    = always pack msg base (disable compression analysis)
           f    = fast msg creation mode
           d    = disable duplicate message checking
           z[n] = set time zone (n=min +/- from UT or 'EST','EDT','CST',etc)

    The SMBUTIL can be used for several things, but most importantly, it must be
    used for maintaining your Synchronet message base (using the 'm' command). This
    command causes SMBUTIL to mark old messages, and messages over the maximum sub-
    board limit, as deleted so that their spaces can be used by new messages. If
    you are using the 'Hyper Allocation' or 'Fast Allocation' method for your
    message bases, you must also use this utility to pack your message bases (using
    the 'p' command) periodically.  The pack command causes SMBUTIL to compress the
    message bases removing any unused spaces (messages marked as deleted).

    SMBUTIL maintenance and/or packing should be done using your daily event (or
    after importing from a network such as FidoNet).  If your message base is using
    the 'Fast Allocation' or 'Hyper Allocation' storage methods, you should run
    maintenance before packing (there is no reason to pack if you do not run
    maintenance!).	If your message base is set up for the 'Self Packing' method,
    you do NOT need to use SMBUTIL to pack, only to perform maintenance.

    Example batch file lines for SMBUTIL would read:

    for maintenance and packing (100k or more per sub):

    	SMBUTIL mp100 \sbbs\data\subs\*.shd

    for maintenance only (self-packing sub-boards):

    	SMBUTIL m \sbbs\data\subs\*.shd

    WARNING: All BBS nodes should be DOWNed (offline) when using SMBUTIL with the
    	 pack option!  To do this, set the SMBUTIL event to be 'Exclusive' in
    	 the SCFG program.

    When using the pack command, SMBUTIL will check to see if it is necessary for
    you to pack your message base, if you want to skip this checking and have it
    unconditionally pack the message base (useful when attempting to repair a
    corrupted message base), you should add the '/a' switch to the command line:

    	SMBUTIL /a p \sbbs\data\subs\*.shd

    The maintenance and pack commands are likely all that you will ever need to
    SMBUTIL for.

## [15.4] - SMBACTIV - Checks Synchronet Message Base Activity

    SMBACTIV.EXE is used to create a list of the number of users that are currently
    reading each message area (sub-board) on your BBS. If a message area has a
    very low number of active users, then it may be a waste of disk space and
    memory on your BBS.

    Before SMBACTIV is run, you must have your SBBSNODE environment variable set
    to point to a valid node directory. Example:

    SET SBBSNODE=C:\SBBS\NODE1

    SMBACTIV can be run with no parameters to display a list of all your sub-boards
    and the number of active users. If you wish to keep this list for reference,
    it is a good idea to redirect the output to a file or printer. Example:

    SMBACTIV > PRN

    You can also specify a maximum number of active users to include in the list
    of sub-boards as a paramter. Example:

    SMBACTIV 50

    would create a list of all sub-boards that have 50 or less active users. To
    create a list of sub-boards that have no active users, you would use:

    SMBACTIV 0

## [15.5] - ADDFILES - Adds Files to Synchronet File Database

    usage: addfiles code [.alt_path] [/opts] ["*user"] +list [desc_off] [size_off]

       or: addfiles code [.alt_path] [/opts] ["*user"]  file "description"

    available opts:

           a    import ASCII only (no extended ASCII)
           d    delete list after import
           e    do not import extended descriptions
           f    include file date in descriptions
           t    include today's date in descriptions
           i    include added files in upload statistics
           n    do not update information for existing files
           o    update upload date only for existing files
           u    do not update upload date for existing files
           z    check for and import FILE_ID.DIZ and DESC.SDI
           k    keep original short description (not DIZ)
           s    search for files in directory (no file list)
           *    use * in place of code for Auto-ADD of FILES.BBS
                use *filename to Auto-ADD a different filename

    example for importing FILES.BBS format:
           addfiles games +c:\lists\files.bbs

    example for importing DIRxx format:
           addfiles games +c:\lists\dir01 33

    SBBSNODE DOS Environment variable:

    The environment variable SBBSNODE must be set prior to running ADDFILES. Add
    the following line to your AUTOEXEC.BAT:

    SET SBBSNODE=C:\SBBS\NODE1

    Where, the path to NODE1 reflects the complete path of your NODE1 directory.

### Parameter Explanations:

    dir_code:

    The dir_code parameter is the first argument and is the internal code of the
    Synchronet file directory you are adding the files to. This parameter is
    not case sensitive. The dir_code parameter is required. Use * for Auto-ADD.

    .alt_path:

    If the files are located on an alternate file path, you can specify the
    alternate file path number by using the ".x" paramter, where 'x' is the
    number of the alternate path.

    /opts:

    If desired, you may specify a list of options. The available options are:

    A - Import ASCII character only (ignore any extended ASCII or control chars)
    D - If you want ADDFILES to delete the file list after importing it
    E - If you want ADDFILES to NOT import extended descriptions
    F - Automatically include the file date in the beginning of the description
    T - Automatically include the today's date in the beginning of the description
    I - Include files that are added in the system's upload statistics
    N - Do not update any information for files already in the database
    O - Only update the upload date for files already in the database
    U - Do not update upload date for files already in the database
    Z - Check for and import FILE_ID.DIZ and DESC.SDI as extended description
    K - Keep original short description (don't override with DIZ)
    S - Search for files in directory (no file list for names and descriptions)

    *user:

    The *user parameter sets the name of the uploader of the files to the
    string following the asterisk. An example would be: "*Digital Man". If an
    uploader is not specified, files will be added with "-> ADDFILES <-" as the
    uploader. The quotation marks are only necessary for uploader names of more
    than one word. The quotation marks are not used as part of the actual name.
    Example:

    *Joe		is OK
    *Joe Doe	is NOT OK
    "*Joe Doe"      is OK

    Multiple uploader names can be used if more than one file or file list is being
    added. Example:

    ADDFILES GAMES "*Bob" +FILES.BBS "*John Doe" TICTAC.ZIP "tic-tac-toe"

    The above command line would add the files listed in FILES.BBS using "Bob"
    as the uploader, and then add TICTAC.ZIP using "John Doe" as the uploader.

    file "description":

    You can specify individual filename and description pairs on the command line
    to add. The filename is NOT case sensitive and the description IS. The
    quotation marks are only necessary for descriptions of more than one word.
    Example:

    TICTAC.ZIP Tic-Tac-Toe		is OK
    TICTAC.ZIP Tic Tac Toe		is NOT OK
    TICTAC.ZIP "Tic Tac Toe"        is OK

    +list [desc_off] [size_off]:

    An ASCII text file list can be specified for adding to the database. The format
    of the file must be as follows (FILES.BBS lists work best):

    Filename and description on single line. Number of spaces between filename and
    	description doesn't matter.
    Filename must contain a period (.).
    	Example: TICTAC.ZIP	 is OK
    		 TICTAC ZIP	 is NOT OK
    		 TICTAC  .ZIP	 is OK
    Lines beginning with control characters or extended ASCII characters
    	are ignored (this includes blank lines).
    Up to 58 characters of description are used.
    Lines following a filename/description line that begin with space are
    	used as additional information for the description, and the entire
    	description is used as an extended description for the file as well.

    The name of the file list is specified on the command line after the plus (+)
    character. Example:

    ADDFILES GAMES +FILES.BBS

    If the file list is not located in the current directory, you must specify
    the complete path to the file list:

    ADDFILES GAMES +C:\LISTS\FILES.BBS

    If no filename/description pairs are given on the command line and no +list
    parameter is given, ADDFILES will attempt to use a file list with the dir_code
    as the filename and .LST as the extension.
    Example:

    ADDFILES GAMES

    Would add files to the GAMES directory using GAMES.LST as the file list. If
    GAMES.LST is can not be found, it will look for FILES.BBS in the current
    directory or in the directory's storage path.

    If a file list is specified on the command line, but is not found in the
    current directory, the storage path for that directory is searched. If the
    file list exists, it will be imported from there.

    desc_off:

    If a filelist is specified on the command line, a description offset can be
    specified as the next argument. If used, this parameter will specify at what
    column to start importing the descriptions. For PCBoard DIR file format, you
    should specify a description offset of 33. Example:

    ADDFILES GAMES +DIR10 33

    This offset is also used for the importing of any extended description lines.
    size_off:

    If a filelist is specified on the command line with a description offset,
    a file size offset can be specified too. If a file size offset is specified,
    the disk does not need to be searched for the size of the file to determine
    the credit value. This is useful for adding lists of files from a CD-ROM
    drive as it speeds up process since the CD does not need to be scanned for
    the file size. This parameter is also useful for importing off-line file
    lists, where the file doesn't actually exist on the drive. For PCBoard DIR
    file format, this offset should be set to 13. Example:

    ADDFILES GAMES +DIR10 33 13

## [15.6] - FILELIST - Generate Synchronet File Directory Listings

    Description:

    This utility creates an ASCII text file list of the files in a Synchronet file
    transfer database. This utility is useful for creating file lists for users to
    download, exporting into other programs, or for easy statistics reporting by
    the sysop.

    The default output is compatible with the FILES.BBS standard format. Options
    are available for enhancing the output for your needs.

    Understand that this is an EXPORT utility and is not necessary for the normal
    execution of Synchronet. This utility exports from the binary indexed file
    databases of Synchronet into ASCII text. If you are looking for a program to
    IMPORT files from ASCII into Synchronet, you need to look for the ADDFILES
    utility for Synchronet. If you are just trying to ADD files to your Synchronet
    database, then you need to read Sysop Commands - specifically the ";UPLOAD"
    sysop transfer section command.

    Syntax:

    usage: FILELIST [dir_code] [switches] outfile

    switches: /LIB name All directories of specified library
              /ALL      All directories in all libraries
              /NOT code Exclude specific directory
              /CAT      Concatenate to existing outfile
              /PAD      Pad filename with spaces
              /HDR      Include directory headers
              /CDT      Include credit value
              /ULN      Include uploader's name
              /ULD      Include upload date
              /DFD      Include DOS file date
              /DLD      Include download date
              /DLS      Include total downloads
              /NOD      Exclude normal descriptions
              /NOE      Exclude normal descriptions, if extended exists
              /EXT      Include extended descriptions
              /JST      Justify extended descriptions under normal
              /+        Include extended description indicator (+)
              /-        Include offline file indicator (-)
              /*        Short-hand for /PAD /HDR /CDT /+ /-

### Parameter Descriptions:

    Either the "/LIB name", "/ALL", or <dir_code> parameter must be included for
    a list to be generated. If you want to create a list of files for a single
    file directory, use that directory's internal code as the first parameter on
    the command line. If you want all directories in a certain library to be in
    the list, use the "/LIB name" switch - where "name" is the short name of the
    library you want to list. If the library short name is more than one word,
    you most puts quotes around the name (e.g. /LIB "short name"). If you want to
    include all the directories on your system in the list, use the "/ALL"
    parameter.

    If you want to exclude a specific directory from a library (when using the
    "/LIB" or "/ALL" parameters), use the "/NOT" switch and follow the switch
    with the internal code of the directory to NOT include in the list. If you
    wish to exclude multiple directories, you must use multiple "/NOT" switches.

    If you want the list to be appended to an existing file rather than overwrite
    the original file, include the "/CAT" switch on your command line.

    The default format for file names is non-padded (FILE.EXT). If you want the
    list to have the filename and extension in separate columns (like the file
    listings inside Synchronet), use the "/PAD" switch, so that "FILE.EXT" will
    be displayed as "FILE    .EXT".

    If you want a small header to be placed at the beginning of each directory,
    include the "/HDR" switch. The header contains the library short name, the
    directory long name, and the total number of files in the directory.

    If you want the credit value of the file (normally the same as the file size)
    included in the listing, include the "/CDT" switch on the command line.

    If you want the name of the uploader of each file to be included in the list,
    use the "/ULN" switch on the command line.

    If you want the date of the upload (in MM/DD/YY format) to be included in the
    list, use the "/ULD" switch on the command line.

    If you want the DOS file date to be included in the file listing, use the
    "/DFD" switch on the command line.

    If you want the date of the most recent download (in MM/DD/YY format) to be
    included in the list, use the "/DLD" switch on the command line.

    If you want the total number of downloads for each file included in the list,
    use the "/DLS" switch on the command line.

    If you DO NOT want the normal (58 character) description included in the file
    list, include the "/NOD" switch on the command line.

    If you want the normal description to be excluded only if an extended
    description exists, then use the "/NOE" switch. This is useful for generating
    file lists from a directory where the original descriptions were imported
    from an ASCII file list using ADDFILES. When using this switch, you do not
    have to include the "/EXT" switch.

    If you want extended descriptions to be included in the file list, use the
    "/EXT" switch on the command line.

    If you want extended descriptions to be automatically justified under the
    normal description, include the "/JST" switch on the command line. You do not
    have to include the "/EXT" switch if you use this switch.

    If you want the '+' identifiers for extended descriptions to be included in the
    list, use the "/+" switch.

    If you want the existence of each file to be verified and non-existent
    (offline) files to be indicated by a '-', use the "/-" switch. This switch
    should NOT be used for CD-ROM directories.

    To generate a list most closely resembling the internal Synchronet file listing
    format, use the "/*" switch. It is the same as including the "/HDR", "/CDT",
    "/PAD", "/+", and "/-" switches.

    SBBSNODE Environment Variable:

    Prior to running FILELIST you must set the SBBSNODE environment variable to
    the path of one of your NODE directories.

    Example:

    SET SBBSNODE=C:\SBBS\NODE1

    Examples:

    FILES.BBS

    If you want to create a simple FILES.BBS format listing of your GAMES directory
    (and the directory's internal code is "GAMES"), then use the following command
    line:

    FILELIST GAMES FILES.BBS

    This command line would create the file "FILES.BBS" in your current DOS
    directory with a list of the filenames and descriptions in your Synchronet
    GAMES file directory. This file could then be imported into another BBS package
    or used by another FILES.BBS compatible program for searching, sorting, moving
    or other file maintenance.

    FILELIST.TXT

    If you want to create a list of all the files on your BBS that closely matches
    the format of the internal Synchronet file listings, use the following command
    line:

    FILELIST /* /ALL FILELIST.TXT

    This command line would create the file "FILELIST.TXT" in your current DOS
    directory with a list of the filenames, credit values, and descriptions of
    all the files in your Synchronet file transfer database. A header for each file
    directory would be included and the filenames would be padded with spaces for
    easier viewing.

    To generate the same list, but include any extended descriptions as well, add
    the "/EXT" switch after the "/ALL" parameter.

    FILESTAT.TXT

    If you wanted to create a list of all the files on your BBS with detailed
    statistical information, you may want to use a command line similar to the
    following:

    FILELIST /* /ALL /NOD /ULN /ULD /DLD /DLS FILESTAT.TXT

    This command line would create a list of the files with the uploader's name,
    the date the file was uploaded, the date of the most recent download, and the
    total number of downloads. The "/NOD" switch would cause the descriptions to be
    excluded from the list. This list could then be used for statistic reports.
    It would be a fairly simple programming task to create a utility that read in
    this generated file and created file popularity graphs or a list of the most
    valued uploaders. The possibilities are endless.

    NOTE:

    The functionality of creating file lists is not limited to only this utility.
    There are commands to generate file lists (of both New files and All files)
    from the Temp Directory menu in the Synchronet transfer section. Users can use
    these commands to generate lists for download immediately. Also, QWK packets
    generated in Synchronet contain a file named "NEWFILES.DAT" - an ASCII text
    file containing a list of files uploaded since the user's last logon.

    The main advantages of this utility over the internal file list generation
    capabilities of Synchronet are its output format flexibility and compatibility
    with the FILES.BBS standard.

## [15.7] - DUPEFIND - Synchronet Duplicate File Finder

    DUPEFIND.EXE is used to find duplicate file names in your Synchronet file
    database. This is most useful for CD-ROM installations, where files may be
    duplicated on the CD-ROM and your hard disk. Duplicate files can be a waste
    of memory and disk space on your BBS.

    Before DUPEFIND is run, you must have your SBBSNODE environment variable set
    to point to a valid node directory. Example:

    SET SBBSNODE=C:\SBBS\NODE1

    DUPEFIND can be run with no parameters to search all of your file directories
    in Synchronet for duplicate file names. If you wish to keep this list for
    reference, it is a good idea to redirect the output to a file or printer.
    Example:

    DUPEFIND > PRN

    You can also specify a starting and ending library number to limit the search
    to certain libraries. Example:

    DUPEFIND 1 3

    would only search file libraries 1 through 3 for duplicate file names.

## [15.8] - DELFILES - Removes Files from Synchronet File Database

       usage: DELFILES <dir_code or * for ALL> [switches]

    switches: /LIB name All directories of specified library
              /NOT code Exclude specific directory
              /OFF      Remove files that are offline (don't exist on disk)
              /NOL      Remove files with no link (don't exist in database)
              /RPT      Report findings only (don't delete any files)

    Examples:

    If you wanted to remove ALL files that are offline (don't exist on disk) you
    would use the command line:

    	DELFILES * /OFF

    To remove files that exist on the disk but not in the Synchronet file database
    you would use:

    	DELFILES * /NOL

    Or to simply remove files that match the criteria specified in the SCFG program
    you would use:

    	DELFILES *

    The /NOT parameter is used to exclude certain directories:

    	DELFILES * /NOT GAMES /NOT TEXT

    Or you can specify a library name rather than a directory name:

    	DELFILES /LIB <library name>

    Appending /RPT to the command line will cause DELFILES to generate a report
    of files that would have been removed, but it will not actually remove any
    files.

## [15.9] - Synchronet MLABELS Utility

    The MLABELS utility is used to generate a list of mailing labels from a
    Synchronet user database. Two basic label forms are supported, single
    column (e.g. Avery 4145) and double column (e.g. Avery 4143). Specific
    groups of users to print labels for can be specified by level, flags,
    exemptions, or restrictions. If the BBS is real name based (no aliases), and
    the "Company Name" new user question is toggled on in SCFG, then the company
    name will appear at the top of the address and an ATTN: <User's Name> can
    optionally  be added to the end of the address (with the use of the "/A"
    command line switch).

    Syntax:

    	MLABELS C:\SBBS\DATA\USER [-required] [/options] <output>

    User Data Path

    The first parameter is the path to your USER.DAT file. The example given is
    the default location of the USER.DAT file ("\SBBS\DATA\USER").

    Requirements

    The second parameter, "-require" is optional. Use this parameter to specify
    a security requirement for the users to be included. Multiple "-require"
    parameters can be specified, and the syntax is as follows:

    -L#		set minimum level to # (default is 0)
    -M#		set maximum level to # (default is 99)
    -F#<flags>	set required flags for flag set # (Default is flag set #1)
    -E<flags>	set required exemption flags
    -R<flags>       set required restriction flags

    The syntax of the -require option is identical to the ALLUSERS utility, so
    please see the chapter on ALLUSERS for examples of how to use this parameter.

    Options

    The next parameter, if specified, are one or more valid option characters
    following the slash '/' character. The available option characters are:

    D		Double column labels
    A		Add ATTN: <Alias/Real Name> to the labels

    Output

    The last parameter is the name of the output file. If you want the output
    to go immediately to the printer, specify "PRN" as the output file.

    Example:

    	MLABELS \SBBS\DATA\USER PRN

    If you wish to view the labels before you print them, specify a filename.

    Example:

    	MLABELS \SBBS\DATA\USER LABELS.TXT

    Complete Example

    MLABELS \SBBS\DATA\USER -L50 -M59 -FP /DA PRN

    The above command line would create a double wide mailing list containing all
    users with security levels between 50 and 59 and flag 'P' from flag set #1,
    and send the output directly to the printer, adding "ATTN: <Alias/Name>"
    to the end of each label.

    Example label:

    John Doe
    555 Main St.
    Small Town, Ny 01234
    ATTN: Mr. Anonymous

## [15.10] - Synchronet QWKNODES Utility

    usage: qwknodes [/opts] cmds

     cmds: r  =  create ROUTE.DAT
           u  =  create USERS.DAT
           n  =  create NODES.DAT

     opts: f  =  format addresses for nodes that feed from this system
           a  =  append existing output files
           t  =  include tag lines in NODES.DAT
           l  =  include local users in USERS.DAT
           m# =  maximum message age set to # days

    The QWKNODES utility is used to scan through all the messages in all of your
    QWK networked sub-boards and create one or more lists:

    ROUTE.DAT

    The DATA\QNET\ROUTE.DAT file is automatically created and maintained by SBBS.
    It includes the routing necessary to get netmail from your BBS to any other
    QWKnet BBS (using Synchronet's QWKnet extensions) in your QWK network. Entries
    are automatically added, modified, and removed (when out-dated). You can use
    QWKNODES to create this file (by scanning your QWK networked message bases),
    but it isn't normally necessary.

    If you are a QWKnet hub and wish to create a ROUTE.DAT for your QWKnet nodes
    (other BBSs that call your BBS for QWKnet messages), you must include the
    /F command line option when creating the file (and DO NOT put that ROUTE.DAT
    in your DATA\QNET directory as the routing information will be incorrect for
    your system). This is a convenience for your QWKnet nodes which allows them to
    immediately send routed QWK netmail (without waiting for SBBS to create the
    ROUTE.DAT automatically while parsing incoming echomail).

    USERS.DAT

    The DATA\QNET\USERS.DAT file (if it exists) is used by SBBS to look-up user
    names on other BBSs in your QWK network when attempting to send e-mail to an
    unknown user name. The QWKNODES utility must be used to create this file (most
    likely via timed event). If the /L command line option is specified when this
    file is created, it will include the names of users that posted from YOUR BBS
    as well as all others in the network (not of any use to SBBS, but informative
    if you wish to create a list of ALL active users in your QWK network). Only
    users who are active in the message bases (on any of the BBSs) will appear in
    the USERS.DAT file.

    NODES.DAT

    While this file is informative (list of all QWKnet nodes that have generated
    messages in your QWKnet sub-boards) it is not used by SBBS currently. If the
    /T command line option is specified when this file is created, it will include
    a copy of each node's tagline in the list in addition to their QWK-ID and
    routing details.

    /A

    The /A option is used to append (concatenate) an existing output file. If this
    option isn't specified any existing output file (ROUTE.DAT, USERS.DAT, or
    NODES.DAT) will be truncated and overwritten.

    /M#

    The maximum message age option is used to specify a maximum age of messages
    (in days) to include in the list of messages scanned to obtain user/node
    /routing information from (example: /M90 to specify a maximum age of 90 days
    causing QWKNODES to ignore any messages older than 90 days). The default
    behavior is all messages (no maximum age).

    Note: Output files are created in the current directory.
          While it is possible to create all three output files from one
          execution of QWKNODES, the U command will cause duplicate entries
          in the NODES.DAT and ROUTE.DAT files. So it is best to create the
          USERS.DAT in a separate execution of the QWKNODES utility. Example:

    	QWKNODES RN	-> To create ROUTE.DAT and NODES.DAT
    	QWKNODES U	-> To create USERS.DAT

## [15.11] - Synchronet ALLUSERS Utility

    ALLUSERS can allow a sysop to modify the security settings for a large number
    of users with one command line. If you're a Synchronet sysop, you may have
    found yourself at one time or another going through the internal User Editor
    searching for users with a certain flag or exemption and changing their level,
    removing an exemption, adding a restriction, etc. The User Editor's ARS search
    facility is very quick and flexible, but having to hand modify each user, even
    with the use of macros, can be very tedious with a large user database.

    This program attempts to eliminate the monotony of such a task. With a single
    command line, you can change security levels, add/remove flags, exemptions,
    or restrictions to some or all of the users in your database. The syntax is
    pretty simple:

    Syntax

    ALLUSERS C:\SBBS\DATA\USER -require /modify

    User Data Path

    The first parameter, "C:\SBBS\DATA\USER" is the directory where your USER.DAT
    file is located. The example given is the default location of the USER.DAT
    file. If the USER.DAT is in the current directory, the path should be simply
    "." for current directory. This parameter is not optional.

    Requirements

    The second parameter, "-require" is optional. Use this parameter to specify
    a security requirement for the modifications to follow. Multiple "-require"
    parameters can be specified, and the syntax is as follows:

    -L#		set minimum level to # (default is 0)
    -M#		set maximum level to # (default is 99)
    -F#<flags>	set required flags for flag set # (Default is flag set #1)
    -E<flags>	set required exemption flags
    -R<flags>	set required restriction flags

    Examples:

    -L20  indicates that only users with a level of 20 or higher will be modified
    -M80  indicates that only users with a level of 80 or lower will be modified
    -FC   indicates that only users with flag 'C' from flag set #1 will be modified
    -F3G  indicates that only users with flag 'G' from flag set #3 will be modified
    -RA   indicates that only users with the 'A' restriction will be modified

    If multiple requirement parameters are specified, they must each begin with
    a dash '-' character and be separated by at least one space.

    Examples:

    -L50 -M59  indicates that only users between level 50 and 59 will be modified
    -RB -F2M   indicates that only users with the 'B' restriction and flag 'M' in
    	   flag set #2 will be modified

    Multiple required flags may be specified as well.

    Example:

    -F4AC	   indicates that only users with both the 'A' and 'C' flags from
    	   flag set #4 will be modified
    -EPLM	   indicates that only users with the 'P', 'L', and 'M' exemptions
    	   will be modified

    Modifications

    Next on the command line are one or more modification parameters. Each
    modification parameter begins with the slash '/' character. The available
    modification parameters are as follows:

    /L#			set level to #
    /F#[+|-]<flags> 	add or remove flags from flag set #
    /E[+|-]<flags>		add or remove exemption flags
    /R[+|-]<flags>		add or remove restriction flags

    Examples:

    /L20  indicates that all users' levels will be changed to 20
    /FA   indicates that flag 'A' from flag set #1 will be added to all users
    /F3-G indicates that flag 'G' will be removed from flag set #3 for all users
    /E+L  indicates that exemption 'L' will be added to all users
    /R-N  indicates that restriction 'N' will be removed from all users

    Flag set #1 is the default, so "/F1+A" and "/F+A" are equivalent.
    Addition of flags (+) is the default, so "/F+A" and "/FA" are equivalent.
    Flags and parameters are not case sensitive, so "/FA" and "/fa" are equivalent.

    Multiple modification parameters can be used.

    Example:

    /L40 /F2-Z   indicates that all users will be set to level 40 and have flag
    	     'Z' from flag set #2 removed

    Multiple flags per modification may be specified.

    Example:

    /RAB	     indicates that both 'A' and 'B' restrictions will be added to
    	     all users.

    Complete Examples

    To change all level 20 users to level 30, use the following command line:

    ALLUSERS C:\SBBS\DATA\USER -L20 -M20 /L30

    To give all QWKnet node users the 'M' exemption, use the following command:

    ALLUSERS C:\SBBS\DATA\USER -RQ /EM

    To give all users below level 90, the 'B' restriction, use the following:

    ALLUSERS C:\SBBS\DATA\USER -M89 /RB

    To give all users with level 50 or higher, the 'M' and 'L' exemptions:

    ALLUSERS C:\SBBS\DATA\USER -L50 /EML

    To remove flag 'C' from flag sets #1 and #2 from all users:

    ALLUSERS C:\SBBS\DATA\USER /F1-C /F2-C

## [15.12] - Synchronet AUTONODE Utility

    The AUTONODE utility is used for automatically finding an available local
    node for logon and running that node. You set the first local node number
    in SCFG->System->Advanced Options->First Local Auto-Node.

    In order for the AUTONODE utility to run, you must first set the SBBSCTRL
    and SBBSNODE environment variables. Add the lines:

    SET SBBSCTRL=C:\SBBS\CTRL
    SET SBBSNODE=C:\SBBS\NODE1

    to your AUTOEXEC.BAT file. If your CTRL or NODE1 directories are in a different
    locations, then specify the correct paths accordingly.

    This utility is useful for systems that have more than one local node. This
    eliminates the need for those users to change into an unused node directory
    and run SBBS. It will automatically find the first unused local node and
    take them to the logon prompt. When they logoff, they will return to the
    DOS prompt.

    If for some reason, you do not wish the user to automatically go to a logon
    prompt or to exit back to DOS after logoff, you can specify which command
    line to use when running SBBS. The default is "SBBS L Q", which tells
    Synchronet to take the user straight to the logon prompt and then quit back
    to DOS.

## [15.13] - Synchronet Node Display/Control Utility

    The NODE utility can be used to display or control the status of nodes from
    the DOS prompt or via batch files.

    usage: node [/debug] [action [on|off]] [node numbers] [...]

    actions (default is list):

    list        = list status
    anon        = anonymous user
    lock        = locked
    intr        = interrupt
    down        = shut-down
    rerun       = rerun
    event       = run event
    nopage      = page disable
    noalerts    = activity alerts disable
    status=#    = set status value (definition of status values at end of section)
    useron=#    = set useron number
    action=#    = set action value (definition of action values at end of section)
    errors=#    = set error counter
    conn=#      = set connection value
    misc=#      = set misc value
    aux=#       = set aux value
    extaux=#    = set extended aux value

    Before the NODE utility can be run, the SBBSCTRL environment variable must
    be set to point to your CTRL directory. Example:

    SET SBBSCTRL=C:\SBBS\CTRL

    Place this line in your AUTOEXEC.BAT file to automatically set this variable
    at boot-up. It is necessary for the NODE utility to find the shared node
    control files. If your CTRL directory is in a different location, use the
    correct path for the SET command.

    If you want to be able to run the NODE utility from any directory, you must
    have the NODE.COM program in one of your DOS search directories. Either copy
    this file into a directory already in your DOS search path, or add your
    Synchronet EXEC directory to your search path in your AUTOEXEC.BAT. Example:

    SET PATH=C:\DOS;C:\UTIL;C:\SBBS\EXEC

    (DOS and UTIL directory are included for example only).

    Running NODE

    To run the NODE utility, you must type the word "NODE", an action (ex: "LOCK"),
    then a list of nodes to take the action on (ex: "1 2 4 5"). If no node numbers
    are specified, it is assumed you wanted to perform the action on ALL nodes.

    Some actions can have an option "ON" or "OFF" state specified. Typing "NODE
    LOCK 1" would toggle the "locked" state of node 1. If it were previously off,
    it would be set to on. To be sure you are setting the state to either on or
    off rather than toggling, you may specify on or off (e.g. "NODE LOCK ON 1"
    would set the locked state of node 1 to on).

    Some actions are setting a value for the node status. These actions are listed
    with "=#" after the action word. This indicates that you must specify a numeric
    value for that status option (e.g. "NODE USERON=1 5" would set the current
    user number on node 5 to 1).

    The optional "/debug" switch can be used to view the current numeric values
    associated with the node status.

    Example Usage

    Example #1: To list the status of all your nodes, type

    NODE LIST

    Example #2: To lock node 1, type

    NODE LOCK ON 1

    Example #3: To unlock nodes 1 and 2, type

    NODE LOCK OFF 1 2

    Example #4: To set the status of node 3 to "Offline", type

    NODE STATUS=5 3

    Example #5: To interrupt and lock node 4, type

    NODE INTR ON 4 LOCK ON 4

    Example #6: To clear the error counter of all nodes, type

    NODE ERRORS=0

    Example #7: To toggle the "rerun" status of all nodes, type

    NODE RERUN

    Example #8: To down node 2, type

    NODE DOWN ON 2

    Definition of Numeric Values

    Possible Node Status Values:

    0	Waiting for call
    1	At logon prompt
    2	New user applying for access
    3	User online
    4	User online in quiet mode
    5	Offline
    6	Networking
    7	Waiting for all nodes to become inactive before running timed event
    8	Running timed event
    9	Waiting for timed event node to finish running event

    Possible Node Action Values:

    0	Main Prompt
    1	Reading Messages
    2	Reading Mail
    3	Sending Mail
    4	Reading G-Files
    5	Reading Sent Mail
    6	Posting Message
    7	Auto-message
    8	Running External Program (aux=program number)
    9	Main Defaults Section
    10	Transfer Prompt
    11	Downloading File (aux=estimated time of transfer completion)
    12	Uploading File
    13	Bi-directional Transfer (aux=estimated time of transfer completion)
    14	Listing Files
    15	Logging on
    16	In Local Chat with Sysop
    17	In Multi-Chat with Other Nodes
    18	In Local Chat with Guru
    19	In Chat Section
    20	Sysop Activity
    21	Transferring QWK packet
    22	In Private Chat (aux=node chatting with)
    23	Paging another node for Private Chat (aux=node being paged)
    24	Retrieving file from a sequential device (aux=device num)

    Bits Used in Node Misc:

    0       Anonymous User
    1       Locked for sysops only
    2       Interrupted - hang up
    3       Message is waiting for user
    4       Paging disabled
    5       Activity Alert disabled
    6       User data has been updated by another node
    7       Re-run this node when logoff
    8       Must run node event after logoff
    9       Down this node after logoff
    10      Reset private chat
    11	Message is waiting for node

## [15.14] - UTI Driver

    This UTI driver complies with UTI Driver Specification Rev 2.1 by Kip Compton.
    This driver is for use with PostLink v1.05+ and possibly MegaMail.

    Copy the UTI driver files:

    	UTIVER.EXE		Returns UTI version number (2)
    	UTILIST.EXE		Generates list of conferences (sub-boards)
    	UTIHIGH.EXE		Returns highest message number in a conference
    	UTILSTRD.EXE		Generates list of message pointers for a user
    	UTIIMPRT.EXE		Imports messages into a conference
    	UTIEXPRT.EXE		Exports messages from a conference

    into your PostLink directory, or another directory that is in your DOS search
    path.

    The UTIDOOR.EXE program is not part of this driver set, since Synchronet can
    generate a UTIDOOR.TXT file internally.

    You may need to know that the conference identifiers, as well as the name of
    each conference, is the same as the Synchronet internal code for each
    conference. This allows you to modify your message base configuration in
    Synchronet without having to immediately "Update" the network or mail software
    conference list to avoid a catastrophe. However, you should still "Update" the
    network or mail software to avoid configuration confusion - especially when
    deleting sub-boards.

    ERROR LEVELS

    If one of the UTI driver programs exits with an error level, you can define
    the error with the following table. If the UTI driver program exits with an
    unlisted error level, please contact Digital Dynamics.

    Level	Description
    1	Syntax error on command line
    2	Cannot open/create UTI text file
    3	Memory allocation error
    4	Too many messages in a conference to import
    5	Cannot open Synchronet message data file
    6	Cannot open Synchronet message index file
    7	Unrecognized Synchronet sub-board code
    8	Cannot open Synchronet user name data file
    9	Cannot find user name in Synchronet user database
    10	Cannot open Synchronet message pointer index

    If you get an error 2, 5, 6, 8, or 10, you may want to double check the number
    of files handles you are reserving in your CONFIG.SYS file (FILES=# statement)
    and try increasing it.

    If you get an error 3, then you need to make more DOS memory available to the
    UTI driver and the parent program (i.e. PostLink).

## [15.15] - System/Node Statistics Log Viewing Utility

    Usage: slog [path]

    where path is the directory where CSTS.DAB is located. If your SBBSCTRL
    environment variable is set and no path is specified, it will use the system's
    statistics file located in the CTRL directory. To set your SBBSCTRL environment
    variable, add the following line to your AUTOEXEC.BAT:

    SET SBBSCTRL=C:\SBBS\CTRL

    Make sure the path is the correct path for the Synchronet CTRL directory in
    your configuration.

    If you want to list the statistics of a specific node on your system (same as
    using the ;NLOG command from the main menu, or the 'N' WFC command), specify
    the path for that node on the command line. Example:

    SLOG C:\SBBS\NODE1

    If a path is not specified and the SBBSCTRL environment variable is not set,
    the current directory will be searched for CSTS.DAB.

    The output of SLOG can be redirected to a file or printer for easy viewing.
    Example:

    SLOG > PRN

    or

    SLOG > SLOG.TXT

## [15.16] - Daily Statistics Editor Documentation

    Description:

    DSTSEDIT (Daily Statistics Editor) is used to edit the statistic values of your
    BBS that are stored in the DSTS.DAB file in your CTRL directory. There is also
    a separate DSTS.DAB file in each node directory which stores the statistic
    values for that individual node. This utility can be used to edit either of the
    two statistic types: System or Node.

    Usage:

    To edit your system's statistics, you can either run DSTSEDIT with your CTRL
    directory as the current directory, or run DSTSEDIT with the path of the
    CTRL directory as an argument.

    	Example: DSTSEDIT C:\SBBS\CTRL

    To edit an individual node's statistics, you can either run DSTSEDIT with the
    node's directory as the current directory, or run DSTSEDIT with the node's
    directory as an argument.

    	Example: DSTSEDIT C:\SBBS\NODE1

## [15.17] - TOTALS: External Programs Credit Gain/Loss Log Totaling Utility

    The TOTALS.COM utility is used to generate a total gain/loss of multiple log
    files created by SBBS external programs that adjust user credits and log the
    adjustments in text files. Each file containing one line that contains the
    gain/loss value in credits. It is a positive value if it had net winnings
    (took more credits than it gave), and negative value if it had a net loss
    (gave away more credits than it took). The Synchronet external programs that
    currently generate such logs (by running the program with the /L option) are
    Synchronet Blackjack, Dice War, and Domain Poker.

    usage:	totals <log files [...]>

    	examples:

    		totals *.log
    		totals 06*.log 07*.log 080192.log

## [15.17] - ANS2ASC

    ANSI to Synchronet Ctrl-A message format conversion utility

    This utility will convert basic non-animated ANSI files into Synchronet Ctrl-A
    code files that can be displayed to color or monochrome ansi users with
    attractive results as well as non-ansi users. This allows you to use an ANSI
    drawing program (such as TheDraw) to create your menus in ANSI and convert the
    ANSI file to Ctrl-A message format for your .ASC or .MSG version. Or you can
    use the converted file for all users by keeping the ANSI (.ANS) version in
    a directory other than TEXT\MENU.

    If, for example, you create a main menu with an ANSI drawing program that you
    want your ASCII and monochrome ANSI users to see with attractive output, use
    ANS2ASC to create the .MON and .ASC versions.

    Type: ans2asc main.ans main.mon
    in your TEXT\MENU directory to create the monochrome version.

    Type: ans2asc main.ans main.asc
    in your TEXT\MENU directory to create the ASCII version.

    If you rename MAIN.ANS or move into a directory other than TEXT\MENU, then
    you will not need the .MON version as the .ASC version will be used for all
    terminal types.

    This utility is also useful for creating colorful system, newuser, feedback
    and other Synchronet .MSG files for display. For example, create
    TEXT\SYSTEM.ANS with your favorite ANSI editor and then convert to .MSG by
    typing: ans2asc system.ans system.msg

    Be aware that ANSI animation codes are NOT supported since there aren't Ctrl-A
    equivalents. The following ANSI codes (preceded by <ESC>[) are supported:

    ANSI Code 	Ctrl-A Code	Explanation (* indicates not supported by IBM)
    2J		L		Clear Screen
    #C		7Fh-FFh 	Move cursor right # columns
    0m		N		Normal attribute
    1m		H		High intensity
    2m		N		Low intensity *
    3m		I		Italic *
    4m		I		Underline *
    5m		I		Blink
    6m		I		Rapid Blink *
    7m		H		Reverse Video *
    8m		E		Concealed text *
    30m		K		Foreground black
    31m		R		Foreground red
    32m		G		Foreground green
    33m		Y		Foreground yellow
    34m		B		Foreground blue
    35m		M		Foreground magenta
    36m		C		Foreground cyan
    37m		W		Foreground white
    40m		0		Foreground black
    41m		1		Foreground red
    42m		2		Foreground green
    43m		3		Foreground yellow
    44m		4		Foreground blue
    45m		5		Foreground magenta
    46m		6		Foreground cyan
    47m		7		Foreground white

## [15.18] - ASC2ANS

    Converts Synchronet Ctrl-A file to ANSI escape sequences.

    This utility allows you to convert files that use Ctrl-A codes into ANSI files.
    (the opposite of the ANS2ASC utility).

    The syntax is: asc2ans main.asc main.ans

    The extension for the input file will most likely be .ASC or .MSG and the
    output file should be .ANS.

    This utility is also useful for viewing files with Synchronet Ctrl-A codes from
    the DOS prompt.

    Example: asc2ans main.asc con

    This will read from the Ctrl-A file MAIN.ASC and write to your screen using
    ANSI escape sequences.

Back to Top

Copyright © 2000 by Rob Swindell
Synchronet BBS Software (Synchronet) Version 3 is comprised of several documentation,
library, executable, and source code files, all of which are covered by the
GNU General Public License with the exception of the following portions covered by
the GNU Lesser General Public License: SMBLIB and XSDK.
Synchronet Version 2 (for DOS and OS/2) and its source code was released to the
Public Domain by Digital Dynamics in 1997 and remains Public Domain software today.
Synchronet Version 3 is not Public Domain software.

Rob Swindell
PO Box 501
Yorba Linda, CA 92885
http://www.synchro.net

For the complete Copyright Information please read the Copyright Documentation .