        binkd FAQ

        Frequently Asked Questions on FTN Mailer binkd
        $Date: 2015/06/25 13:37:02 $

    This list of Frequently Asked Questions was compiled from the questions
that were asked in the Russian echo conference RU.BINKD. Some part of the
answers is based on the developers' recommendations. Please send your
comments and updates to Stas Degteff 2:5080/102. This list was translated
from Russian by Michael Dukelsky 2:5020/1042.

    01. Where Can One Find a Current Copy of Stable or Beta binkd Version?
    02. What Is binkd?
    03. binkp Protocol.
    04. What Is binkp.net Domain and Why Is It Necessary?
    05. binkd Doesn't Connect. What Should I Do?
    06. How Can binkd Work via HTTP-proxy?
    07. How Can binkd Work via SOCKS-proxy?
    08. IP-Point: How Can I Make binkd to Get My Mail From My Bossnode?
    09. "start_file_transfer: .: Permission denied" Error.
    10. binkd/win and Dial-up: Dialing-up and Disconnecting Automatically.
    11. I Have Changed binkd Configuration File On-The-Fly. When Will It Be Reloaded?
    12. How Can binkd Work With T-mail/IP?
    13. Is There At Least One Log Analyzer Under Unix?
    14. binkd Connects Too Slowly Though I Have a High-Speed LAN.
    15. Why Does binkd Not Understand Command Line Options When I Start It From inetd?
    16. Can One Make a File Request From binkd?
    17. How Can my binkd Respond to a File Request?
    18. How Can I Add binkd To a Fidonet Box Working With a Modem?
    19. Flags Are Not Created On Receiving a File, Programs Do Not Start.
    20. 'skipmask' Keyword Does Not Work.
    21. binkd Under Windows 3.x.
    22. Different FTN Domains in binkd And a Tosser Without 5D Support.
    23. How Does "domain ... alias-for ..." In The Configuration File Work?
    24. What Does "send: TCP/IP error (-10000)" Mean and How To Cure It?
    25. Argus (Radius) and binkd: Argus Error "Aborting due to carrier loss"
    26. The Outbound Name Has a Comment Char and binkd Doesn't See It
    27. Is There a Possibility to Start an Application On an Event From binkd?
    28. What Is the Difference Between binkd/w32 and binkd/w9x?
    29. I Miss a Chat in binkd And I Want To Synchronize Time!
    30. binkd Receives an Incoming Call Only After an Outgoing One.
    31. "start_file_transfer: ECHO is off.: No such file or directory" Error.
    32. How to Create a Poll Correctly.
    33. What Does the Number in Brackets in the Log Mean?
    34. How to Configure binkd for sending outgoing mail?
    35. What for Does One Need the "share" Directive in the Configuration File?
    36. What for Does One Need the "ftrans" Directive in the Configuration File?
    37. Why binkd in Windows Works As a Service With Admin Rights Only?
    38. Will Anybody Make Nodelist Support in binkd After All?
    39. Does binkd Support non-ASCII Domain Names?
    A1. I Have Found a Bug in binkd!
    A2. I Want To Talk To Developers.
    A3. I Want To Get Information About Changes In binkd Immediately!
    A4. And When Will binkd Do ... ?


----------------------------------------------------------------------------


        01. Where Can One Find a Current Copy of Stable or Beta binkd Version?

    In fileecho AFTNBINKD.

    In Internet:

    Release versions, documentation, log analyzers etc. (Pavel Gulchouck
    2:463/68):
    ftp://cvs.happy.kiev.ua/pub/fidosoft/mailer/binkd/

    Binaries (windows, os/2):
    http://download.binkd.org
    http://sites.google.com/site/vasilyevmax/fido
      (Max Vasilyev 2:5057/77)

    One may find the sources at github:
    https://github.com/pgul/binkd
    or at synchronized with it CVS server:
    :pserver:binkd@cvs.happy.kiev.ua:/cvs , module binkd, empty password

       Command examples for CVS server.
       Login to the cvs server:
       cvs -d :pserver:binkd@cvs.happy.kiev.ua:/cvs login
       Retrieve the latest sources of the current branch (v.1.1 at the moment):
       cvs -d :pserver:binkd@cvs.happy.kiev.ua:/cvs co binkd
       Retrieve the latest sources of the binkd 1.0.x-stable branch:
       cvs -d :pserver:binkd@cvs.happy.kiev.ua:/cvs co -r binkd-1_0-stable binkd
       Retrieve the sources of the binkd 1.0.0-release:
       cvs -d :pserver:binkd@cvs.happy.kiev.ua:/cvs co -r binkd-1_0_0 binkd

    Anonymous FTP:
    ftp://cvs.happy.kiev.ua/pub/fidosoft/mailer/binkd/snapshot

    binkd/2 1.1a (current, EMX), compiled everynight:
    FREQ from node 2:221/1, file alias: binkd2e. It's possibe to download from
    BBS of node 2:221/1 (accessed also via telnet:rbb.dy.fi)
    http://rbb.homeip.net/pub/os2/comm/bbs/binkd2e.rar
      (Suomi, Tommi Koivula 2:221/1 & 2:221/360)

    Man page, binkp description, binaries etc. (Stas Degteff 2:5080/102):
    http://binkd.grumbler.org/

    This FAQ list:
    http://binkd.grumbler.org/binkdfaq.shtml.en (or .txt.en)

    The official binkd binaries are named in a way that shows the OS, the
compiler and the way of building the program.

    Windows (32bit) versions:
    binkd.exe, binkdw32.exe - binkd/w32, console, compiled by MS Visual C
    binkd-dll.exe   - binkd/w32, console, MS Visual C, needs msvcrt.dll
    binkd-mingw.exe - binkd/w32, console, MinGW32, needs msvcrt.dll
    binkd9x.exe     - binkd/w9x, w/o a window, compiled by MS Visual C
    binkd9x-dll.exe - binkd/w9x, w/o a window, MS Visual C, needs msvcrt.dll
    binkd9x-mingw.exe - binkd/w9x, w/o a window, MinGW32, needs msvcrt.dll

    OS/2 versions:
    binkd2.exe   - Watcom C compiler, no Perl
    binkd2e.exe  - emx, can load the Perl dll and can work without it
    binkd2pl.exe - emx, Perl is liked staticly (i.e. no need in a Perl dll)
    binkd2eo.exe - emx/omf (multithreaded), no Perl.


