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!


BinkIT

BinkIT is a simple BinkP BSO/FLO-style FidoNet Mailer, written for Synchronet in JavaScript. BinkIT may be used in place of BinkD, for example, but it does not have as many features and is still considered “experimental” at this date.

Features

  • BinkP 1.1 support (except for the undocumented No Dupes mode)
  • Supports BinkD compatible encryption
  • Supports secure CRAM-MD5 authentication
  • Full 5D support
  • Creates semaphore files for TIC (tickit.now) and Fido (fidoin.now) events automatically
  • FREQIT integration for file requests from subs
  • Nodelist support, can read the hostname and port number from a nodelist

Automated Install

If you've already configured SBBSecho v3, you may perform an automated install of BinkIT from a command prompt by running “exec/jsexec binkit install”.

This will create a ctrl/binkit.ini file for you and setup the necessary Timed Events in SCFG, but you may need to edit the session passwords in in binkit.ini to match those expected by your links.

If your network links are not in FidoNet, you may need to add a nodelist or a Host values for each linked node as well.

Manual Setup

BinkIT should be configured both as a service and as Timed Events in SCFG.

Service

Add the service in ctrl/services.ini:

[BINKP]
Port=24554
Command=binkit.js

Add 2 Timed Events in SCFG->External Programs->Timed Events:

BINKOUT

╔════════════════════════════════════════════════════════════════════╗
║                         BINKOUT Timed Event                        ║
╠════════════════════════════════════════════════════════════════════╣
║ │Internal Code                   BINKOUT                           ║
║ │Start-up Directory                                                ║
║ │Command Line                    ?binkit                           ║
║ │Enabled                         Yes                               ║
║ │Execution Node                  1                                 ║
║ │Execution Months                Any                               ║
║ │Execution Days of Month         Any                               ║
║ │Execution Days of Week          All                               ║
║ │Execution Time                  00:00                             ║
║ │Requires Exclusive Execution    No                                ║
║ │Force Users Off-line For Event  No                                ║
║ │Native Executable               No                                ║
║ │Use Shell to Execute            No                                ║
║ │Background Execution            No                                ║
║ │Always Run After Init/Re-init   No                                ║
╚════════════════════════════════════════════════════════════════════╝

To have the BINKOUT event triggered automatically upon any outgoing FTN-mail, set the OutgoingSemaphore key in your ctrl/sbbsecho.ini file to ../data/binkout.now (requires SBBSecho v3.02 or later).

BINKPOLL

╔════════════════════════════════════════════════════════════════════╗
║                        BINKPOLL Timed Event                        ║
╠════════════════════════════════════════════════════════════════════╣
║ │Internal Code                   BINKPOLL                          ║
║ │Start-up Directory                                                ║
║ │Command Line                    ?binkit -p                        ║
║ │Enabled                         Yes                               ║
║ │Execution Node                  1                                 ║
║ │Execution Months                Any                               ║
║ │Execution Days of Month         Any                               ║
║ │Execution Days of Week          All                               ║
║ │Execution Frequency             24 times a day                    ║
║ │Requires Exclusive Execution    No                                ║
║ │Force Users Off-line For Event  No                                ║
║ │Native Executable               No                                ║
║ │Use Shell to Execute            No                                ║
║ │Background Execution            No                                ║
║ │Always Run After Init/Re-init   No                                ║
╚════════════════════════════════════════════════════════════════════╝

The execution interval determines the polling frequency.

Command-line options

The following options may be specified on the command-line:

  • -p poll any links with the Poll=Yes option after running a normal outbound scan.
  • -P poll any links with the Poll=Yes option and *do not* run a normal outbound scan.
  • -l [node] poll the specified node and *do not* run a normal outbound scan. Cannot be used with -p or -P. Multiple -l options may be specified on the same command-line.

binkit.ini

The ctrl/binkit.ini file holds the main configuration settings of BinkIT.

