This is an old revision of the document!
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.