Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

This is an old revision of the document!


Table of Contents

FIXSMB - Rebuild Synchronet Message/Mail Base

The fixsmb utility is used for repairing specific types of Synchronet message base corruption where the message base index file (*.sid) would benefit from being rebuilt. In addition to the index file, the following message base files are updated or rebuilt by fixsmb:

  • header allocation (*.sha) - not applicable to hyper-allocated message bases
  • data allocation (*.sda) - not applicable to hyper-allocated message bases
  • hashes (*.hash) - rebuilt when renumbering, updated with any missing hashes otherwise

Fixsmb will also make the following changes to the header file (*.shd) file:

  • The INTRANSIT attribute flag is removed from all messages that have it set
  • The DELETE attribute flag is (optionally) removed from all messages that have it set
  • The message base/status header is updated to reflect the correct total number of messages and last message number

As part of this rebuilding process, fixsmb may also re-number all of the messages in a message base (the -renumber option), but that is generally considered a bad idea, especially for public message areas (sub-boards). Re-numbering the mail base (data/mail) is not as big of deal, but still, don't renumber a message base unless you have to.

During a message base rebuild, fixmsb may also “undelete” (restore to the index) any messages whose headers are still in tact, but were previously removed from the index due to being marked for deletion. The DELETE message attribute will also be removed from all messages in the message base when the -undelete option is used.

Usage

The fixsmb utility does not read Synchronet configuration files, so it won't know where to find message base files (i.e. stored by default in data/subs for sub-boards) unless you specify the path to the message base file(s) to operate on or the files are in the current working directory.

The BBS should be offline while using fixsmb to rebuild Synchronet message base files.

Syntax

usage: fixsmb [-renumber] [-undelete] <smb_file> [[smb_file] [...]]

Note: Although multiple message bases may be specified on the command-line (e.g. using wildcards, e.g. *.shd), it's a good idea to only use fixsmb on message bases that need it (e.g. report index or allocation related errors when scanned with chksmb).

Repair

The fixsmb utility can only repair specific types of corruption, specifically corruption related to the index, allocation, and hash files. Other types of corruption (e.g. in the header or data files) cannot be fixed using fixsmb. See smbutil and scrubmsgs for other message base repair options to address other types of message base corruption.

See Also