----------------------------------------------------------------------------


        02. What Is binkd?

    binkd is a fidonet mailer working via Internet and using binkp protocol
(FSP-1018 & other). This protocol is also supported by such mailers as Argus
(win32; RitLabs; https://www.ritlabs.com/en/products/argus/) and it's clones
Radius and Taurus, BForce (unix), Internet Rex program (DOS/W32/OS2) and 
BeeMail (win32; Stephen Proffitt, 1:105/10)

    binkd features:
    - freeware, open source;
    - there are versions for Unix (linux, freebsd, SCO, ...), OS/2 (native
      & EMX), Windows NT/2000/XP and Windows 95/98/Me, Windows 3.x, DOS;
    - it can work as daemon in Unix and as service in Windows NT/2000/XP,
      there is a separate version for working as service in Windows 9x;
    - simple TCP-connection (data integrity is supported at TCP level);
    - BSO (bink-style outbound);
    - ASO (Amiga-style outbound);
    - path translation in ?LO files (it is used when the outbound resides
      on a net drive);
    - personal fileboxes for each node for the files to send and to receive;
    - T-mail-style and The Brake!-style fileboxes are supported;
    - translation of a FTN-address into a domain name (*.binkp.net) is
      supported;
    - a password file in the style of T-mail is supported starting with
      version 0.9.4 and a password file in the style of ifcico starting with
      version 1.0;
    - file requests using SRIF are supported;
    - a flag on receiving files (using a template) may be created;
    - a program on receiving files (using a template) may be started;
    - receiving files (using a template) may be refused starting with
      version 0.9.4;
    - working via a HTTP or SOCKS proxy server (starting with version
      0.9.3.https);
    - password encryption (MD5) starting with 0.9.4 release;
    - traffic encryption starting with version 0.9.5;
    - the remote node IP-address check for an incoming connection is
      supported starting with version 0.9.5;
    - IPv6 support starting with 1.0.0;
    - support of IN SRV DNS records starting with 1.0.0;
    - support of perl hooks starting with 1.0.0;
    - support of bandwidth limitations starting with 1.0.0.


----------------------------------------------------------------------------


        03. binkp Protocol

    The name binkp means binkd protocol. It is described in FSP-1018
(FIDOnet standard proposal) and port 24554 is assigned for binkp in
RFC-1700 (request for comments, issued by IANA).

    The file transfer protocol using two-way TCP connection is developed for
FTN mailer binkd. Port 24554 is used on default.

    There are two versions of the protocol: 1.0 and 1.1. They are backward
compatible.  The main difference of version 1.1 is a possibility of making
a FREQ during a session.  Besides binkp 1.1 has at present NR option
(non-reliable mode dealing with a non-reliable channel) and ND option (no
dupes mode protecting from repeated file transmission), MD5 (password
hashing), CRYPT (traffic encryption).

    Protocol version 1.0 is supported by binkd, version 1.0 is implemented
in Argus and its clones (binkp is implemented there with addition of FREQ
processing technique of its own and other changes), in MBSE, Internet Rex,
BForce and others. In Internet Rex (version 2.24 and later) an incompatible
variant of binkp 1.1 of its own is implemented.

    One can find the protocol description here:
http://binkd.grumbler.org/binkp


----------------------------------------------------------------------------


        04. What Is binkp.net Domain and Why Is It Necessary?

    'binkp.net' is the domain registered for FTN-address to Internet
domain name translation. It is used primarily at binkp connections. The
address 1:2/3.4 is translated to the domain name p4.f3.n2.z1.binkp.net;
after that binkd (or another IP mailer) obtains the node IP-address by
means of the operating system. If the domain name exists one can try to set
a connection.

    A node can get address in the binkp.net domain by one of the two ways:
set her address for incoming binkp connections in the official fidonet nodelist,
or specify it manually via http://binkp.net interface (and then sysop can 
set address from binkp.net in the nodelist).


----------------------------------------------------------------------------


        05. binkd Doesn't Connect. What Should I Do?

    1. Please check whether the remote node responds at port 24554 using
the 'telnet' command.  If a connection is not set check whether your
computer is connected to the net at this moment (using ping command). If
the checks are successful then check binkd configuration. Increasing the
loglevel to 6 or more can help here.


    Here are some examples for node 2:5080/68:

    1.1.
    (The control characters are removed from the telnet reply and it is
broken down to lines for the sake of convinience)

    m:\>telnet f68.n5080.z2.binkp.net 24554

    -.OPT CRAM-MD5-593e3e5411515fc1cf75816bb74e41d0-SYS Academ
    -ZYZ Alexei Kuklin-LOC Ekaterinburg, Russia-NDL 115200,TCP,BINKP,HUB
    -%TIME Tue, 20 Feb 2001 15:25:20 +0500- VER binkd/0.9.4/Win32 binkp/1.1
    - 2:5080/68@fidonet-OPT ND

    M:\>ping f68.n5080.z2.binkp.net

    Pinging fido68.imp.uran.ru [195.19.130.68] with 32 bytes of data:

    Reply from 195.19.130.68: bytes=32 time=505ms TTL=122
    Reply from 195.19.130.68: bytes=32 time=555ms TTL=122
    Reply from 195.19.130.68: bytes=32 time=406ms TTL=122
    Reply from 195.19.130.68: bytes=32 time=372ms TTL=122

    The node works. Check your binkd configuration. Maybe the timeout is too