Global Options

  • Capabilities if set, changes the text in the M_NUL NDL line from the default of “115200,TCP,BINKP”. This field is not well documented.
  • Sysop if set, over-rides the sysop name (ZYZ) value (e.g. to send the sysop's real name instead of alias).

Each link should be a section with the full 5D address (e.g.: “1:103/17@fidonet”) as the section name. If you are using an ftn_domains.ini file, the domain should be listed there.

The following are all optional and allowed per section:

  • Password sets the BinkP session password for the link (Usually the only required option)
  • AllowPlainPassword allows this link to insecurely send the password on the connection. Defaults to No. Not recommended
  • AllowUnencrypted allows this link not to encrypt the session. Defaults to No. Not recommended
  • SourceAddress the outbound FTN address to use for this link. Not normally needed, but can be used if multiple addresses are used in the same net with different passwords. Defaults to the “closest” FTN address to the link address.
  • Port TCP port to connect to when making an outbound connection on this link. Defaults to the port specified in the nodlist if configured, or the defualt binkp port of 24554.
  • Host Internet host (IP address or hostname) to connect to when making an outbound connection on this link. If not specified, will first attempt to read from the nodelist if configured in ftn_domains.ini, then will use the domain suffix specified in ftn_domains.ini and use DNS with the “p.f.n.z.domain” style (e.g. binkp.net) domain name. If there is not a ftn_domains.ini file, will use binkp.net to DNS-look up fidonet addresses.
  • Poll This link will be polled any time -p or -P is specified on the command-line. Defaults to No.

Note:
For compatibility with links using the BinkP implementation in Mystic BBS version 1.12A39, you must set AllowUnencrypted=true.

Example binkit.ini

Sysop=Henry Samueli
 
[1:218/700@fidonet]
Password=TopSecret
Poll=yes
 
[1:2320/100@fidonet]
Host=livewirebbs.com
 
[10:1/1@othernet]
Host=coolbbs.example.com
Port=24556
Password=MaxSecret
Poll=yes
OutboundRoot=/sbbs/fido/outbound

In the above example, 1:218/700 is a node you want to poll. If you create a second binkit event and add the -p (small p) option it will scan the outbound directories, send outbound mail and poll nodes that have Poll=yes option set. In this case 1:218/700@fidonet and 10:1/1@othernet will be polled and any new inbound mail will be picked up and outbound mail will be delivered. 1:2320/100@fidonet will not be polled, though if there is pending outbound, it will be sent.

In the case of 1:2320/100, let's say you have a need to route netmail to this node. In this case there is no automated polling to this node and anything that needs to be sent to this node via crash will be sent to livewirebbs.com with no password. If there is a nodelist, the port number will be used from the nodelist. In this example, the hostname is being overridden, so it won't use the nodelist or DNS to connect.

The network “othernet” will also be polled. In this case it will call out on port 24556 and the outbound root has been specified in the config. You can specify a domain wide outbound root in your ftn_domains.ini. It should be noted that “othernet” should be defined in ftn_domains.ini with either a NodeList or DNSSuffix value since it's not part of the default ftn_domains configuration used when the ftn_doamsin.ini file is not present.

If you check your outbound directory do not be surprised if you see other outbound directories with extensions after them. For instance outbound.zyx.

Other Configuration

SCFG

The first listed FTN address (in scfg->Networks->FidoNet->System Addresses) is used as the default address, and it's zone is used as the default zone. All addresses configured in SCFG are used for the M_ADR command to the remote.

sbbsecho.cfg or sbbsecho.ini

BinkIT reads the ctrl/sbbsecho.cfg or ctrl/sbbsecho.ini file, possibly using the following pieces of information:

  • Outbound path (OUTBOUND in sbbsecho.cfg or Outbound key in sbbsecho.ini)
  • Secure Inbound path (SECURE_INBOUND in sbbsecho.cfg or SecureInbound key in sbbsecho.ini)
  • Insecure Inbound path (INBOUND in sbbsecho.cfg or Inbound key in sbbsecho.ini)
  • Mailer type (FLO_MAILER in sbbsecho.cfg, or BinkleyStyleOutbound in sbbsecho.ini). BinkIT will exit with an error if this is not set.
  • Packer configuration (PACKER, PACK, and UNPACK in sbbsecho.cfg, SigOffset, Sig, Pack, and Unpack keys in a archive:* section in sbbsecho.ini).

freqit.ini

BinkIT integrates util:freqit functionality, so the freqit.ini file is used.

ftn_domains.ini

This file is used for 5D support in BinkIT. Each section name is an FTN domain. If this file doesn't exist, zones 1-6 are set to 'fidonet' with a DNSSuffix of 'binkp.net'.

Each domain can have the following keys:

  • Zones a comma-separated list of zones present in this domain. When only a single domain lists a specific zone, that domain is used as the “default domain” for that zone.
  • DNSSuffix used for DNS nodelist lookups. If this file doesn't exist, binkp.net is used for the fidonet domain.
  • OutboundRoot the root path for this domain, used for constructing outbound directories for this domain.
  • NodeList Full path to a nodelist file to use for this domain.

Example ftn_domains.ini

[fidonet]
Zones=1,2,3,4,5,6
OutboundRoot=/sbbs/fido/outbound/
DNSSuffix=binkp.net
 
[othernet]
Zones=10
NodeList=/sbbs/fido/OTHERNET.234

Errors

Callout to 3:330/1@fidonet started.
Connection to f1.n330.z3.binkp.net:24554 failed.

This error means that the linked node (3:330/1@fidonet in the example) is not DNS-resolvable. You'll need to use a nodelist or a “Host=” key for that node (with the IP address or hostname of the node) in your binkit.ini file.

Sent M_ERR command args: Encryption required

This error means that the remote/peer doesn't support encryption and encryption is required (by default). To loosen this requirement and allow a plain-text/un-encrypted session with this link, AllowUnecrypted=true for that linked node in your binkit.ini file.

See Also