Updated COMET.DOC, COMET.QA, COMET.SAM to version 1.01 with changelog. Fixed DOS build: removed StrUtils dependency, guarded SO_SNDBUF for Watt-32, added IFDEF UNIX around CometTcpRecv EINTR retry loop for Windows. Release archives and TIC files for all 5 platforms.
417 lines
15 KiB
Plaintext
417 lines
15 KiB
Plaintext
; =========================================================================
|
|
; COMET.CFG - Comet Mailer Daemon Configuration
|
|
; Version 1.01
|
|
; =========================================================================
|
|
;
|
|
; This is a sample configuration file for the Comet FidoNet mailer.
|
|
; Copy this file to COMET.CFG and edit it for your system.
|
|
;
|
|
; Lines beginning with ; are comments.
|
|
; Inline comments: anything after ; on a line is ignored.
|
|
; Values with spaces must be quoted: SystemName = "The Danger Zone"
|
|
;
|
|
; Run CSETUP for interactive configuration, or edit this file directly.
|
|
;
|
|
; =========================================================================
|
|
|
|
|
|
; =========================================================================
|
|
; [System] - Your FidoNet identity
|
|
; =========================================================================
|
|
;
|
|
; These settings identify your system to remote nodes during sessions.
|
|
; At least one Address is required. Multiple addresses are supported
|
|
; for systems that are members of multiple networks.
|
|
|
|
[System]
|
|
|
|
; Your FidoNet address(es). Format: zone:net/node or zone:net/node.point
|
|
; You can list multiple addresses, one per line.
|
|
; The first address is your primary (used for outbound zone detection).
|
|
;
|
|
; Examples:
|
|
; Address = 1:213/725 ; Boss node
|
|
; Address = 1:213/725.1 ; Point
|
|
; Address = 21:1/100 ; FSXnet
|
|
;
|
|
Address = 1:213/725
|
|
|
|
; Your name (sysop). Shown to remote systems during handshake.
|
|
SysOp = Ken Johnson
|
|
|
|
; Your system/BBS name. Shown to remote systems during handshake.
|
|
SystemName = The Danger Zone
|
|
|
|
; Your location (city, state/country). For informational display.
|
|
Location = Sparks, NV
|
|
|
|
; ED25519 private key for public-key authentication.
|
|
; Generate with: comet keygen
|
|
; Keep this SECRET - never share it. Only the public key is shared.
|
|
; If not set, ED25519 authentication is not available.
|
|
; Falls back to CRAM-MD5 (shared password) or no auth.
|
|
;
|
|
; Generate your own key with: comet keygen
|
|
; NEVER use someone else's key or an example key.
|
|
;
|
|
; PrivateKey =
|
|
|
|
|
|
; =========================================================================
|
|
; [Network] - TCP listener and connection settings
|
|
; =========================================================================
|
|
;
|
|
; Comet listens on a single TCP port for both Comet protocol and
|
|
; BinkP fallback connections. Protocol auto-detection happens on
|
|
; the first bytes received from the remote.
|
|
|
|
[Network]
|
|
|
|
; TCP port to listen on. Default is 24554 (standard BinkP port).
|
|
; This is the port you need to forward in your router/firewall.
|
|
; Both Comet and BinkP connections come in on this same port.
|
|
Port = 24554
|
|
|
|
; Bind address. Which network interface to listen on.
|
|
; Leave empty or use * for all interfaces (recommended).
|
|
; Use 127.0.0.1 to only accept local connections (testing).
|
|
; Use a specific IP to listen on one interface only.
|
|
;
|
|
; Examples:
|
|
; Bind = ; All interfaces (default)
|
|
; Bind = * ; Same as above
|
|
; Bind = 192.168.1.100 ; Specific interface only
|
|
; Bind = 127.0.0.1 ; Localhost only (testing)
|
|
;
|
|
Bind =
|
|
|
|
; Maximum simultaneous sessions. Each session uses one thread.
|
|
; Set based on your system's resources and bandwidth.
|
|
; Minimum: 1, Maximum: 32, Default: 5
|
|
MaxSessions = 5
|
|
|
|
; How often to scan the outbound directory for pending mail (seconds).
|
|
; Set to 0 to disable automatic outbound polling (inbound only).
|
|
; Default: 60 seconds
|
|
PollInterval = 60
|
|
|
|
; Accept PROXY protocol v2 headers on inbound connections.
|
|
; Enable this ONLY if Comet is behind a reverse proxy (HAProxy,
|
|
; nginx, etc.) that sends PROXY protocol headers.
|
|
; When enabled, the proxy header is parsed to extract the real
|
|
; client IP address for logging and BSY locking.
|
|
; Supports both IPv4 and IPv6 client addresses.
|
|
; Default: no (direct connections, no proxy)
|
|
; ProxyProtocol = no
|
|
|
|
|
|
; =========================================================================
|
|
; [Paths] - Directory locations
|
|
; =========================================================================
|
|
;
|
|
; All paths must exist before Comet starts, or Comet will create them.
|
|
; On Linux/FreeBSD, use forward slashes: /home/user/fido/inbound/
|
|
; On DOS/Windows/OS2, use backslashes: C:\FD\INBOUND\
|
|
; Trailing slash is optional.
|
|
|
|
[Paths]
|
|
|
|
; Inbound directory - where files from UNKNOWN/unpassworded nodes go.
|
|
; This is your "unsecure" inbound. Tossers should check this directory
|
|
; for incoming mail packets, but exercise caution with untrusted files.
|
|
Inbound = /var/lib/fidonet/inbound/
|
|
|
|
; Secure inbound - where files from PASSWORD-VERIFIED nodes go.
|
|
; If not set, all files go to Inbound regardless of password status.
|
|
; Your tosser should primarily process files from here.
|
|
SecInbound = /var/lib/fidonet/secure/
|
|
|
|
; BSO outbound base directory. This is the root of your Binkley-Style
|
|
; Outbound directory tree. Zone subdirectories (outbound.001/, etc.)
|
|
; and point directories (XXXXXXXX.PNT/) are created automatically.
|
|
;
|
|
; This must match what your tosser/packer writes to.
|
|
; For binkd compatibility, use the same outbound as binkd.cfg.
|
|
Outbound = /var/lib/fidonet/outbound/
|
|
|
|
; Temporary directory for files being received. Files are written here
|
|
; during transfer and moved to Inbound/SecInbound on completion.
|
|
; Using a temp directory on the same filesystem as Inbound allows
|
|
; atomic rename (no copy needed).
|
|
Temp = /var/lib/fidonet/temp/
|
|
|
|
; Main log file. Session events, errors, file transfers are logged here.
|
|
; If not set, logging goes to console only.
|
|
LogFile = /var/log/fidonet/comet.log
|
|
|
|
; Debug/trace log. Protocol-level detail: every frame sent/received,
|
|
; CRC values, state transitions. Very verbose - only enable when
|
|
; troubleshooting protocol issues.
|
|
; Enable with Debug = yes in [Logging] section.
|
|
DebugLog = /var/log/fidonet/comet-debug.log
|
|
|
|
; Nodelist directory. Comet reads standard FidoNet raw text nodelists
|
|
; (NODELIST.NNN format) and extracts IP/BinkP info from INA/IBN flags.
|
|
; The most recent nodelist.NNN file in this directory is used.
|
|
; Nodes found in the nodelist don't need manual [Node:] entries -
|
|
; Comet looks up their IP and BinkP port automatically.
|
|
; [Node:] entries take priority over nodelist data.
|
|
Nodelist = /var/lib/fidonet/nodelist/
|
|
|
|
; File request (FREQ) search directory. When a remote node sends a
|
|
; file request, Comet searches this directory for matching files.
|
|
; Supports wildcard patterns. Max 10 files / 10 MB per request.
|
|
; For advanced FREQ processing (magic names, file areas), use an
|
|
; external FREQ processor via [Events] exec rules and SRIF.
|
|
; If not set, FREQ requests are ignored.
|
|
Freq = /var/lib/fidonet/freq/
|
|
|
|
; Flags/semaphore directory. BSY files and rescan flags go here.
|
|
; If not set, BSY files are created in the outbound directory.
|
|
Flags = /var/lib/fidonet/flags/
|
|
|
|
|
|
; =========================================================================
|
|
; [DriveMap] - DOS drive letter to Unix path mapping
|
|
; =========================================================================
|
|
;
|
|
; IMPORTANT FOR LINUX/FREEBSD USERS:
|
|
;
|
|
; If you're running Comet on Linux but sharing outbound directories
|
|
; with a DOS/Windows mailer (or reading flow files written by one),
|
|
; the .FLO files will contain DOS-style paths like C:\FD\OUTBOUND\FILE.PKT
|
|
;
|
|
; These drive mappings tell Comet how to translate DOS paths to Unix:
|
|
; C:\FD\OUTBOUND\FILE.PKT -> /home/user/dos/c/fd/outbound/FILE.PKT
|
|
;
|
|
; Comet also handles case-insensitive file lookup automatically -
|
|
; FILE.PKT, file.pkt, and File.Pkt are all found.
|
|
;
|
|
; On DOS/Windows/OS2: this section is ignored (paths work natively).
|
|
;
|
|
; Format: DriveLetter = /unix/path
|
|
; The drive letter must be uppercase A-Z.
|
|
; The Unix path should be the root of what that drive letter maps to.
|
|
|
|
[DriveMap]
|
|
; C = /home/user/dos/c
|
|
; D = /home/user/dos/d
|
|
|
|
|
|
; =========================================================================
|
|
; [Protocol] - Transfer protocol settings
|
|
; =========================================================================
|
|
;
|
|
; These control the Comet file transfer protocol behavior.
|
|
; Default values work well for most TCP connections.
|
|
; You generally don't need to change these unless troubleshooting.
|
|
|
|
[Protocol]
|
|
|
|
; Maximum block size in bytes. Data is sent in blocks up to this size.
|
|
; Larger blocks = less overhead = higher throughput on fast links.
|
|
; Smaller blocks = faster error recovery on unreliable links.
|
|
;
|
|
; Range: 512 to 65528 bytes.
|
|
; Default: 65528 (maximum - best for TCP)
|
|
; On modem/dialup: consider 2048 or less
|
|
MaxBlockSize = 65528
|
|
|
|
; Sliding window size. Number of unacknowledged data blocks allowed
|
|
; in flight simultaneously. Higher values improve throughput on
|
|
; high-latency links (satellite, intercontinental).
|
|
;
|
|
; Range: 1 to 16
|
|
; Default: 8 (good for most TCP connections)
|
|
; High latency: try 12-16
|
|
; Unreliable links: try 2-4
|
|
WindowSize = 8
|
|
|
|
; Braindead timeout in seconds. If no valid data is received from
|
|
; the remote for this many seconds, the session is aborted.
|
|
; Default: 120 seconds (2 minutes)
|
|
Timeout = 120
|
|
|
|
; Handshake timeout in seconds. Maximum time to wait for the
|
|
; initial protocol handshake to complete.
|
|
; Default: 30 seconds
|
|
HandshakeTimeout = 30
|
|
|
|
; Disable SHA-256 file verification. NOT RECOMMENDED.
|
|
; SHA-256 ensures files are transferred correctly and enables
|
|
; content-based resume (resume even if filename/date changed).
|
|
; Only disable for debugging purposes.
|
|
; Default: no (SHA-256 is enabled)
|
|
; NoSHA256 = no
|
|
|
|
; Disable file request (FREQ) support.
|
|
; Default: no (FREQ is enabled)
|
|
; NoFREQ = no
|
|
|
|
; Data compression for file transfers.
|
|
; When both sides support it, each data block is compressed individually
|
|
; using zlib/deflate. Blocks that don't compress well (already-compressed
|
|
; files like .ZIP, .RAR, .7Z) are sent uncompressed automatically.
|
|
; Good for PKT files and text - typically 50-70% smaller on the wire.
|
|
;
|
|
; Values: zlib, none
|
|
; Default: zlib (enabled, negotiated with remote)
|
|
; Compression = zlib
|
|
|
|
|
|
; =========================================================================
|
|
; [BinkP] - BinkP protocol fallback settings
|
|
; =========================================================================
|
|
;
|
|
; When connecting to a remote node, Comet tries the Comet protocol
|
|
; first. If the remote doesn't speak Comet, it falls back to BinkP/1.1.
|
|
;
|
|
; Inbound connections are auto-detected: if the first bytes look like
|
|
; a BinkP frame instead of a COMET banner, the connection is handled
|
|
; as BinkP automatically.
|
|
|
|
[BinkP]
|
|
|
|
; Enable BinkP fallback for outbound connections.
|
|
; Default: yes
|
|
Enabled = yes
|
|
|
|
; Default BinkP port for outbound fallback connections.
|
|
; Outbound port comes from the nodelist (IBN flag) or per-node Port setting.
|
|
; on this port. This is the standard binkd port.
|
|
; Per-node override available in [Node:] sections.
|
|
; Default: 24554
|
|
Port = 24554
|
|
|
|
|
|
; =========================================================================
|
|
; [Logging] - Log output settings
|
|
; =========================================================================
|
|
|
|
[Logging]
|
|
|
|
; Minimum log level for the log file.
|
|
; Levels: debug, info, warning, error, fatal
|
|
; Default: info
|
|
FileLevel = info
|
|
|
|
; Minimum log level for console (stdout) output.
|
|
; Default: info
|
|
ConsoleLevel = info
|
|
|
|
; Enable debug/trace logging to the DebugLog file.
|
|
; This is VERY verbose - every protocol frame is logged.
|
|
; Default: no
|
|
Debug = no
|
|
|
|
|
|
; =========================================================================
|
|
; [Events] - Post-session actions
|
|
; =========================================================================
|
|
;
|
|
; After a session completes and files have been received, Comet can
|
|
; create flag/semaphore files and run external programs (tossers,
|
|
; scanners, FREQ processors like Allfix).
|
|
;
|
|
; Events run AFTER the session is closed - they never block transfers.
|
|
;
|
|
; Flag rules: create a semaphore file when files are received.
|
|
; flag <flagfile> <pattern>
|
|
;
|
|
; Exec rules: run an external command when files are received.
|
|
; exec "<command>" <pattern>
|
|
; !exec "<command>" <pattern> (run immediately per file)
|
|
;
|
|
; Variables for exec commands:
|
|
; *A = Remote FidoNet address (e.g., 1:213/723)
|
|
; *I = Inbound directory path
|
|
; *N = Number of files received
|
|
; *S = SRIF (Standard Request Information File) path
|
|
;
|
|
; Examples:
|
|
; flag /var/lib/fidonet/flags/toss.now *.pkt
|
|
; flag /var/lib/fidonet/flags/toss.now *.su? *.mo? *.tu? *.we?
|
|
; exec "hpt toss" *.pkt
|
|
; exec "allfix RP -SRIF *S" *.req
|
|
|
|
[Events]
|
|
|
|
; flag /var/lib/fidonet/flags/toss.now *.pkt
|
|
; exec "hpt toss" *.pkt
|
|
; exec "allfix RP -SRIF *S" *.req
|
|
|
|
|
|
; =========================================================================
|
|
; [Node:address] - Per-node configuration
|
|
; =========================================================================
|
|
;
|
|
; Configure settings for specific remote nodes. The section name
|
|
; includes the node's FidoNet address:
|
|
;
|
|
; [Node:1:213/723] ; A boss node
|
|
; [Node:1:213/723.1] ; A point
|
|
; [Node:21:1/100] ; An FSXnet node
|
|
;
|
|
; At minimum, you need the Host (IP or hostname) for each node
|
|
; you want to call. Nodes that call YOU don't need an entry here
|
|
; unless you want to set a session password.
|
|
;
|
|
; Authentication:
|
|
; Passwords are NEVER sent in plain text. Comet uses CRAM-MD5
|
|
; (Challenge-Response Authentication, RFC 2104) for both the
|
|
; Comet protocol and BinkP sessions. The answering side generates
|
|
; a random challenge, the calling side computes an HMAC-MD5
|
|
; response. The actual password never crosses the wire.
|
|
;
|
|
; Available settings:
|
|
;
|
|
; Password Session password (CRAM-MD5 authenticated)
|
|
; PublicKey Remote node's ED25519 public key (64 hex chars)
|
|
; Host IP address or hostname to connect to
|
|
; Port Outbound port override
|
|
; NoBinkp Disable BinkP fallback for this node (yes/no)
|
|
; NoComet Use only BinkP for this node (yes/no)
|
|
; SessionPassword Separate BinkP password if different from Password
|
|
|
|
; --- Example nodes ---
|
|
|
|
; [Node:1:213/723]
|
|
; Password = SECRET
|
|
; PublicKey = (get this from the remote node's sysop)
|
|
; Host = bbs.example.com
|
|
; Port = 24554
|
|
|
|
; [Node:21:1/100]
|
|
; Password = FSXNET
|
|
; Host = 192.168.1.50
|
|
; Port = 24554
|
|
|
|
; [Node:1:103/705]
|
|
; Host = fido.oldschool.org
|
|
; NoComet = yes ; This node only speaks BinkP
|
|
|
|
|
|
; =========================================================================
|
|
; End of configuration
|
|
; =========================================================================
|
|
;
|
|
; After editing, start Comet with:
|
|
; comet (daemon mode - listen + poll outbound)
|
|
; comet -c /path/to/comet.cfg (specify config file location)
|
|
; comet call 1:213/723 (single outbound call for testing)
|
|
; comet -d (daemon with debug logging enabled)
|
|
; comet -v (show version)
|
|
;
|
|
; Config hot-reload:
|
|
; Comet monitors this config file while running. If it detects
|
|
; changes (by checking the file modification time every 5 seconds),
|
|
; it automatically reloads the configuration. You can also send
|
|
; SIGHUP on Unix: kill -HUP $(pidof comet)
|
|
;
|
|
; This means you can edit the config or run CSETUP while Comet
|
|
; is running - changes take effect within seconds.
|
|
;
|
|
; For complete documentation see COMET.DOC.
|
|
; For the wire protocol specification see FSP-COMET.001.
|
|
; =========================================================================
|