small (it is the time necessary for setting up a connection, it can be
evaluated using the delay before response in telnet).

    Another case: telnet connects but ping says "Request timed out".

    M:\>ping f68.n5080.z2.binkp.net

    Pinging fido68.imp.uran.ru [195.19.130.68] with 32 bytes of data:

    Request timed out.
    Request timed out.
    Request timed out.
    Request timed out.

    It means that ICMP messages are forbidden somewhere between your nodes.
That does not influence binkd performance.



    1.2.

    M:\>ping f68.n5080.z2.binkp.net

    Unknown host f68.n5080.z2.binkp.net

    Such a reply means that your computer could not find a DNS entry for the
node.  Check the DNS configuration in your system. If it is correct make
sure the DNS server works and the remote node address is correct.



    1.3.

    If ping replies positively but telnet cannot set up a connection it is
possible that binkd is not started at the remote node currently. Try to ask
the node's sysop whether his/her binkd is started. If it is started and can
connect to other nodes then access to port 25554 is denied by the firewall
of your net. Try to start binkd via a proxy server (see "How Can binkd Work
via HTTP-proxy" and "How Can binkd Work via SOCKS-proxy").


    1.4.

    M:\>ping -w 5000 f68.n5080.z2.binkp.net

    Pinging fido68.imp.uran.ru [195.19.130.68] with 32 bytes of data:

    Reply from 195.19.130.68: bytes=32 time=3674ms TTL=122
    Request timed out.
    Reply from 195.19.130.68: bytes=32 time=4232ms TTL=122
    Request timed out.

    Telnet sometimes connects to port 24554 but more often it does not.


    The node works but the link channel between the partners is overloaded or
too slow.  Because of that binkd connects not at every try (some IP packets
are lost) or it does not connect at all (the time to wait for the remote
node reply is too small).  You cannot get it over in the first case because
the packets are lost in their way and you cannot improve it. In the second
case one should increase timeouts in the binkd configuration file (the
values are in seconds):

    timeout 60
    connect-timeout 300
    call-delay 60

    If increasing the values does not help then change your uplink.


    1.5.
    Telnet does not connect to the port 24554 and the remote host does not
reply to ping.

    The node does not reply. Possible variants are:

    1 - your computer or the remote node is disconnected from the internet at
the moment or routing is corrupt (the line is broken, power supply is
switched off, some of the internet providers carries out maintenance work
etc.) so please make several tries later.

    2 - your computer is in Intranet and getting out to the internet is
possible only via a proxy server. See "How Can binkd Work via HTTP-proxy",
"How Can binkd Work via SOCKS-proxy".


----------------------------------------------------------------------------


        06. How Can binkd Work via HTTP-proxy?

    It is not a rare case when users go out to the internet from their
corporate LAN exclusively via the proxy server based at the only computer
connected to the internet. Thus binkd cannot make a direct connection to
the remote node and one must use the proxy server.  Proxy servers support
was included in versions 0.9.3.https, 0.9.4 and the later ones.

    One can use binkd via a HTTP proxy only if CONNECT host 24554 command
is allowed in the proxy server or the CONNECT command is allowed for all
remote ports.  The command is usually used for the secure HTTP protocol
(URLs of the "HTTPS://..." type), it is also known as S-HTTP. Because of
that such a proxy is quite often referred to as a HTTPS proxy.

    If binkd reports of an authorization error then the necessary command
is prohibited in the proxy configuration or it is allowed for some ports
only (usually 443).

    Suppose the connected to the Internet computer has the IP address
192.168.0.1 in its LAN and the proxy server at the computer responds on
port 3128. Here is the line in binkd configuration file necessary for
working via the HTTP proxy.

    1. A proxy server without user authorization (no login and password are
demanded):

    proxy 192.168.0.1:3128

    2. A proxy server with user authorization (it is necessary to type login
and password, e.g. login "user", password "password"):

    proxy 192.168.0.1:3128/user/password

    3. Microsoft proxy server with NTLM protocol of user authorization (one
must be inside a domain).  Suppose login is "user", password is "password",
the user computer is "host" and the domain name is "ntdomain":

    proxy 192.168.0.1:3128/user/password/host/ntdomain

    If the proxy server administrator has allowed connection only to some
selected ports (usually to port 443) then binkd reports "Connection
rejected by proxy". Here is an example:

      31 Mar 16:48:43 [59987] BEGIN, binkd/0.9.3/SOCKS/HTTPS -p BINKD.CFG
      31 Mar 16:48:43 [59987] clientmgr started
    + 31 Mar 16:48:43 [40423] call to 2:5000/44@fidonet
      31 Mar 16:48:43 [40423] trying 195.209.235.3, port 24554...
      31 Mar 16:48:43 [40423] connected to proxy.osu.ru:24554
      31 Mar 16:48:44 [40423] Connection rejected by proxy (HTTP/1.0 403
Forbidden)
    ? 31 Mar 16:48:44 [40423] unable to connect: {13} Permission denied

    In such a case you may try to use http tunnelling for instance with the
help of httport, HTTPTunnel (http://http-tunnel.sourceforge.net/), stunnel
(https://www.stunnel.org/) or you may find a node receiving binkp 
connections at port 443.


----------------------------------------------------------------------------


        07. How Can binkd Work via SOCKS-proxy?

    It is not a rare case when users go out to the internet from their
corporate LAN exclusively via the proxy server based at the only computer
connected to the internet. Thus binkd cannot make a direct connection to
the remote node and one must use the proxy server. Proxy servers support
was included in version 0.9.4 and the later ones.

    binkd works with a SOCKS proxy version 4 and 5. The first one does not
demand an authorization (no login and password), the second one demands it
as a rule.

    Suppose the connected to the Internet computer has the IP address
192.168.0.1 in its LAN and the SOCKS server at the computer responds on
port 1080. Here is the line in binkd configuration file necessary for
working via the SOCKS proxy.

    1. A SOCKS server without user authorization (no login and password are
demanded):

    socks 192.168.0.1:1080

    2. A proxy server with user authorization (it is necessary to type login
and password, e.g. login "user", password "password"):

    socks 192.168.0.1:1080/user/password


----------------------------------------------------------------------------


        08. IP-Point: How Can I Make binkd to Get My Mail From My Bossnode (Uplink)?

    Make a poll using the command line option -P:

    binkd -P1:2/3 binkd.cfg

    Usually they want binkd to exit after the session is finished. One can
use the command line option -p:

    binkd -p -P1:2/3 binkd.cfg

    If binkd does not exit for a long time after the session has been
finished then decrease the value of rescan-delay (and sometimes the value
of timeout).

    If binkd works permanently (e.g. as a Windows service) and you want to
get your mail regularly then you need some additional program or a script.
As an example in DOS, Windows or OS/2 it is enough to execute the command:

    cd . >> %outbound%\NNNNMMMM.ilo

    where NNNN is the hex net number,
          MMMM is the hex node number,
          %outbound% is the path to the necessary zone outbound.


----------------------------------------------------------------------------


        09. "start_file_transfer: .: Permission denied" Error

    You get the message when binkd cannot open a file for sending indicated
in some *.?lo file. Most likely the file has a line containing only "."
because the poll has been made by a command of the type

    echo . >> xxxxyyyy.flo

    you should change it to "cd . >> xxxxyyyy.flo"


----------------------------------------------------------------------------


        10. binkd/win and Dial-up: Dialing-up and Disconnecting Automatically

    The problem is to configure the fidonet box in such a way that binkd
would initiate a telephone call to your Internet provider, get your mail
and disconnect.

    The solutions:

    1st Solution

    Configure automatic connection and timeout in the dial-up connection
properties (idle time before hanging up). It is convinient to use a
non-standard software for dialing-up (Advanced Dialer and others). You
should start binkd with a command line option -p periodically (and possibly
-Paddress for binkd to make a poll to the address).

    binkd -p -P1:2/3.4  binkd.cfg


    2nd Solution

    Use the command line option -p and the batch file where first Remote
Access Service (RAS) is started then binkd is started and after binkd exits
RAS is stopped.

    Two variants, for Windows NT and for Windows 2000:
    === binkdpoll1.cmd
    rasdial Connection
    binkd -p binkd.cfg
    rasdial Connection /disconnect
    ===

    === binkdpoll2.cmd
    net start "remote access service"
    net start "remote access auto service"
    binkd -p binkd.cfg
    net stop "remote access auto service"
    net stop "remote access service"
    ===

    3rd Solution (The Best One For Win9x)

    Use the command line options -p and -Paddress and control connection
with a non-standard dial-up software (for example dialerp).  This solution
is the most reliable one (especially if the modem connection to your
Internet provider is bad) due to the fact that dialerp can start some
indicated programs at setting the connection.  Here is the batch file you
should start in the 'Execute' parameter of the dialerp configuration file:

    ====
    binkd -p -P1:2/3.4  binkd.cfg
    dialerp BREAK *
    ====

    The question you may now ask: Where can I take dialerp? The answer is:
Ask the author (Alexander Vedjakin, 2:5020/540) or look for it in fileecho
archives and in ftp/http.


    In any case you should set a small value for 'rescan-delay' parameter in
the binkd configuration file. binkd would exit faster.

    === binkd.cfg
    # Outbound rescans period (sec)
    rescan-delay 2
    ===


----------------------------------------------------------------------------


        11. I Have Changed binkd Configuration File On-The-Fly. When Will It Be Reloaded?

    Starting with the version 0.9.1 binkd could feel that its configuration
file changed. It exited with code 3 if it had been started with option -C.
Modification time was checked after each ingoing session. Here is the batch
file for starting binkd versions 0.9.1-0.9.3 and 0.9.4-0.9.6/w32:

    ====
    :aaa
    binkd -C binkd.cfg
    if errorlevel 4 goto end
    if errorlevel 3 goto aaa
    :end
    ====

    In the versions 0.9.4/unix and /os2-emx (and in these ones only) binkd
restarts automatically if it is started with -C command line option.
Besides that starting with version 0.9.4 the files included into the
configuration file with the help of 'include' keyword are tested not only
on incoming sessions but also in every 'rescan-delay' seconds.

    If you install binkd 0.9.4/w32 as a Windows NT service you should use it
with -C command line option.  Then binkd re-reads its configuration file.

    Before version 0.9.4 changes in the configuration file were not tested if
binkd was started in client-only mode (-c command line option).

    In the unix versions configuration file is re-read on SIGHUP signal
by the command
    kill -HUP `cat /var/run/binkd.pid`

    In the version 1.0 configuration file is re-read automatically if
changed. binkd tests on changes at every 'rescan-delay' seconds.


----------------------------------------------------------------------------


        12. How Can binkd Work With T-mail/IP?

    There is no way to do it. The protocols differ in essence: binkd uses
binkp protocol whereas T-mail/IP uses EMSI etc.


----------------------------------------------------------------------------


        13. Is There At Least One Log Analyzer Under Unix?

    There exist many Perl scripts and several win32 binaries. For example here:

    binkdstat 0.1 beta4 Christmas version 6.01.2002
    Statistics generator for binkd
    (c) Dmitry Sergienko, 2:464/910@fidonet, dmitry@trifle.net 14.08.2000
    http://binkd.grumbler.org/loganalisers/binkdstat-ds.0.1_beta4_Christmas

    There also exists BndStat program:
    BNDST101.ZIP   34812 14-Aug-01 (AREA:AFTNMISC)
    BndStat 1.01. With sources. binkd statistics generator. Compiled for all
    platforms. Included win32 binaries. (C) Dmitry Rusov, 2:5090/94

    Log analyzer by val khokhlov (perl):
    http://www.vk.kiev.ua/create/soft.html#bnkds
    http://binkd.grumbler.org/loganalisers/stat-binkd.pl.gz

    binkdstat (c) val khokhlov, Dmitry Kolvakh, updated at April 2006
    http://binkd.grumbler.org/loganalisers/binkdstat.zip

    T-Hist (c) Michael Markowsky, 2:5020/378 (KLUG's BBS)
    Binary log file analyzer for various mailers including binkd.
    Works in DOS, Windows NT (2000, XP, 2003) and OS/2.
    ftp://ftp.grumbler.org/pub/binkd/hist30a7.zip

    Kleine Statistiker/BINKD for DOS v0.60a, Russian version
    A small statistics generator for posting statistics to an echo conference.
    ftp://ftp.grumbler.org/pub/binkd/statddos.rar


----------------------------------------------------------------------------


        14. binkd Connects Too Slowly (~20 Seconds) Though I Have a High-Speed LAN

    It is possible that 'backresolv' parameter is on (for logging the remote
host domain name) and DNS is not configured.

    The simplest solution is to comment the 'backresolv' out in the
configuration file.  Configuring DNS is a more complex solution.


----------------------------------------------------------------------------


        15. Why Does binkd Not Understand Command Line Options When I Start It From inetd?

    You should use the program name as the first parameter in inetd.conf (it
may be any string for binkd), the second and the following parameters
are the command line options (-iqs etc.) and the last parameter is the
configuration file full path:

    binkp stream tcp nowait root /usr/fido/binkd binkd -isq /usr/fido/binkd.cfg

    If you do not use -q option then you should switch console output off
(comment 'printq', 'percents', 'conlog' out).


----------------------------------------------------------------------------


        16. Can One Make a File Request From binkd?

    It's a piece of cake! binkd supports WAZOO FREQ with an external helper.

    To request files from a remote system it is necessary to create a file
of type nnnnmmmm.REQ and to put it in the outbound directory next to *.?ut
and *.?lo files. But *.REQ files do not initiate binkd to call a link so 
to make a FREQ it is necessary to make a poll. The contents of a .REQ file
is described in the "!SRIF.TXT" file which is a copy of FSC-0086.001 from
http://ftsc.org


----------------------------------------------------------------------------


        17. How Can my binkd Respond to a File Request?

    One can configure binkd for calling an external file request processor
supporting SRIF (FSC-0086) for receiving and handling FREQs in binkd. Please
read the "!SRIF.TXT" file and the comment to 'exec' in the configuration
file.

    Here are the examples of lines in configuration file for DOS-based OS
and for *nix (you should use regular expressions in the latter case for
binkd to match both upper-case and lower-case letters, e.g. both *.REQ and
*.req):

    exec "\\ftn\\allfix\\allfix.exe RP -SRIF *S" *.req

    exec "/ftn/bin/tmafreq-srif *S" *.[rR][eE][qQ]

    A bash script "srifreq" is delivered with binkd starting with version 
1.1a19.
    The following file request processors are also compatible with binkd 
(but they are not the only ones, any other one supporting SRIF will do):

    Allfix by Harms Software Engineering: it is a fileecho processor with
built-in file request processor and it has versions for DOS and OS/2;

    ViReq by Michael Haase (2:2432/280): a specialized FREQ processor for
Windows, it is distributed by Michael Massenberg (2:2411/505) via modem,
ISDN and Fido-over-IP.

    tmafreq by Maxim Timofeyev <tmahome@mail.tma.spb.ru>: the FREQ processor
is created for a unix-like OS and ported into Windows. One may obtain tmafreq
from different BBS and FTP with fileecho archives, or may get tmafreq sources
from anonymous CVS :pserver:anoncvs@tma.spb.ru:/cvsroot, module "tmafreq".

    VIREQ/x by Volker Imre <volker@imre.dyndns.org> (2:246/2098): the FREQ
processor is created for a unix-like OS but can be compiled in the OS/2, 
Windows and maybe other operating systems. Now it is included into "ftnapps" 
project on Sourceforge and may be downloaded from 
http://ftnapps.sourceforge.net/vireq.html.
Binaries built for Win32 and OS/2 may be downloaded from
http://download.binkd.org  and
http://sites.google.com/site/vasilyevmax/fido


----------------------------------------------------------------------------


        18. How Can I Add binkd To a Fidonet Box Working With a Modem?

    You must configure your modem mailer and tosser for BSO (binkley-style
outbound) mode so that all of them including binkd would have the same
inbound directories (and also the same outbound directories). For example,
one may put the following line to T-Mail mailer configuration file:

    BinkStyle_Pack_For All

    If your mailer can work with AMA (arcmail-attach) only you may try to
use fileboxes and/or find programs that can convert your mailer's queue to
BSO or fileboxes. For example, Mail2dir utility allows using fileboxes with
FrontDoor. Such a means disables a possibility of sending your mail to the
same link both by IP and by modem (for instance, when one of the channels
failed). There is another more radical but more flexible way: you may change
your mailer.
    See also question 35.


----------------------------------------------------------------------------


        19. Flags Are Not Created On Receiving a File, Programs Do Not Start

    For sure you have a wrong template in the configuration file. You have to
use it this way (the first two lines are for Windows and OS/2, the rest are
for the Unix-like OS):

    flag m:\\ftn\\flg\\pntseg.flg m:\\\\ftn\\\\inbound\\\\sec\\\\pntstr*.*
    flag m:\\ftn\\flg\\toss.flg *.su? *.mo? *.tu? *.we? *.th? *.fr? *.sa? *.pkt

    exec "/usr/local/bin/ftrack -c /fido/conf/ftrack" *.[Pp][Kk][Tt]
    flag "/ftn/flg/echo-in" /ftn/inboundsec/*.[Ss][Uu][0-9A-Za-z]
    flag "/ftn/flg/echo-in" /ftn/inboundsec/*.[Mm][Oo][0-9A-Za-z]
    flag "/ftn/flg/echo-in" /ftn/inboundsec/*.[Tt][Uu][0-9A-Za-z]
    flag "/ftn/flg/echo-in" /ftn/inboundsec/*.[Ww][Ee][0-9A-Za-z]
    flag "/ftn/flg/echo-in" /ftn/inboundsec/*.[Tt][Hh][0-9A-Za-z]
    flag "/ftn/flg/echo-in" /ftn/inboundsec/*.[Ff][Rr][0-9A-Za-z]
    flag "/ftn/flg/echo-in" /ftn/inboundsec/*.[Ss][Aa][0-9A-Za-z]
    flag "/ftn/flg/fech-in" /ftn/inboundsec/*.[Tt][Ii][Cc]

    You must use the full path with four slashes for the file to receive or
the template should start with an asterisk character. You must use two
slashes for the flag file.

    You must use the full path because using a filename without path means
the event of receiving the file in the current directory and not in the
inbound directory. If a template begins with "*" then it means "any
directory" (and since all the files are received in one of the inbound
directories it works for both password protected and for unprotected
sessions).

    In a UNIX-like OS you should take into account that filenames are case
sensitive. Please use regular expressions in templates.


----------------------------------------------------------------------------


        20. 'skipmask' Keyword Does Not Work

    A filename is compared without path and the comparison is case
sensitive when 'skipmask' is used.


----------------------------------------------------------------------------


        21. binkd Under Windows 3.x

    Sergey Zharsky (zharik@usa.net) ported binkd 0.9.2 and binkd 0.9.5 for
Windows 3.x. They work using IP stacks Trumpet Winsock ver. 3.0 revision D
and Novell TCP/IP Client for Win 3.11 (see the answer to the question
'binkd Under DOS', the section "The DOS version has the feature...").


----------------------------------------------------------------------------


        22. Different FTN Domains in binkd And a Tosser Without 5D Support

    Suppose there are two domains (with different zone numbers though it
does not matter).  Mail can be successfully sent to the first domain but
not to the second one. This situation may arise if the tosser, the tracker
and the other your FTN programs do not support 5D BSO.

    This is a typical binkd configuration for two FTN domains and 5D
outbound:

    domain fidonet c:\\ftn\\outbound\\fidonet 2
    domain omeganet c:\\ftn\\outbound\\omeganet 11
    address 2:5070/222@fidonet 11:58/6@omeganet

    One must configure not the zone of your own address for 'domain'
keyword as one might think but the zone that should not be appended to the
outbound name (i.e. the outbound subdirectory extensions are not processed
for the zone denoted in the 'domain' line).

    If your tosser would create bundles for omeganet in the omeganet
directory then you should write as indicated above. But since it does not
work with 5D and it creates the bundles in fidonet.00b then you should
write this way:

    domain fidonet c:\\ftn\\outbound\\fidonet 2
    domain omeganet c:\\ftn\\outbound\\fidonet 2
    address 2:5070/222@fidonet 11:58/6@omeganet

    It is obligatory to configure all your addresses with domains. The
outbound directory and the path should be the same everywhere (4D tosser
considers all addresses to belong to one domain).

----------------------------------------------------------------------------


        23. How Does "domain ... alias-for ..." In The Configuration File Work?

    An alias is taken into consideration when the remote site address is
analyzed.

    Example:
    domain fidonet.org alias-for fidonet

    'fidonet.org' in the remote site address will be changed to 'fidonet' and
address 1:2/3.4@fidonet.org will be dealt with as 1:2/3.4@fidonet.


----------------------------------------------------------------------------


        24. What Does "send: TCP/IP error (-10000)" Mean and How To Cure It?

    There are two bugs here, one of them had been fixed before a branch for
binkd 0.9.5-stable was created.

    1. The fact is that the error number was not stored in a pair of places
in binkd code but it became apparent nowhere except the Windows version. It
showed there because unlike others the MS Visual C run-time library does
not correspond to the standard. 'errno' and 'h_errno' are macros in MSVC
RTL and they expand to system calls which in the end call GetLastError().
And the variable errno to which the function returns its value is cleared
to zero at every successful system call.  Thus errno is cleared at
successful file open (according to the C standard errno should not change
if there were no more errors). The influence of the bug is fixed in binkd:

    2003/04/28 07:30:16  gul
    * Bugfix: Log() changes TCPERRNO

    2. A Winsock bug: select() always returns successful for a non-blocked
socket.  The influence of this and other Winsock bugs is partially fixed:

    2003/06/06 16:27:44  gul
    * Workaround winsock bug - giveup CPU when sending file
    2003/08/11 08:41:55  gul
    * workaround winsock bug (patch by Alexander Reznikov)
    2003/08/24 00:29:31  hbrew
    * win9x-select-workaround fix, thanks to Pavel Gulchouck)

    At the high log level many messages of the 'data transfer would block'
type and debug info on select() execution is still logged. It does not
influence a regular work mode. It could be fixed but Pavel decided not to
complicate the code.

----------------------------------------------------------------------------


        25. Argus (Radius) and binkd: Argus Error "Aborting due to carrier loss"

    A session between binkd and Radius (or Argus, it does not matter) is
aborted "due to carrier loss" when traffic encryption is enabled in Radius.
Moreover the connection at the binkd side is aborted due to the remote side
initiative ("Connection reset by peer").

    Log from the Radius side:
    30-Aug-2003 22:24:31 Encrypted (2:463/375) session
    30-Aug-2003 22:24:32 Aborting due to carrier loss
    30-Aug-2003 22:24:32 Session aborted
    30-Aug-2003 22:24:32 End

    The reason is that Argus authors implemented an encryption method of
their own which is not implemented in binkd. It would be OK but Argus (and
Radius together with it) does not keep compatibility with binkp protocol:
the encryption is enabled unconditionally without checking if the remote
side supports it. Such a glaring contradiction to the specification is
inadmissible but alas... The way out is to disable encryption in Argus for
every link using binkd.

    The correct mailer behaviour should be as follows:
    - if encryption is not mandatory then proceed with the nonencrypted
session;
    - if encryption is set mandatory in the mailer configuration then it
should inform the remote of aborting the session, for example in such a way:
    M_ERR "DES encription required"


----------------------------------------------------------------------------


        26. The Outbound Name Has a Comment Char and binkd Doesn't See It

    If binkd is configured in a working system where Bink/+ is used and the
outbound path contains "#" character which is a comment character for binkd
the character should be escaped by a backslash in the binkd configuration
file for binkd to interpret it correctly.

    domain fidonet c:\\fido\\\#out
    inbound-nonsecure c:\\fido\\unsec\#in
    inbound c:\\fido\\\#in

    It is not necessary to escape the character in the version 1.0 starting
with the snapshot 1.0a-317 because the beginning of a comment in the middle
of a line is now the sequence of either a space and the pound character
(" #") or a tab and the pound character.  See the examples below.

    There is no comment:
    temp-inbound c:\\fido\\temp#this_is_not_a_comment_but_a_directory_name

    There are comments here:
    inbound c:\\fido\\in # this is a comment since there is a space before "#"
    # This whole line is a comment.


----------------------------------------------------------------------------


        27. Is There a Possibility to Start an Application On an Event From binkd?

    If time events are discussed then no, there is not and there will never
be.  There are diverse schedulers for controlling such events and they are
included in the distribution packages of modern operating systems.

    As to an event of receiving a file it is implemented long ago (starting
with the version 0.9). See tokens "exec" and "flag" in the configuration
file.


----------------------------------------------------------------------------


        28. What Is the Difference Between binkd/w32 and binkd/w9x?

    binkd/w32 is a traditional version of binkd and a console application.
binkd/w9x is a GUI Win32 application creating temporary console windows in
case of necessity. If one starts binkd/w32 in the existing console window
(for example, in the command.com or cmd.exe window) it will work in the
same window. Unlike it binkd/w9x immediately transfers control to the
calling task.

    The development of binkd/w9x was necessitated by several significant
differencies between Windows 95/98/Me and Windows NT/2000/XP/2003.

    In the first place console is implemented differently. The main
difference: Windows 9x console does not react to shutdown and close window
signals thus a working binkd/w32 cannot stop correctly when the window is
closed or the system shutdown (or reboot) is performed.

    In the second place the principles of performing a service differ in
different branches of Windows.

    As a result binkd 1.0a/w32 can work as a service only in Windows
NT/2000/XP/2003 and binkd 1.0a/w9x as a service only in Windows 95/98/Me.
It is planned to support Windows NT service in binkd/w9x. A correct support
of working as a service under Windows 9x is impossible for binkd/w32
because of the described console features in the systems.


----------------------------------------------------------------------------


        29. I Miss a Chat in binkd And I Want To Synchronize Time!

    You may use talk, icq or irc (or even Gadu-Gadu) for chatting. If you
can start binkd then all the programs mentioned here and many other ones
may use the same channel. You may chat as much as you like.

    And there are special utilities for synchronizing time via IP, for
example ntpdate. Unlike mailers such utilities take time from the precise
time servers.


----------------------------------------------------------------------------


        30. binkd Receives an Incoming Call Only After an Outgoing One.

    Such a behaviour was observed for binkd/w32 working as a service on a
computer with McAfee Firewall installed. The firewall starts after binkd
start-up, does not detect any binkd activity and does not allow to
establish a connection. Thus one must ensure that binkd starts after
firewall has started.

    The possible decisions: give up using binkd as an independent Windows
NT service and start it from another service or start it as a usual program
or stop using such a firewall.


----------------------------------------------------------------------------


        31. "start_file_transfer: ECHO is off.: No such file or directory" Error.

    One may see the following in the log file:
    ? 10 Sep 20:37:23 [1664] start_file_transfer: ECHO is on.: No such file
or directory

    Such a situation may occur when you have created a poll with the command
    echo >> 12345678.ilo

    The above mentioned line in the log file is the message from the echo
command on its current status of the output to the screen. See question 32
on how to correctly create a poll. See also question 09.


----------------------------------------------------------------------------


        32. How to Create a Poll Correctly.

    To create a poll in BSO one should create an empty file NNNNMMMM.ilo,
NNNNMMMM.clo, NNNNMMMM.dlo or NNNNMMMM.flo. The filename consists of the
hexadecimal net number (first 4 characters), the hexadecimal node number
(the characters from 5 to 8), the dot, the flavor attribute character
(i = immediate, c = crash, d = direct, f = normal) and two characters "lo".

    Certainly you should not create the file, if it already exists. Moreover
you should not overwrite it to avoid losing your mail.

    The most universal command (it works under DOS, Windows, OS/2, UNIX
clones, CP/M and many others) is

    cd . >>NNNNMMMM.flo

    Such a command also works under DOS, Windows, OS/2:

    type nul >>NNNNMMMM.flo

    You may choose one of the following commands for UNIX clones:

    touch NNNNMMMM.flo
    echo -n "" >>NNNNMMMM.flo
    >>NNNNMMMM.flo
    cat /dev/null >>NNNNMMMM.flo


----------------------------------------------------------------------------


        33. What Does the Number in Brackets in the Log Mean?

    It is either PID (Process ID) in the multiprocess binkd versions (for
example, in the versions for UNIX-like OS), or TID (Thread ID) in the
multithreaded binkd versions (for example, in Windows versions).
    The process (or the thread) number simplifies the log analysis: it
allows picking out messages from one binkd process (or thread). In
particular, it allows separating the messages from the different sessions.


----------------------------------------------------------------------------


        34. How to Configure binkd for sending outgoing mail?

    You should configure your netmail packer in such a way that your mail
is packed to BSO (Binkley Style Outbound) packets. If you have not used
such a program before then you should install it. In some modem mailers the
possibility of packing netmail to BSO has been provided by their developers
(for example, in T-Mail starting with the version 2500).
    See also the answer to question 18.


----------------------------------------------------------------------------


        35. What for Does One Need the "share" Directive in the Configuration File?

    Shared AKA is used for sending netmail to one of the alternative routes
and is your protection for the case when your netmail link goes down.  In
the sample configuration file

    share 2:999/999 2:5020/52 2:5020/238

the uplinks are 2:5020/52 and 2:5020/238 with the shared AKA 2:999/999
added.  Then you configure packing netmail to 2:999/999 and binkd will send
it to one of the two uplinks, the session with which will occur earlier.
If there is no connection to 2:5020/52 the netmail will go to 2:5020/238.
If there is no connection to 2:5020/238 it will go to 2:5020/52. The
package addressee 2:999/999 will be replaced by the real one and the
package password will be set to the one of the real link.
Shared AKA is implemented in binkd 1.0 and above.


----------------------------------------------------------------------------


        36. What for Does One Need the "ftrans" Directive in the Configuration File?

    It is necessary for placing binkd and your tosser at different computers
in the net, when outbound resides at a net drive and the paths to it are
different. Moreover the tosser may run on a computer with FAT and the paths
of the d:\long\path\to type, and binkd may run on a UNIX machine with paths
of the /mnt/samba/wincomp1/path/to type.


----------------------------------------------------------------------------


        37. Why binkd in Windows Works As a Service With Admin Rights Only?

    Information security manuals advise running each service with rights of a
separate user. But if one tries to do it for binkd, it will result in an error
and to get the correct result one has to change some settings. It is easier to
take binkd version 1.0-499 or later, where the rights needed for running binkd
are minimized. If you are using binkd 0.9.x, some additional tweaks are 
necessary.
    First of all only administrator can install and start a Windows service.
One may use Group Policy to give a user rights to install, start, stop and 
uninstall a service. One may also use for that subinacl.exe utility which may 
be downloaded from here:
http://www.microsoft.com/en-us/download/details.aspx?id=23510
    Secondly, when binkd 0.9.x works as a service, it needs a right to write
to the registry branch 
HKLM\\SYSTEM\\CurrentControlSet\\Services\\binkd-service\\parameters
(if you have chosen a special service name at the binkd service installation,
the chosen name with removed spaces will be there instead of "binkd-service").
    So you may install the service using an administrative account and after 
that you may edit the service settings in the System Services snap-in: set a
user (for example, 'fido') and a password. For binkd 0.9.x you also have to 
allow editing the registry branch to 'fido' user. This can be done with the 
help of registry editor or the above mentioned subinacl.exe.
    To allow a user 'username' to start and stop binkd service with the name
'binkd-service' one may use the command:

    subinacl /service binkd-service /grant=username=TO

    For more details see http://support.microsoft.com/kb/288129/en-us and
http://tinyurl.com/kqnbpfu


----------------------------------------------------------------------------


        38. Will Anybody Make Nodelist Support in binkd After All?

    binkd is a daemon in which binkp protocol is implemented. It performs this
function only. It has no netmail scanning (AMA), chat, areafix and other 
Fidonet thingies. Actually it can be used outside of Fidonet for batch file
transfer.
    It is enough versatile to satisfy users' wants and wishes without necessity
to patch the source code and to rebuild binaries. Settings are defined in a
text configuration file and when it is not enough, Perl hooks can be used. In 
fact it is a part of the configuration written in Perl. In such a way one may,
for example, store links and password information in MySQL or LDAP and perform
many other tricks.
    Retrieving addresses from the nodelist is one of such functions which may
naturally be realized using Perl hooks. If some changes in the nodelist format
happen, it is not necessary to issue a new binkd version and update binkd at
all nodes. It is enough to change the Perl nodelist parsing function (i.e. in
fact in configuration file) leaving binkd binary the same.
    If on the other hand there is a solid reason to parse the nodelist using
binkd itself (for instance, if your binkd works in a laundry washer which has 
no Perl and using DDN is undesirable for some reason), and if someone sends
along a patch for parsing nodelist inside binkd, then with high probability
the patch will be applied and binkd will support nodelist natively.


----------------------------------------------------------------------------


        39. Does binkd Support non-ASCII Domain Names?

    Yes, it does. In Windows such a domain name may be used directly in binkd
configuration file. In Linux and OS X it should be translated to Punycode
beforehand.


----------------------------------------------------------------------------


        A1. I Have Found a Bug in binkd!

    Try to refresh your binkd version (it is possible that the bug has
already been fixed).  If it did not help please write to developers:

    binkd-bugs@happy.kiev.ua
    Pavel Gulchouck 2:463/68

    Mailing list binkd-dev@happy.kiev.ua

    In your message please describe in detail the situation when the error
happens. Please do not forget to mention your binkd version and to cite a
piece of detailed log (loglevel more than 5).
    The good general manual on composing bugreport was written by Sajmon
Tethem: http://www.chiark.greenend.org.uk/~sgtatham/bugs.html


----------------------------------------------------------------------------


        A2. I Want To Talk To Developers

    Dmitry Malov who is the author of the first binkd versions does not
develop it any more now. Since year 2000 the project is coordinated by 
Pavel Gulchouck 2:463/68 (Pavel Gulchouck <gul@gul.kiev.ua>). He also 
writes the most part of the code.

    There is a mailing list for developers and testers:

    binkd-dev@happy.kiev.ua.

    To subscribe to it write a message:

    To: majordomo@happy.kiev.ua
    Subject:

    subscribe binkd-dev


----------------------------------------------------------------------------


        A3. I Want To Get Information About Changes In binkd Immediately!

    Please subscribe to the mailing list binkd-diffs@happy.kiev.ua: the
changes in the sources are sent here (you may also test patches for errors).
You may read how to subscribe in the previous answer.

    There are two FIDOnet echomail conferences for discussions on binkd and
for dialogue of the users and the developers: Russian RU.BINKD and
international BINKD (in English).  Please look for them at echomail hubs :).


----------------------------------------------------------------------------


        A4. And When Will binkd Do ... ?

    Maybe it will do it some time in the future. And maybe not. You may wait
until the feature you wish will be implemented or you may "fix" it yourself:
the source code is open. Please do not forget to send your patch to the
developers, it will be possibly included in the main development branch and
for sure it will be put to the Web site or the FTP archive.


    === The end.
