0.8u1 ------ NT/95: Fixed a bug in nt/TcpErr.c. We show correct information about errors now. 0.8u2 ------ NT/95: The "reference" compiler changed. NT & W95 versions are compiled with MSVC now. Watcom C is not supported any more. Cosmetic changes to compile binkd with MSVC without warnings. Known bug: binkd exits incorrectly with ctrl-c/ctrl-break 0.8.5 ----- Binkd used to close unsecure sessions only by timeout, fixed readcfg.c rewritten FTN_DOMAIN and FTN_NODE moved to ftndom.h, ftndom.c, ftnnode.h, ftnnode.c Now one can specify an alternative port for a node in config.file: # node 5047/13 hostname.domain:altport - Fixed "bind: Address already in use" Now we define and use INVALID_SOCKET and SOCKET_ERROR instead of -1 for WINSOCK compatibility Logfile is opened just before writing and closed right after that readdir.h -- The header to get POSIX directory interface out of misc compilers Now binkd removes partial .pkt's (Next time it creates a new temporary name in the inbound dir) When trying to receive a new file: remove partial files with this name but different size or time from the inbound. (By default binkd will left old parts as .dt and .hr in the inbound directory) # kill-dup-partial-files Remove all old partial files from the inbound. (OFF by default) # kill-old-partial-files NT/95: ctrl-c problems fixed Fixed a bug in protocol.c Show percents while sending or receiving # percents 0.8.6 ----- Fixed a minor bug in protocol.c (Some error msgs were not sent to the remote) Fixed "restoring poll with 'h' flavour" bug Added .csy support (A la T-Mail) Added more .?sy checks so binkd will not try to start a client to call a busy node Changed password checking a bit New keyword: # minfree binkd will skip all files from a node if the size of the next file for us there + minfree < free space in inbound Default -- don't check Flags, like this # flag D:\\bbs\\flags\\toss!.now *.pkt flag D:\\bbs\\flags\\toss!.now *.su? *.mo? *.tu? *.we? *.th? *.fr? *.sa? Misc bugs were fixed by Mike Malakhov 0.8.7 ----- Added minfree-nonsecure (see minfree). There is a good idea to set them both if you have both of your inbounds on the same file system. # minfree-nonsecure Minor fixes 0.8.8 ----- Extended the syntax of the Flag statement: # flag [!]path wildcard ... `!' before the pathname stands for "immediate" flag Binkd has become a really quiet thing. Use # printq keyword to make queue rescans verbose, and # conlog if you want binkd's log at your console. New keywords: # try hold binkd will try to call a node N times, if failed, it will hold the node for S seconds. The feature is off by default. Support for .try/.hld a la Brake Mailer g710+ Added more paranoya to inbound.c client.c/ftnq.c was rewritten Improved SIGCHLD handling, please use -DSYS5SIGNALS / -DEMXSIGNALS for SysV / EMX signal models, see reapchld.inc Added some experimental code, which will theoretically help to avoid some bugs Added "include" keyword: # include filename *IX: SIGHUP forces binkd to restart New keyword: # hold-skipped Binkd will hold all mail, skipped by a node, for S seconds. (Def. -- 3600) Extended the syntax of the Node statement: # node [[z:]n/]n[.p] [{host[:port]|-} [{pwd|-} [flavour [{obox|-} [{ibox|-}]]]]] Flavour is one of i, c, d, -, h; and is the flavour for the outbound filebox. All non-"-" fields will redefine values specified for the same node earlier in config. Default for ibox is inbound or inbound-nonsecure depending on the pwd field. Default for port is oport. Binkd sends from obox all non-dir entries NOT matching ".*" wildcard. EVERY TIME YOU PUT A FILE INTO OBOX CHECK IF BINKD WILL BE ABLE TO UNLINK IT. Otherwise, the session will never end. 0.9 (Fri May 9 15:56:43 GSD 1997) --- Perform reverse resolving (logging only) # backresolv Log pid: # pid-file /var/run/binkd.pid Sometimes binkd reported "secure session" but used non-secure inbound Binkd could not rename files with `#' in their names after receiving (Reported by Andrew Sukhorukov) Some minor bugs fixed Added command line options: -i run from inetd (OS/2 or *IX only) (*IX: don't forget to turn `printq', `conlog' and `percents' OFF when running from inetd -- binkd will not take care about this itself!!!) -c start clientmgr only -p start clientmgr only, make polls, quit if the queue seems to be empty after the next rescan -s start servmgr only Changes based on the patch by Boris Tobotras -- 1) you can now use service names (as in /etc/services) with iport/oport 2) before using 24554 as the default port number, binkd will try to find "binkp" entry in /etc/services database first Binkd/0.8.5+ used to lose netmail under UNIXs sometimes and left .pkt's as .dt under OS/2, NT, etc. :-( Fixed. (Many reports) Added syslog support -- to use it you need to make binkd with HAVE_VSYSLOG defined and add syslog facility name to config: # syslog local0 (Based on the patch by Boris Tobotras) Binkd could create a poll in *.olo instead of *.flo (Reported by Dmitry Baronov and John Gladkih) Now binkd will touch it's *.bsy's aprox. every 60 seconds. (Binkd changes *.bsy's m- and atimes only!) Extended the syntax of the Node statement: # node [[z:]n/]n[.p] [-nr] [{host[:port]|-} [{pwd|-} [flavour [{obox|-} [{ibox|-}]]]]] `-nr' stands for `Not Reliable Link', this works only on outbound calls with another binkp/1.1 mailer. The option solves the only problem with binkd having not enough time to start receiving a file from non-zero offset before the IP link is down, so don't use it unless you have this problem -- really not effective Map paths in flo's: # ftrans old-string new-string eg, # ftrans "D:\\fido\\outbound" "/var/spool/fido/outb" ftrans "\\" "/" # this replaces all slashes in a path Use as many ftrans's as you want. New keyword: # exec command wildcard ... Binkd will run the command if one of wildcards matches a rcvd file. *S in the command line will expand in a full path for a S.R.I.F file, see !SRIF.TXT for details, eg. # exec "my-freq-processor.exe /options *S" *.req (Not really tested) Fixed hang-ups in EMX version. May be. (John Gladkih) 0.9.1 (Mon Jun 16 17:37:04 GSD 1997) ----- *IX: Configure script. (see !README) Binkd could not correctly ACK receiving of files with some names (Reported by John Gladkih) Binkd ignored fileboxes' flavours (Reported by Sergey Gubanov) Changed pid-file handling a bit. Binkd will not complain about missing .rsp files when running programms with "exec" statement without using of *S macro. Binary log in T-Mail format: # binlog o:\\log\\binkd.sts tzoff 10800 # correct UTC time returned # by time() under DOS-derived OS (By Fyodor Ustinov) Binkd didn't strip disk labels (Reported by Fausto de Carvalho) Command line option `-C': exit(3) on config change -- checked on every incoming connection. (EMX BUG: binkd will not quit until all active connections are closed) Session would never end if remote skips files being sent from our outbound filebox. New keyword: # send-if-pwd Don't send (only receive) files if no password for an inbound session. Remove old .bsy/.csy files (If some are left after a system crash). # kill-old-bsy It would be wise to set this to 43200 (12 hrs) on almost any system. (Note that binkd always touches it's .bsy's/.csy's for active sessions; kill-old-bsy is OFF by default) 0.9.2 (Fri Nov 7 16:17:59 GSK 1997) ----- FronDoor- and Bink/+-style binary history (by maxb) # fdinhist in.his fdouthist out.his Amiga port by Dmitry Yurtaev You can now specify a list of internet addresses for a node: # node 999 Host-1;Host-2:333;Host-3 Some minor patches. Binkd used to remove pidfiles not in time (Sergey Babitch) Binkd will do 1:2/3.4 --> p4.f3.n2.z1.fidonet.net translation automatically if you specify `*' as the hostname for a node: # node 999 * (Yes, you can say "node 999 fido.xxx.ru;*") Use `root-domain' keyword to change the root domain default for 1:2/3.4 --> p4.f3.n2.z1 lookups: # root-domain fidonet.org. Providing a password on incoming call on UNSECURE link (i.e. no password for them in our cfg, but they send us a password) isn't an authentication error anymore (It's not a pwd-protected link either). Binkd now handles correctly files made by Bink/+'s arcshield. (patch by Pavel Gulchouck ) 0.9.3 (Wed Mar 29 10:33:34 EDT 2000) ----- When renaming a duplicate inbound file, for *.pkt and *.?ic (tic, zic, etc.) change the filename but not the extension. (patch by Pavel Gulchouck ) Ditto for arcmail. Always log remote's IP-address in dotted-decimal notation, even if `backresolv' is on. Changes to support spaces in filenames being sent via binkp: spaces and other control characters are converted to C-style \xHH form by sender and back by receiver (H -- is a hex digit, case insensitive). New command line key `-P': poll a node. For example, $ binkd binkd.cfg -P .1 will add a data record for your first point in binkd's core (if needed) and then create a corresponding *.ilo in the outbound. Binkd used to send _all_ log messages to syslogd, relying on it's ability to ignore redundant (per `syslog.conf') data. Now it will only send messages allowed by value of the `loglevel' config variable, thus reducing network traffic and increasing Binkd's syslog support flexibility. Fixed a minor bug in `node' config statement parsing. *IX: Changed code for renaming of files, now should work on FAT, SMBFS, etc. Now binkd will sort files from fileboxes before sending -- by type (first *.pkt's, then arcmail, other files, last *.?ic's) and then by file time (new files last). `Oport' configuration keyword was broken. If Binkd could not open a T-Mail-style history file once it never tried to open it again. Option "-nd" in "node" string in binkd.cfg - "No Dupe Mode" on outbound link with another binkd 0.9.3. It protects for making duplicate files while link losses, but makes link a bit slower. New options "filebox", "brakebox" and "deletebox" in binkd.cfg - support of t-mail and TheBrake! fileboxes. New option "prescan" in binkd.cfg - rescan outbound for node and send traffic prognose on session start (compartible with argus). OS/2 emx version restarts itself when config is changed and command line option "-C" is specified. OS/2 wcc version - "Too many open files" bug fixed. OS/2 & win32 versions: bsy-files are kept opened while session is active (to protect from removing). ACK is sent only when file has been successfully renamed in inbound to its realname (otherwise session drops). "The file is complete, but not renamed to it's realname, so I'll not remove it!" removed, now it's safe to delete all old .hr and .dt files in inbound. 0.9.4 (Fri Jul 07 09:54:00 EET 2000) ----- Win32 code cleanup (Dima Afanasiev ). Don't attempt to kill client manager if it's not running (Michail Vidiassov ). Fixed bug in multithread version (win32 & os2/watcom). New option "temp-inbound" in binkd.cfg - directory for the incomplete files (.dt and .hr) being received. New options "socks" and "proxy" in binkd.cfg (Dima Afanasiev ) MD5 authorization (Dima Afanasiev ) New commandline switch "-m" - disable MD5 authorization. prescan did not work on incoming sessions with send-if-pwd NT: new command line parameters "-i" (install as service) and "-u" (uninstall service) (Dima Afanasiev ) Immediate events (beginning with '!') run immediately after receiving a file (Dima Afanasiev ) Macros *F (file name), *H (host name), *A0..*A9 (remote addresses), *L (listed), *P (protected) in events (Dima Afanasiev ) Option "-ip" in "node" string in binkd.cfg - "Restrict remote IP-address". If specified incoming connections for this node are allowed only from one of the node's hosts. Prescan did not add size of files in fileboxes. Send "NUL TIME" in RFC format. NT: MessageBox if service ended with error (Dima Afanasiev ). New option "connect-timeout" in binkd.cfg - timeout for connect() in seconds. 0 - no check. Doesn't work in multithreaded versions. Recommended for linux. New option "passwords" in binkd.cfg - name of file contains passwords in t-mail format (Dima Afanasiev ). New option "defnode" in binkd.cfg - default node flags, now binkd can call an unlisted node from fidonet.net domain (Dima Afanasiev ). SIGHUP handler fixed (sometimes binkd/unix exited instead of restart). -C did not work with -c (client only). binkd -C now checks included config-files. binkd -c did not handle SIGHUP (unix). binkd -C now restarts itself if config changed (unix). binkd/2 EMX now restarts itself by SIGHUP. Some protocol bugs are fixed (skipping files in NR- or ND-mode caused waiting for session timeout). configure sometimes added redundant libraries. binkd/2 Watcom did not set modification time of received files. New options "-md" (require md5 authorization) and "-nomd" (disable md5 on outgoing calls) in "node" line (Dima Afanasiev ) 0.9.5 (Thu Sep 04 2003 18:18:04) ----- 64-bit integer fix (Tobias Ernst 2:2476/418). Allow '-' and '_' in domain names (Tobias Ernst 2:2476/418). "defnode" did not work correctly in 0.9.4. binkd/win: run() fix for no inherit open files (i.e. *.bsy). @command - run in background (Dima Afanasiev ) binkd/os2-emx: run() fix binkd/os2: don't send hidden files from filebox New command-line parameter '-m' - do not use MD5 authorization. If remote requests file offset more then file size, touch the file and drop the session in order to send it from 0 at the next session. binkd/unix: run as daemon (Alex Semenyaka ). New option skipmask in binkd.cfg - don't receive (destructive skip) files by specified wildcards. getfree() bug if free space >4G fixed. NTLM proxy authotization (Dima Afanasiev ). New option bindaddr in binkd.cfg - bind to specified interface (Dima Afanasiev ). Run by-file events with the same command-line once after session. Bugfix in ftrans (thanks to Aleksey I Zavilohin ). New option inboundcase in binkd.cfg - set case style for received files (Kostya Falkov 2:5014/33@fidonet) New option deletedirs in binkd.cfg - delete empty point dirs in BSO. Do not send empty (60-bytes) pkt files. New option overwrite in binkd.cfg - overwrite an older file by the newer. Run as service under win9x (Alexander Reznikov 2:4600/220@fidonet). Check free space on inbox if defined. Fix security vulnerability (DoS) (andrew clarke ). Assume default domain for remote 4D address. Do not resolve hosts if proxy or socks5 is used. Do not give unsecure mail to secure link when send-if-pwd. Amiga Style Outbound (ASO) support. New option -sip in node string: strict IP check; host needs to be specified, resolved and matched. For -ip option an unresolved host is ok. Crypt traffic, new option -r (disable crypt). NR- and ND-modes can be asymmetric now, options -nr and -nd set mode only for receiving files from this node. Version for DOS (ported by Victor Pashkevich, 2:451/30@fidonet) 1.0.0 (Thu Jun 21 2012 08:55:22) ----- New config option "share" - shared aka definition (patch from Igor Krassikov 2:463/59). New config option check-pkthdr, link options -hc, -nohc - check pkt src addr (val khokhlov ). Perl hooks (val khokhlov ). Bugfix: do not transmit negative value of file time in binkp commands and check file time in received frames (Stas Degteff ). New config option "nolog" - inhibit specified log messages (val khokhlov ). New config options "present-aka" and "hide-aka" (val khokhlov ). Reload config "on the fly" (Roman Trunov ). Ifcico/qico passwords file format support (Stas Degteff ). Compression (zlib, bz2) support. New config keywords zallow, zdeny (val khokhlov, Pavel Gulchouck). New commandline option -vv - show optional compiled-in extensions. New commandline option -d - dump parsed config and exit. Comments in config now starts only if '#' follows after space. Argus-compatible file requests implementation. Log file may be defined in enviroment variable BINKD_LOG. New option -S specifies service name (NT, w9x). New option -t operates with NT and w9x service (start, stop, query status, install, uninstall). Icons and binary descriptions for 32 bit windows versions (Icon autor: Tany Bobrova ). 'skipmask' is replaced with 'skip', which allows more skipping features and has another format (val khokhlov ). New config parameters zlib-dll and bzlib2-dll for win32 versions compiled with ZLIBDL support. Fixed ND-mode which was broken 01 Oct 2004 in all versions of BinkD (Roman Trunov). New optional parameter root-domain for 'domain' config option. New config option dont-send-empty - inhibit sending empty (zero-size) files. Fixed bug in sending partial files without NR- or ND-mode. Build using MS Visual C: Perl*.dll not required now at run-time, this dll is loaded only if needed. Default root-domain fidonet.net changed to binkp.net. Add IPv6 support - default if building system supports RFC2553 API, except under Win32 where it needs to be enabled explicitly (set IPV6=1 during make). Under Win32 at least WinXP SP2 is required. Outbound IPv4 or IPv6 usage can be limited by using -4 or -6 node parameters respectively. Add FSP-1035 (IN SRV DNS records) support. Currently only Unix and Win32 (add FSP1035=1 for make) versions supported. 1.1 --- Failed DNS lookups in multi-threaded environments may lead to mutex semaphore not being released. Possible segfault on after_session perl hook. New option "-pipe" in node line - call via stdin/stdout of external command. New config option "rename-style [postfix|extension]" - method for generate unique filename in inbound dir for received file if file with the same name already exists. New config option "listen" for set incoming interface/port (multiple).