#
#  This is the LBBS wide config file.
#
#  I've tried not to impose limits upon the application where I don't
#  have to.  It is possible to completly cock-up the below making the
#  system unusable, no sanity checking is done with many of the params.
#
#  If you do try stupid things then expect it to crash, but don't expect
#  to loose any items because it crashes.  So feel free to experiment ]:->
#
#  Darryl G7LED
#
#
#  Currently some of the commands below are unsupported by any of the
#  applications, they are there as a reminder to me.
#  
#
MySystem =	G7LED
#
MySystemHA =	G7LED.GB7MIP.#29.GBR.EU
#
HomeDir =	/usr/lbbs
#
BinDir =	/usr/lbbs/bin
#
#  This is where LBBS specific temp files will go, moved away from /tmp as
#    rename() will fail across devices (of course).  I did not consider the
#    open(), read(), close(), open(), write(), close() benificial.
TempDir =	/usr/lbbs/tmp
#
#   This is the spool tree.
SpoolDir =	/usr/lbbs/spool
#
#   This is where the reference count files for each id is held.
IdSpoolDir =	/usr/lbbs/spool/id
#
#  If we get problems somewhere, it is hoped the job will be assigned to
#    the bad spool, if it fails getting to the bad spool for some reason
#    then somthing is seriously wrong.  The incident should also be logged
#    automatically.
BadSpoolDir =	/usr/lbbs/spool/bad
#
#  Configuration file tree.
ConfigDir =	/usr/lbbs/etc
#
#  System speific config file.
SystemConfig =	Systems
#
#  Field swaping config file
SwapConfig =	Swap
#
#  Peer proposal rejection config file
RejectConfig =	Reject
#
#  Filter config file
FilterConfig =	Filters
#
#  Global free-for-all logfile.
LogFile =	Log
#
#  Processed bulletin logfile.		## TODO ## TOTEST ##
#  NOTE: If this is not set, it will not log anything.  So disabling it.
BulletinLog =	log
#
#  Bulletin routing file
FeedConfig =	/usr/lbbs/etc/Feed
#
#  Personal routing file
RouteConfig =	/usr/lbbs/etc/Hroute
#
#  LBBS history file.
History =	history
HistoryWait = 50000
HistoryTries = 120
#
#  Processed personal message (and ACKs) logfile.
#  NOTE: If this is not set, it will not log anything.  So disabling it.
PersonalLog =	plog			## TODO ## TOTEST ##
#
#  WhitePages database file.
WhitePageDB =	wpdb
#
#  WhitePages logfile.
#  NOTE: If this is not set, it will not log anything.  So disabling it.
WhitePageLog =	wlog
#
WhitePageWait = 50000
WhitePageTries = 120
#
#  Transaction logfile, this will log all offers made and received and the
#    responses associated with each.  An entry will only appear once a valid
#    response has been received or for each valid proposal received.
#  NOTE: If this is not set, it will not log anything.  So disabling it.
TransactionLog =	olog
#
#
#  Various Binaries...
#
#
bbsrx =		/usr/lbbs/bin/bbsrx
#
bbstx =		/usr/lbbs/bin/bbstx
#
bbs-spool =	/usr/lbbs/bin/bbs-spool
#
bbs-inject =	/usr/lbbs/bin/bbs-inject
#
spnews =	/usr/lbbs/bin/spnews
#
BinGzip =	/usr/bin/gzip
#
BinGunzip =	/usr/bin/gunzip
#
#  FBB [..BF..] compression/decompression binary.
FbbBinLzhuf =	/usr/lbbs/bin/lzhuf
#
#  FBB [..B1F..] compression/decompression binary.
FbbBinLzhuf1 =	/usr/lbbs/bin/lzhuf1
#
#   Bulletin to netnews mapping file
GatewayConfig =	/usr/lbbs/etc/Gateway
#
#   Personal to netnews mapping file
MailGatewayConfig =	/usr/lbbs/etc/MGateway
#
#
RLineLength =	79
#
# %D = GMT Date, %T = GMT Time, %X = Time Zone, 
# %d = Local Date, %t = Local Time,
# %H = HA, %S = Software, %V = Version, %I = ID
RLineFormat = 	"R:%D/%T @:%H [Solihull] %S v%V $:%I"
#
#
IDLength =	12
#
#  %X = Seq number 5 digits, %A = System name.
#  Leave this undefined and it'll use BID format.
#MIDFormat =	%a_%A
MIDFormat =	%a_G9LED
#  Leave this undefined and it'll try using the MIDFormat if that is not
#   defined it'll use a default algo of some description.
#
#  The Numbering component is expanded to fill the space
#    IDLength - MIDFormat/BIDFormat, the result is IDLength long.
#
#  %A = MySystem
#  %a = Alpha-Numberic unique component
#  %d = Decimal unique component
#  %x = Hex unique component
#BIDFormat =	%a%A
BIDFormat =	%aG9LED
#  
#  There are a number of ID algos, to generate unique part.
#   = 0 : Sequential file in SpoolDir/localid/
#   = 1 : Based on system time (when combined with Alpha-Numeric numbering
#         will make it wrap round in:
#                                    19 days  if 4 chars (not advised!)
#                                     2 years if 5 chars
#                                    69 years if 6 chars
#
#  NOTE: The only problem with the Alpha-Num numbering it that certain
#        combinations of letters/numbers will resemble valid/active amateur
#        callsigns.  So what?  as long as we all stick to the left side with
#        the uniqueness and the right as the call.  Of course if you wish to
#        be different ammend BID/MIDFormat ]:->...
#
IDUniquenessAlgo =	1
#
#
QueueFilePrefix =	Q
#
ActiveFilePrefix =	A
#
BadFilePrefix =		B
#
TxLockFilePrefix =	TX
#
DeferQueueFile =	/usr/lbbs/spool/DQueue
#
#  If my peer offers me an article and I do a defer check, if the entry in
#    the defer file is older than <DeferQueueTimeout> seconds I disregard
#    its existance.  Effectively accepting the article this time round.
#  NOTE: Something is getting desporate if this ever gets used!
DeferQueueTimeout =	14400
#
#  This is the amount of time (in seconds) which this machine will wait for,
#    before it offers a previously defered item back to the peer.
#  Many specs state that once a message is defered it should be offered at
#    the next forwarding session.  But, I think this is wrong, shock horror
#    what is my forwarding session (once open) never closes until I shutdown
#    (some months later!).  If you want this behavior set this to 0,
#    otherwise if you'd like it to be offered again during *this* forwarding
#    session specify how long it should wait before doing so.
DeferedWait =	1800
#
# Personal, then Ack, then Bulletin.
QueuePriority =		PAB
#
#
#   Old Fwding is when it does not support the 'OK\r' or 'NO\r' response to
#    the 'SP' or 'SB' commands, such that it will accept all items.
MblOldFwding =	off
#
#   Enable AA4REs extended responses, OK, NO, LATER, REJECT.
ExtendedResponses = on
#
#  This is the place where half transfers will be stored for FBBs restart
#    feature.  No in system removal of *old* half transfers is done, this
#    should be left to an outside application.  (old being those left over
#    and never used)
#  NOTE: There is no default for this, if no defined it will not save
#        any half transfers at all.
FbbSaveSpool =		/usr/lbbs/spool/fbb
#
#
#
BannerFile =		login.txt
#
# %T = Time '18:20', %U = Logged in user in UPPERcase, %A = This host call.
Prompt =		"%T %U"
#  Timeout for command				## TOTEST ##
Timeout1 =		1800
#  Timeout while in command			## TOTEST ##
Timeout2 =		1800
#  Timeout after my last proposal before discing	## TOTEST ##
TimeoutHang =		60
#   30 seconds, in milisecs.
TimeoutHangScanIval =	30000000
#
#  Ax25tmp accountancy, for a nice pretty connection list in the LODE
#	app.
Ax25tmp	=		on
#
#
#  *** bbsd ***
#
#  These are global, so there is no point setting them in 'Systems'
#
#  Time in seconds which bbsd is to scan the mail queue for mail.
DaemonSleepTime =	600
#
#  If a queue file has not been modified for <DaemonIdleQueueTime> seconds,
#    it will connect in an attempt to reverse forward.  ## TODO ##
#DaemonIdleQueueTime =	0
#
#
#
# Fbb batched proposals, setting this off will drop it back to MBL.
Fbb =		on
# Enable FBB compression
FbbComp =	on
# Enable FBB compression - type 1 (is FBB itself really broken here? on restart)
FbbComp1 =	on
# Enable FBB compression - type 2 (unsupported - I would swear I've seen
#                                  this in someones SID!)
FbbComp2 =	off
# Maximum number of jobs per batch
FbbMaxBatch =   5
# Maximum size of a batch (I dunno why as it's all gonna come across in the
#    end, and no overhead is lost at all, only gained by setting this to 0!)
# Setting to 0 disables this, and setting to less than the first offered
#    message size is okay as it's not checked.  i.e. setting to 1 byte will
#    effectively only allow the first message to come through.  Use the
#    'Reject' facilty to stop large messages if you wish.
FbbMaxBatchSize =       0
#
#
# If this is set on, then the FBB restart mechanism is only given one attempt
#  to forward it.  I.e. the message has already been attempted once, it is
#  only given one more attempt to complete it using the 'FS !xxxx' format.
#  If this 2nd attempt is unsucessful the part of the message is no saved, so
#  the next attempt will have the start from scratch.
# NOTE: It appears (quick observ) FBB has the behaviour of this switched on.
FbbRestartOneShot =	off
#
#
#
# A draft copy of some BBS specifications was bunged my way a while ago,
#  and I believe all but the timezone part if fully implemented, but I've
#  been made aware that the BBS package 'DieBox' produces R: lines like:
#
#   R:950101/0001z @G7LED.GB7MIP.#29.GBR.EU [Solihull, IO92CJ, OP: G7LED]
#
# This has no colon ':' between the @ and the HA, and the
#  "BBS Interface Specification,  Working Draft,  4/7/93" states it should
#  have one.  I can only consider it broke, so here you have the option of
#  breaking your system to 'conform'.
# NOTE: I've just seen a chaps TPK R: line, with NO colon, Arrrggghhh!
#       I have a feeling this maybe (mis)configuration by the user though.
AcceptDieBoxRlines =	yes
#
#
#  While forwarding with an RLI system, it was sending back what appear to
#    be illegal proposals:
#
#    e.g.:  SB @ GBR < G9FOO $1_G9FOO
#
#  My interpretation of the "BBS Interface Specification,  Working Draft,
#    4/7/93" would have it that a NULL TO field is not legal.  But
#    the sending of the proposal IS illegal as it breaks the proposal
#    syntax.  The cloud arizes in the error handling of this situation
#    which should never exist to start with.  Originally LBBS sent back a
#    message "*** Error, no TO field.\r" and then proceeded to disconnect.
#    The peer would still have this message queued and offer it again and
#    again.
#  I can only consider the peer BBS broke :-), so here you have the option of
#    breaking your system to 'conform'.
AcceptBrokenProposalsWithNullTo =	no
#
#
#  Dave Brown (G7PIT) reported an apparent bug in FBB, that is FBB will
#    forward a message with an effectively zero length Subject under it's
#    own protocol.  This results in a message in the LBBS log of
#    "Bad spec, subject field too short in compressed msg".  The work
#    around has been to manually reject the specific ID in the 'Reject'
#    file.
#
#  A quote from the FBB specification for the message Header block:
#    <SOH> 1 byte = 01 hex
#    Length of the header 1 byte = Length from the title,
#                               including the two <NUL> characters.
#    Title of the message 1 to 80 bytes
#    <NUL> 1 byte = 00 hex
#    Offset 1 to 6 bytes
#    <NUL> 1 byte = 00 hex
#
#  Is it me?  A bad translation?  Or really a bug?  Are we meant to take
#    BBS specs this literally, or all do our own thing?
#
#  I can only consider FBB broke, so here you have the option of
#    breaking your system to 'conform'.
AcceptBrokenFbbProtocolWithNullSubject =	yes
#
#
#  When operating with MBL forwarding, this will send a 'F>' once we
#    have nothing further to send.  This only affects bbstx.
#  NOTE: I supose it would be easy enough to defer everything FBB sends
#        if this is off, but for now it doesn't.
ReverseFwd	=	off
#
#  If it's illegal for you to *respond* to a reverse forward request from
#    the Peer system then this will not respond to it (even when jobs are
#    in the queue file waiting for delivery.  With MBL is sends back a
#    "*** Done\r>\r" sequence.  When using FBB it will send back "FF\r"
#    as if to say there is nothing here.
ReverseFwdAllow	=	on
#
#  This affects bbstx.  In that it will cause it to connect upon every,
#    invocation even if there is NO mail to send.  Setting this option on
#    and switching ReverseFwd off is pointless.
# NOTE: This is similar to the command line arg for bbstx of -f.
ReverseFwdChk	=	off
#
#  If you are offered any mail with FBB this will defer it, if set off.
# NOTE: Only useful when debugging and you wish to defer *everything*.
ForwardAccept =	yes
#
#
#  This is the LBBS incoming spool where items are dumped for batch
#    input processing.
BatchSpoolDir = /usr/lbbs/spool/incoming
#
#  The number of attempts LBBS will make to create a unique file in the
#    spool dir.
BatchTries = 100
#
#  If this file exists, LBBS will take each article as it comes and pipe
#     immediatly into bbs-inject.  The BBS forwarding will hang slightly
#     waiting for bbs-inject to complete (and/or put the article into a
#     safe state in $BatchSpoolDir).
BatchProcess = /usr/lbbs/etc/inject.immed
#
#  This is where net news items will be spooled to.  If they can not be, then
#     the slow /usr/bin/rnews will be used instead.
RnewsBatchDir = /usr/spool/news/in.coming
#
#  The number of times it will attempt to create a unique file in
#     $RnewsBatchDir.
RnewsBatchTries = 100
#
#  I personallly use Cnews and this is the location of the Cnews history
#     file, default is /usr/lib/news/history if not defined.
NetnewsHistory =	/usr/local/lib/news/history
#
#  This is the base of the netnews (Cnews) spool tree.
NetnewsSpool =	/usr/spool/news
#
#  If not defined, or set to 'text' it will perform linear searches when
#     retrieving items.  Otherwise if you have Cnews using dbz files to
#     speed up hjistory file access, then you can set this to dbz.
NetnewsMethod =	dbz
#
#  This will stop bbs[tr]x from taking in any items if the HomeDir or
#    SpoolDir devices have less than these K bytes free.  If set to 0 no
#    test will be performed.
MinSpaceFree = 1024
#
#
#  ******** BBS->TCPIP Gateway header formats ********
#
#  %I = jp->id
#  %T = jp->to
#  %F = jp->from
#  %A = jp->at
#  %B = jp->at up to first '.'
#  %C = Last Rline HA
#  %D = Last Rline HA up to first '.'
#  %S = jp->subject
#  %R = Last rline, in rlines
#  %P = Peer it came from
#  %N = SystemName (in uppercase)
#  %H = SystemNameHA (in uppercase)
#
#   CASE convertion modifiers
#
#  %T  will leave alone
#  %+T will convert to uppercase
#  %-T will convert to lowercase
#
#
#  GwNN..... is for NetNews headers
#  GwMM..... is for Mail headers
#
#
# Newsgroups:
#   The GatewayConfig sets this.  A T: will override this.
# GwNNNewsgroups =	""
#
# To:
#   The MailConfig sets this.  A T: will override this.  (But who should
#     know better?  The sender or the gateway?  IMHO I think the gateway
#     should, it's closer so more up to date).
# GwMMTo =		""
#
# From:
GwNNFrom =		"%-F@%-D.nts"
GwMMFrom =		"%-F@%-D.nts"
#
# Reply-To:
GwNNReplyTo =		"%-F@%-D.nts"
GwMMReplyTo =		"%-F@%-D.nts"
#
# Date:
#   Fixed to last R: line time.  A T: will override this.
# GwNNDate =		""
# GwMMDate =		""
#
# Subject:
#   Fixed to NTS subject (but this is truncated to 80 chars I believe with
#     FBB - ok so it's a reasonable length).   A T: will override this.
# GwNNSubject =		""
# GwMMSubject =		""
#
# Message-ID:
GwNNMessageId =		"%I@hamradio"
GwMMMessageId =		"%I@hamradio"
#
# Path:
#   Currently fixed to R: line path.  But some options will appear sometime
#     to give you a say in this.
# GwNNPath =		""
# GwMMPath =		""
#
# Distribution:
#   %B because some systems use GBR.EU.  (I need more info on this as opposed
#     to just GBR.)
GwNNDistribution =	"bbs.%-B"
#
# BBS-Reply-To:
GwNNBReplyTo =		"%R"
GwMMBReplyTo =		"%R"
#
# BBS-Message-ID:
GwNNBMessageId =	"%I"
GwMMBMessageId =	"%I"
#
# BBS-Newsgroups:
GwNNBNewsgroups =	"%T @ %A < %F"
#
# BBS-To:
GwMMBTo =		"%T @ %A < %F"
#
# BBS-Gateway:
#    You have no option in this, this is in there for my own debugging
#      purposes.  Your distribution either has it, or does not.
#
#
Debug = 0
#Debug = 256
#Debug = 65535
