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 https://sites.google.com/view/vasilyevmax/ (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 : 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 (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 https://sites.google.com/view/vasilyevmax/ ---------------------------------------------------------------------------- 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 ). 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.