Compare commits
11 Commits
634fc3e3e5
...
132a6641f4
Author | SHA1 | Date | |
---|---|---|---|
132a6641f4 | |||
f80d94413f | |||
ae156c4689 | |||
2827504df4 | |||
c2f9843291 | |||
d94ba35438 | |||
a6a1dc2881 | |||
c766c4a9f7 | |||
6547b13983 | |||
89c030d26c | |||
a01ea3fd63 |
176
CHANGES
176
CHANGES
@ -58,3 +58,179 @@
|
|||||||
then sending/receiving. Recode tables are compartible with HPT. New
|
then sending/receiving. Recode tables are compartible with HPT. New
|
||||||
config keywords: "Recode_file_in", "Recode_file_out", "Recode_intro_in"
|
config keywords: "Recode_file_in", "Recode_file_out", "Recode_intro_in"
|
||||||
|
|
||||||
|
Konstantin Stepanenkov, 2:5030/1251
|
||||||
|
0.22.7.kst1
|
||||||
|
===========
|
||||||
|
|
||||||
|
* Attempt to fix warnings, when compiling with -Wall.
|
||||||
|
+ make update -- install only binaries.
|
||||||
|
* Better EMSI handling, when calling to cisco.
|
||||||
|
+ Correct ZMH support in daemon.
|
||||||
|
* Some fixes in contributed perl scripts.
|
||||||
|
|
||||||
|
0.22.7.kst2
|
||||||
|
===========
|
||||||
|
|
||||||
|
+ Added option --with-uucp-lockdir=... to configure.
|
||||||
|
* Using strncpy(3) instead of strcpy(3) if possible.
|
||||||
|
|
||||||
|
Added patches by Maxi Rovnich @ 2:5030/872:
|
||||||
|
+ Support for maximum 'no dialtone' count.
|
||||||
|
+ Support for download resyncing, while checking for free space.
|
||||||
|
+ Ignore all files, but *.pnt, *.req, *.?lo and *.?ut in BSO.
|
||||||
|
|
||||||
|
0.22.7.kst3
|
||||||
|
===========
|
||||||
|
|
||||||
|
* Compilation failed with --disable-hangup-watch-cd. Fixed.
|
||||||
|
+ Ability to write daemon pid in file.
|
||||||
|
* -f option had reverse meaning. Thanks to Eugene Korovin @ 2:5080/196.72
|
||||||
|
+ -q option terminates daemon process (only if pidfile is used).
|
||||||
|
|
||||||
|
0.22.7.kst4
|
||||||
|
===========
|
||||||
|
|
||||||
|
* Hydra was broken in kst2. Fixed.
|
||||||
|
+ Bidirectional session drops only if rxcps and txcps are less than
|
||||||
|
mincps at the same time.
|
||||||
|
|
||||||
|
0.22.7.kst5
|
||||||
|
===========
|
||||||
|
|
||||||
|
+ port tcpip patch by Serge N. Pokhodyaev @ 2:5020/1838
|
||||||
|
* lock fix, when outbound on not lockable filesystem.
|
||||||
|
Patch by Andrew Dolgov @ 2:5030/394.41
|
||||||
|
|
||||||
|
0.22.7.kst6
|
||||||
|
===========
|
||||||
|
|
||||||
|
* traffic wasn't shown if no files in boxes.
|
||||||
|
Patch by Alexander Shiyan @ 2:5030/39.2
|
||||||
|
* bfstat now correctly shows age of files.
|
||||||
|
Patch by Alexander Shiyan @ 2:5030/39.2
|
||||||
|
* logging 'undefined cmd' fixed.
|
||||||
|
Thanks to Pavel I.Osipov @ 2:5020/770.50
|
||||||
|
|
||||||
|
0.22.8.kst7
|
||||||
|
===========
|
||||||
|
|
||||||
|
Some changes taken from 0.22.8 by Alexander Belkin:
|
||||||
|
* some bugfixes
|
||||||
|
+ new environment variable $RC (session return code)
|
||||||
|
+ sending of EMSI_ACK every time after recving of EMSI_DAT
|
||||||
|
+ support for nodelist IBN flag
|
||||||
|
|
||||||
|
0.22.8.kst8
|
||||||
|
===========
|
||||||
|
|
||||||
|
* fixed bug with flags CM in override
|
||||||
|
* fixed bug with sending HUP to daemon
|
||||||
|
|
||||||
|
Andrey Slusar <anray@users.sourceforge.net>
|
||||||
|
Evgeniy Kozhuhovskiy <e.kozhuhovskiy@gmail.com>
|
||||||
|
Sergey Babitch <vpooh@users.sourceforge.net>
|
||||||
|
|
||||||
|
0.22.8.ugenk1
|
||||||
|
=============
|
||||||
|
+ initial release, based on bforce 0.22.8.kst8
|
||||||
|
* fixed problem with worktime detecting
|
||||||
|
+ makefiles fixed (removed make update, now make install installs config files with extension .sample)
|
||||||
|
+ added --with-user and --with-group options to ``configure'' script.
|
||||||
|
+ installation directories by default are compliance with default fidogate installation
|
||||||
|
|
||||||
|
0.22.8.ugenk2
|
||||||
|
=============
|
||||||
|
* pathes by Andrey Slusar @ 2:467/126
|
||||||
|
(total 12: patch-bforce.c, patch-bfstat.c, patch-daemon.c, patch-expression.y,
|
||||||
|
patch-nlookup.c, patch-prot_binkp.c, patch-prot_emsi.c, patch-prot_yoohoo.c, patch-prot_zmrecv.c,
|
||||||
|
patch-prot_zmsend.c, patch-sess_call.c, patch-sess_stat.c)
|
||||||
|
+ added syslog support (see SYSLOG)
|
||||||
|
+ fixed nlookup (broken in ugenk1)
|
||||||
|
+ spec file now goes with bforce
|
||||||
|
|
||||||
|
0.22.8.ugenk3
|
||||||
|
=============
|
||||||
|
+ fixed working with syslog (not tested yet, any volonteers?)
|
||||||
|
* some bugfixes
|
||||||
|
|
||||||
|
0.22.8.ugenk4
|
||||||
|
=============
|
||||||
|
+ fixed problems with license (thnx to Jonathan Gonzales V. from gnu.org)
|
||||||
|
+ added nomail flag
|
||||||
|
- project moved to sourceforge.net (projectname - binkforce)
|
||||||
|
+ now --enable-syslog is by default! Read SYSLOG for details
|
||||||
|
+ nodelist mask detection (see sample config for details)
|
||||||
|
+ contrib/outman now supports bso (thnx to Andrew Leonov @ 2:4641/500.119)
|
||||||
|
|
||||||
|
0.22.8.ugenk5
|
||||||
|
=============
|
||||||
|
+ fixed ``got unexpected emsi sequence "EMSI_INQC816"''
|
||||||
|
+ added some features to INSTALL.ru
|
||||||
|
* added documentation about incoming sessions over ip/pstn by Igor Mitichev
|
||||||
|
|
||||||
|
0.22.8.ugenk6
|
||||||
|
=============
|
||||||
|
+ some changes in autoconf
|
||||||
|
* added Type to nlookup
|
||||||
|
* fixed 'Ñ' in FAQ
|
||||||
|
* added buggy-emsi option in configure. use it in case of problems with stupid mailers
|
||||||
|
* fixed hydra
|
||||||
|
|
||||||
|
0.22.9
|
||||||
|
======
|
||||||
|
+ Changed version for compliance with *BSD ports
|
||||||
|
+ Added possibility to run external program for each override and
|
||||||
|
hidden. See bforce.subst.sample for examples and
|
||||||
|
docs/readme.txt for details.
|
||||||
|
+ Implement binkp/1.1 (Multiple Batch Mode and Non-reliable Mode).
|
||||||
|
+ Turn on FREQ at binkp sessions.
|
||||||
|
|
||||||
|
fidoman (Sergey Dorofeev)
|
||||||
|
=== 2012-03 ===
|
||||||
|
|
||||||
|
$DEBUGLEVEL, $DEBUGFILE removed - please use configuration options
|
||||||
|
|
||||||
|
DNS zone support
|
||||||
|
|
||||||
|
=== 2012-02 ===
|
||||||
|
|
||||||
|
Netspool support
|
||||||
|
24554 protocol remake
|
||||||
|
|
||||||
|
=== 2011-12-25 ===
|
||||||
|
|
||||||
|
Cmdline processing code is partially rewritten.
|
||||||
|
New key -u for selection proto for IP session.
|
||||||
|
Added code to get node IP address from nodelist (INA flag).
|
||||||
|
Some maybe noisy messages in log added.
|
||||||
|
Some code rearrangements in session_call.
|
||||||
|
Added feature to try all available connection ways if not specified one
|
||||||
|
on calls from command line (IP methods then modem).
|
||||||
|
|
||||||
|
=== 2011-12-15 ===
|
||||||
|
|
||||||
|
Patch io_unix_tio.diff for OpenBSD systems running telnetted serial modem.
|
||||||
|
|
||||||
|
=== 2011-12-13 ===
|
||||||
|
|
||||||
|
Split inbound feature have added.
|
||||||
|
Received files from different links are placed in separate folders in inbound.
|
||||||
|
Use option "split_inbound" to enable this feature.
|
||||||
|
|
||||||
|
|
||||||
|
Alexander Skovpen <a.n.skovpen@gmail.com>
|
||||||
|
Max N. Boyarov <zotrix@users.noreply.github.com>
|
||||||
|
|
||||||
|
|
||||||
|
Alexey Khromov (zx@zxalexis.ru)
|
||||||
|
======
|
||||||
|
0.24.1
|
||||||
|
+ Added pre-init debugging (primarily of config readout) to stderr by -v
|
||||||
|
option. Vanished out errorful calls to "log" and "debug" before log and
|
||||||
|
debug files initialization.
|
||||||
|
+ As of bison is default yacc for (almost) every foss system - fix
|
||||||
|
warning of yacc compliance (delete -y flag in Makefile.in)
|
||||||
|
+ Fixed build on 64-bit systems (amd64 and aarch64)
|
||||||
|
+ Initially added config options incpkt_flag and incbdl_flag to raise
|
||||||
|
up flag-driven tosser manipulation
|
||||||
|
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
=== 2012-03 ===
|
|
||||||
|
|
||||||
$DEBUGLEVEL, $DEBUGFILE removed - please use configuration options
|
|
||||||
|
|
||||||
DNS zone support
|
|
||||||
|
|
||||||
=== 2012-02 ===
|
|
||||||
|
|
||||||
Netspool support
|
|
||||||
24554 protocol remake
|
|
||||||
|
|
||||||
=== 2011-12-25 ===
|
|
||||||
|
|
||||||
Cmdline processing code is partially rewritten.
|
|
||||||
New key -u for selection proto for IP session.
|
|
||||||
Added code to get node IP address from nodelist (INA flag).
|
|
||||||
Some maybe noisy messages in log added.
|
|
||||||
Some code rearrangements in session_call.
|
|
||||||
Added feature to try all available connection ways if not specified one
|
|
||||||
on calls from command line (IP methods then modem).
|
|
||||||
|
|
||||||
=== 2011-12-15 ===
|
|
||||||
|
|
||||||
Patch io_unix_tio.diff for OpenBSD systems running telnetted serial modem.
|
|
||||||
|
|
||||||
=== 2011-12-13 ===
|
|
||||||
|
|
||||||
Split inbound feature have added.
|
|
||||||
Received files from different links are placed in separate folders in inbound.
|
|
||||||
Use option "split_inbound" to enable this feature.
|
|
67
CHANGES.kst
67
CHANGES.kst
@ -1,67 +0,0 @@
|
|||||||
0.22.7.kst1
|
|
||||||
===========
|
|
||||||
|
|
||||||
* Attempt to fix warnings, when compiling with -Wall.
|
|
||||||
+ make update -- install only binaries.
|
|
||||||
* Better EMSI handling, when calling to cisco.
|
|
||||||
+ Correct ZMH support in daemon.
|
|
||||||
* Some fixes in contributed perl scripts.
|
|
||||||
|
|
||||||
0.22.7.kst2
|
|
||||||
===========
|
|
||||||
|
|
||||||
+ Added option --with-uucp-lockdir=... to configure.
|
|
||||||
* Using strncpy(3) instead of strcpy(3) if possible.
|
|
||||||
|
|
||||||
Added patches by Maxi Rovnich @ 2:5030/872:
|
|
||||||
+ Support for maximum 'no dialtone' count.
|
|
||||||
+ Support for download resyncing, while checking for free space.
|
|
||||||
+ Ignore all files, but *.pnt, *.req, *.?lo and *.?ut in BSO.
|
|
||||||
|
|
||||||
0.22.7.kst3
|
|
||||||
===========
|
|
||||||
|
|
||||||
* Compilation failed with --disable-hangup-watch-cd. Fixed.
|
|
||||||
+ Ability to write daemon pid in file.
|
|
||||||
* -f option had reverse meaning. Thanks to Eugene Korovin @ 2:5080/196.72
|
|
||||||
+ -q option terminates daemon process (only if pidfile is used).
|
|
||||||
|
|
||||||
0.22.7.kst4
|
|
||||||
===========
|
|
||||||
|
|
||||||
* Hydra was broken in kst2. Fixed.
|
|
||||||
+ Bidirectional session drops only if rxcps and txcps are less than
|
|
||||||
mincps at the same time.
|
|
||||||
|
|
||||||
0.22.7.kst5
|
|
||||||
===========
|
|
||||||
|
|
||||||
+ port tcpip patch by Serge N. Pokhodyaev @ 2:5020/1838
|
|
||||||
* lock fix, when outbound on not lockable filesystem.
|
|
||||||
Patch by Andrew Dolgov @ 2:5030/394.41
|
|
||||||
|
|
||||||
0.22.7.kst6
|
|
||||||
===========
|
|
||||||
|
|
||||||
* traffic wasn't shown if no files in boxes.
|
|
||||||
Patch by Alexander Shiyan @ 2:5030/39.2
|
|
||||||
* bfstat now correctly shows age of files.
|
|
||||||
Patch by Alexander Shiyan @ 2:5030/39.2
|
|
||||||
* logging 'undefined cmd' fixed.
|
|
||||||
Thanks to Pavel I.Osipov @ 2:5020/770.50
|
|
||||||
|
|
||||||
0.22.8.kst7
|
|
||||||
===========
|
|
||||||
|
|
||||||
Some changes taken from 0.22.8 by Alexander Belkin:
|
|
||||||
* some bugfixes
|
|
||||||
+ new environment variable $RC (session return code)
|
|
||||||
+ sending of EMSI_ACK every time after recving of EMSI_DAT
|
|
||||||
+ support for nodelist IBN flag
|
|
||||||
|
|
||||||
0.22.8.kst8
|
|
||||||
===========
|
|
||||||
|
|
||||||
* fixed bug with flags CM in override
|
|
||||||
* fixed bug with sending HUP to daemon
|
|
||||||
|
|
@ -1,54 +0,0 @@
|
|||||||
0.22.8.ugenk1
|
|
||||||
=============
|
|
||||||
+ initial release, based on bforce 0.22.8.kst8
|
|
||||||
* fixed problem with worktime detecting
|
|
||||||
+ makefiles fixed (removed make update, now make install installs config files with extension .sample)
|
|
||||||
+ added --with-user and --with-group options to ``configure'' script.
|
|
||||||
+ installation directories by default are compliance with default fidogate installation
|
|
||||||
|
|
||||||
0.22.8.ugenk2
|
|
||||||
=============
|
|
||||||
* pathes by Andrey Slusar @ 2:467/126
|
|
||||||
(total 12: patch-bforce.c, patch-bfstat.c, patch-daemon.c, patch-expression.y,
|
|
||||||
patch-nlookup.c, patch-prot_binkp.c, patch-prot_emsi.c, patch-prot_yoohoo.c, patch-prot_zmrecv.c,
|
|
||||||
patch-prot_zmsend.c, patch-sess_call.c, patch-sess_stat.c)
|
|
||||||
+ added syslog support (see SYSLOG)
|
|
||||||
+ fixed nlookup (broken in ugenk1)
|
|
||||||
+ spec file now goes with bforce
|
|
||||||
|
|
||||||
0.22.8.ugenk3
|
|
||||||
=============
|
|
||||||
+ fixed working with syslog (not tested yet, any volonteers?)
|
|
||||||
* some bugfixes
|
|
||||||
|
|
||||||
0.22.8.ugenk4
|
|
||||||
=============
|
|
||||||
+ fixed problems with license (thnx to Jonathan Gonzales V. from gnu.org)
|
|
||||||
+ added nomail flag
|
|
||||||
- project moved to sourceforge.net (projectname - binkforce)
|
|
||||||
+ now --enable-syslog is by default! Read SYSLOG for details
|
|
||||||
+ nodelist mask detection (see sample config for details)
|
|
||||||
+ contrib/outman now supports bso (thnx to Andrew Leonov @ 2:4641/500.119)
|
|
||||||
|
|
||||||
0.22.8.ugenk5
|
|
||||||
=============
|
|
||||||
+ fixed ``got unexpected emsi sequence "EMSI_INQC816"''
|
|
||||||
+ added some features to INSTALL.ru
|
|
||||||
* added documentation about incoming sessions over ip/pstn by Igor Mitichev
|
|
||||||
|
|
||||||
0.22.8.ugenk6
|
|
||||||
=============
|
|
||||||
+ some changes in autoconf
|
|
||||||
* added Type to nlookup
|
|
||||||
* fixed 'Ñ' in FAQ
|
|
||||||
* added buggy-emsi option in configure. use it in case of problems with stupid mailers
|
|
||||||
* fixed hydra
|
|
||||||
|
|
||||||
0.22.9
|
|
||||||
======
|
|
||||||
+ Changed version for compliance with *BSD ports
|
|
||||||
+ Added possibility to run external program for each override and
|
|
||||||
hidden. See bforce.subst.sample for examples and
|
|
||||||
docs/readme.txt for details.
|
|
||||||
+ Implement binkp/1.1 (Multiple Batch Mode and Non-reliable Mode).
|
|
||||||
+ Turn on FREQ at binkp sessions.
|
|
5
FAQ
5
FAQ
@ -43,6 +43,8 @@ Q:
|
|||||||
A: /All/
|
A: /All/
|
||||||
ugenkXX. Брать на http://sourceforge.net/projects/binkforce,
|
ugenkXX. Брать на http://sourceforge.net/projects/binkforce,
|
||||||
или с cvs там же.
|
или с cvs там же.
|
||||||
|
A: /AK/
|
||||||
|
Переехало оттуда в гит, но лучше искать в профильных эхах.
|
||||||
|
|
||||||
Q: Как подключать нодлисты с цифровыми расширениями? Маски в конфиге bforce не
|
Q: Как подключать нодлисты с цифровыми расширениями? Маски в конфиге bforce не
|
||||||
задаются.
|
задаются.
|
||||||
@ -81,7 +83,7 @@ A: /KAS/
|
|||||||
/GM/
|
/GM/
|
||||||
Это мое и лежит оно тyт
|
Это мое и лежит оно тyт
|
||||||
http://btrieve.virtualave.net/files/bf0224-filebox.diff.rar
|
http://btrieve.virtualave.net/files/bf0224-filebox.diff.rar
|
||||||
в моем патче, в отличие от пpедыдyщего, не все подpд имеют тип
|
в моем патче, в отличие от пpедыдyщего, не все подpяд имеют тип
|
||||||
TYPE_FILEBOX.
|
TYPE_FILEBOX.
|
||||||
мыло - это TYPE_NETMAIL, эхи - TYPE_ARCMAIL и т.д.
|
мыло - это TYPE_NETMAIL, эхи - TYPE_ARCMAIL и т.д.
|
||||||
Это yдобно дл пpосмотpа статистики поинтy - что на него лежит.
|
Это yдобно дл пpосмотpа статистики поинтy - что на него лежит.
|
||||||
@ -223,6 +225,7 @@ MR = Maxi Rovnich, 2:5030/872
|
|||||||
PVC = Peter V. Chernikoff, 2:5020/2091
|
PVC = Peter V. Chernikoff, 2:5020/2091
|
||||||
SNP = Serge N. Pokhodyaev, 2:5020/1838
|
SNP = Serge N. Pokhodyaev, 2:5020/1838
|
||||||
VS = Valery Shishkov, 2:5040/9
|
VS = Valery Shishkov, 2:5040/9
|
||||||
|
AK = Alexey Khromov, 2:5030/723
|
||||||
|
|
||||||
Исправления и добавления в виде пар вопрос/ответ будут с благодарностью приняты
|
Исправления и добавления в виде пар вопрос/ответ будут с благодарностью приняты
|
||||||
в netmail.
|
в netmail.
|
||||||
|
14
README.kst
14
README.kst
@ -1,14 +0,0 @@
|
|||||||
BinkleyForce FTN mailer (Branch KST)
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
Bug Reports
|
|
||||||
-----------
|
|
||||||
|
|
||||||
E-Mail : kst@moecho.org
|
|
||||||
FidoNet : Konstantin Stepanenkov, 2:5030/1251
|
|
||||||
|
|
||||||
New Versions
|
|
||||||
------------
|
|
||||||
|
|
||||||
http://kst.spb.ru/bforce/
|
|
||||||
|
|
17
README.md
17
README.md
@ -1,5 +1,3 @@
|
|||||||
[](https://travis-ci.org/askovpen/binkleyforce)
|
|
||||||
|
|
||||||
BinkleyForce FTN mailer
|
BinkleyForce FTN mailer
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
@ -15,18 +13,25 @@ any later version. See the COPYING file for further information.
|
|||||||
Known Bugs
|
Known Bugs
|
||||||
----------
|
----------
|
||||||
- BinkD use and expect local file time at BinkP sessions, but
|
- BinkD use and expect local file time at BinkP sessions, but
|
||||||
BinkleyForce allways use UTC time (?)
|
BinkleyForce always use UTC time (?)
|
||||||
|
|
||||||
Bug Reports
|
Bug Reports
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
E-Mail : adb@newmail.ru
|
E-Mail : zx@zxalexis.ru
|
||||||
FidoNet : Alexander Belkin, 2:5020/1398.11
|
FidoNet : Alexey Khromov, 2:5030/723
|
||||||
|
|
||||||
New Versions
|
New Versions
|
||||||
------------
|
------------
|
||||||
|
|
||||||
http://adb.newmail.ru
|
https://prj.zxalexis.ru/gitea/zx/bforce
|
||||||
|
|
||||||
|
|
||||||
Copyright (c) 1998-2000 Alexander Belkin, Moscow, Russia.
|
Copyright (c) 1998-2000 Alexander Belkin, Moscow, Russia.
|
||||||
|
(c) 2004-2007 Evgeniy Kozhuhovskiy 2:450/256, 2:450/267
|
||||||
|
(c) 2005 Andrey Slusar
|
||||||
|
(c) 2006-2016 Max N. Boyarov
|
||||||
|
(c) 2007-2008 Sergey Babitch
|
||||||
|
(c) 2011-2014 Sergey Dorofeev
|
||||||
|
(c) 2014 Alexander Skovpen
|
||||||
|
(c) 2024 Alexey Khromov
|
||||||
|
14
README.ugenk
14
README.ugenk
@ -1,14 +0,0 @@
|
|||||||
BinkleyForce FTN mailer (Branch ugenk)
|
|
||||||
------------------------------------
|
|
||||||
|
|
||||||
Bug Reports
|
|
||||||
-----------
|
|
||||||
|
|
||||||
E-Mail : e.kozhuhovskiy@gmail.com
|
|
||||||
FidoNet : Evgeniy Kozhuhovskiy, 2:450/256, 2:450/267
|
|
||||||
|
|
||||||
New Versions
|
|
||||||
------------
|
|
||||||
|
|
||||||
http://ugenk.bas-net.by/
|
|
||||||
|
|
@ -78,8 +78,8 @@ options NoDirZap NoJanus NoChat
|
|||||||
#log_file /var/log/bforce/bf-log
|
#log_file /var/log/bforce/bf-log
|
||||||
|
|
||||||
# Debugging information completness level. Debugging is disabled by
|
# Debugging information completness level. Debugging is disabled by
|
||||||
# default. Allowed debug levels: config, nodelist, outbound, info, hshake,
|
# default. Allowed debug levels: config, override, event, nodelist, outbound,
|
||||||
# ttyio, modem, prot, freq, daemon, full
|
# info, hshake, ttyio, modem, prot, freq, statem, daemon, 24554, free, full
|
||||||
|
|
||||||
#debug_file /var/log/bforce/bf-debug
|
#debug_file /var/log/bforce/bf-debug
|
||||||
#debug_level info hshake prot
|
#debug_level info hshake prot
|
||||||
@ -91,6 +91,13 @@ options NoDirZap NoJanus NoChat
|
|||||||
#
|
#
|
||||||
nodial_flag /etc/nodial
|
nodial_flag /etc/nodial
|
||||||
|
|
||||||
|
#
|
||||||
|
# Incoming flags
|
||||||
|
# Netmail:
|
||||||
|
#incnet_flag /var/spool/fido/flags/mail
|
||||||
|
# Arcmail:
|
||||||
|
#incarc_flag /var/spool/fido/flags/echo
|
||||||
|
|
||||||
#
|
#
|
||||||
# Inbound directories
|
# Inbound directories
|
||||||
#
|
#
|
||||||
|
@ -1 +1 @@
|
|||||||
0.23
|
0.24.1
|
||||||
|
@ -13,7 +13,7 @@ CC = @CC@
|
|||||||
INCLUDES = -I./include
|
INCLUDES = -I./include
|
||||||
CFLAGS = @CFLAGS@ -fno-builtin
|
CFLAGS = @CFLAGS@ -fno-builtin
|
||||||
LIBS = @LIBS@ @CLOCK_LIB@
|
LIBS = @LIBS@ @CLOCK_LIB@
|
||||||
YACC = @YACC@
|
YACC = @YACC@ -Wno-yacc
|
||||||
INSTALL = @INSTALL@
|
INSTALL = @INSTALL@
|
||||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||||
INSTALL_DATA = @INSTALL_DATA@
|
INSTALL_DATA = @INSTALL_DATA@
|
||||||
|
@ -102,6 +102,7 @@ static void usage(void)
|
|||||||
" -S <connect_str> connect string (for slave mode only)\n"
|
" -S <connect_str> connect string (for slave mode only)\n"
|
||||||
" -p <port> override modem port (must be defined in config)\n"
|
" -p <port> override modem port (must be defined in config)\n"
|
||||||
" -u binkp|ifcico|telnet protocol to use over TCP/IP\n"
|
" -u binkp|ifcico|telnet protocol to use over TCP/IP\n"
|
||||||
|
" -v display early debug info on stderr\n"
|
||||||
" -h show this help message\n"
|
" -h show this help message\n"
|
||||||
"\n",
|
"\n",
|
||||||
conf_getconfname()
|
conf_getconfname()
|
||||||
@ -257,7 +258,7 @@ int main(int argc, char *argv[], char *envp[])
|
|||||||
|
|
||||||
// parsing
|
// parsing
|
||||||
|
|
||||||
while( (ch=getopt(argc, argv, "hfI:p:n:l:a:u:oiC:S:dq")) != (int)-1 )
|
while( (ch=getopt(argc, argv, "hfI:p:n:l:a:u:oivC:S:dq")) != (int)-1 )
|
||||||
{
|
{
|
||||||
switch( ch ) {
|
switch( ch ) {
|
||||||
case 'h':
|
case 'h':
|
||||||
@ -308,6 +309,9 @@ int main(int argc, char *argv[], char *envp[])
|
|||||||
//if( opts.runmode != MODE_ANSWER || opts.inetd ) { usage(); exit(BFERR_FATALERROR); }
|
//if( opts.runmode != MODE_ANSWER || opts.inetd ) { usage(); exit(BFERR_FATALERROR); }
|
||||||
opts.inetd = 1;
|
opts.inetd = 1;
|
||||||
break;
|
break;
|
||||||
|
case 'v':
|
||||||
|
opts.earlydbg = TRUE;
|
||||||
|
break;
|
||||||
case 'C':
|
case 'C':
|
||||||
if( opts.confname || !optarg ) { usage(); exit(BFERR_FATALERROR); }
|
if( opts.confname || !optarg ) { usage(); exit(BFERR_FATALERROR); }
|
||||||
opts.confname = (char *)xstrcpy(optarg);
|
opts.confname = (char *)xstrcpy(optarg);
|
||||||
@ -435,15 +439,16 @@ int main(int argc, char *argv[], char *envp[])
|
|||||||
|
|
||||||
/* Process primary config file */
|
/* Process primary config file */
|
||||||
if( opts.confname && *opts.confname )
|
if( opts.confname && *opts.confname )
|
||||||
rc = conf_readconf(opts.confname, 0);
|
rc = conf_readconf(opts.confname, 0, opts.earlydbg);
|
||||||
else
|
else
|
||||||
rc = conf_readconf(conf_getconfname(), 0);
|
rc = conf_readconf(conf_getconfname(), 0, opts.earlydbg);
|
||||||
|
|
||||||
if( rc ) gotoexit(BFERR_FATALERROR);
|
if( rc ) gotoexit(BFERR_FATALERROR);
|
||||||
|
|
||||||
/* Process additional config file, ignore errors */
|
/* Process additional config file, ignore errors */
|
||||||
if( opts.incname && *opts.incname )
|
if( opts.incname && *opts.incname )
|
||||||
(void)conf_readconf(opts.incname, 1);
|
if (conf_readconf(opts.incname, 1, opts.earlydbg))
|
||||||
|
gotoexit(BFERR_FATALERROR);
|
||||||
|
|
||||||
/* Reopen log file if it was defined in config */
|
/* Reopen log file if it was defined in config */
|
||||||
if( log_reopen(log_getfilename(LOG_FILE_SESSION), NULL, NULL) )
|
if( log_reopen(log_getfilename(LOG_FILE_SESSION), NULL, NULL) )
|
||||||
@ -459,6 +464,7 @@ int main(int argc, char *argv[], char *envp[])
|
|||||||
switch( opts.runmode )
|
switch( opts.runmode )
|
||||||
{
|
{
|
||||||
case MODE_DAEMON:
|
case MODE_DAEMON:
|
||||||
|
DEB((D_STATEM, "Daemon mode"));
|
||||||
log("Daemon mode");
|
log("Daemon mode");
|
||||||
rc = bforce_daemon(&opts);
|
rc = bforce_daemon(&opts);
|
||||||
break;
|
break;
|
||||||
@ -466,14 +472,17 @@ case MODE_CALL_DEFAULT:
|
|||||||
case MODE_CALL_IP:
|
case MODE_CALL_IP:
|
||||||
case MODE_CALL_MODEM:
|
case MODE_CALL_MODEM:
|
||||||
case MODE_CALL_STDIO:
|
case MODE_CALL_STDIO:
|
||||||
|
DEB((D_STATEM, "Outgoing call"));
|
||||||
log("Outgoing call");
|
log("Outgoing call");
|
||||||
rc = bforce_master(&opts);
|
rc = bforce_master(&opts);
|
||||||
break;
|
break;
|
||||||
case MODE_ANSWER:
|
case MODE_ANSWER:
|
||||||
|
DEB((D_STATEM, "Start answer"));
|
||||||
log("Start answer");
|
log("Start answer");
|
||||||
rc = bforce_slave(&opts);
|
rc = bforce_slave(&opts);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
DEB((D_STATEM, "Could not determine run mode"));
|
||||||
log("Could not determine run mode");
|
log("Could not determine run mode");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -67,8 +67,9 @@ void deinit_cval_entry(s_cval_entry *dest, bforce_config_keyword type)
|
|||||||
deinit_translate(&dest->d.translate);
|
deinit_translate(&dest->d.translate);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
DEB((D_CONFIG, "deinit_cval_entry: type %d doesn't use dynamic memory",
|
//DEB((D_CONFIG, "deinit_cval_entry: type %d doesn't use dynamic memory",
|
||||||
type));
|
// type));
|
||||||
|
;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -96,6 +96,8 @@ s_conf_entry bforce_config[BFORCE_NUMBER_OF_KEYWORDS+1] = {
|
|||||||
CONF_KEY(freq_limit_time, CT_NUMBER),
|
CONF_KEY(freq_limit_time, CT_NUMBER),
|
||||||
CONF_KEY(freq_min_speed, CT_NUMBER),
|
CONF_KEY(freq_min_speed, CT_NUMBER),
|
||||||
CONF_KEY(freq_srif_command, CT_STRING),
|
CONF_KEY(freq_srif_command, CT_STRING),
|
||||||
|
CONF_KEY(incnet_flag, CT_STRING),
|
||||||
|
CONF_KEY(incarc_flag, CT_STRING),
|
||||||
CONF_KEY(hide_our_aka, CT_ADDRESS),
|
CONF_KEY(hide_our_aka, CT_ADDRESS),
|
||||||
CONF_KEY(history_file, CT_STRING),
|
CONF_KEY(history_file, CT_STRING),
|
||||||
CONF_KEY(hydra_options, CT_OPTIONS),
|
CONF_KEY(hydra_options, CT_OPTIONS),
|
||||||
|
@ -129,9 +129,11 @@ static void conf_parsestr(char *str, char **key, char **expr, char **value)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
int conf_readconf(const char *confname, int inclevel)
|
int conf_readconf(const char *confname, int inclevel, bool earlydbg)
|
||||||
{
|
{
|
||||||
// printf("%s %d\n", confname, inclevel);
|
if (earlydbg)
|
||||||
|
fprintf(stderr,"BF-DEBUG: Parsing config file: %s %d\n", confname, inclevel);
|
||||||
|
|
||||||
FILE *fp = NULL;
|
FILE *fp = NULL;
|
||||||
char tmp[BF_MAXCFGLINE + 1];
|
char tmp[BF_MAXCFGLINE + 1];
|
||||||
int rc, maxrc = 0;
|
int rc, maxrc = 0;
|
||||||
@ -156,7 +158,8 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
{
|
{
|
||||||
if( i != (int)bforce_config[i].real_key )
|
if( i != (int)bforce_config[i].real_key )
|
||||||
{
|
{
|
||||||
log("invalid config table: found %d instead of %d",
|
if (earlydbg)
|
||||||
|
fprintf(stderr,"BF-DEBUG: invalid config table: found %d instead of %d\n",
|
||||||
bforce_config[i].real_key, i);
|
bforce_config[i].real_key, i);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -165,11 +168,12 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
|
|
||||||
if( (fp = file_open(confname,"r")) == NULL )
|
if( (fp = file_open(confname,"r")) == NULL )
|
||||||
{
|
{
|
||||||
logerr("can't open config file \"%s\"", confname);
|
if (earlydbg)
|
||||||
|
fprintf(stderr,"BF-DEBUG: can't open config file \"%s\"\n", confname);
|
||||||
return(PROC_RC_IGNORE);
|
return(PROC_RC_IGNORE);
|
||||||
}
|
}
|
||||||
|
if (earlydbg)
|
||||||
DEB((D_CONFIG, "readconfig: start reading config \"%s\"", confname));
|
fprintf(stderr,"BF-DEBUG: start reading config \"%s\"\n", confname);
|
||||||
|
|
||||||
while( fgets(tmp, sizeof(tmp), fp) )
|
while( fgets(tmp, sizeof(tmp), fp) )
|
||||||
{
|
{
|
||||||
@ -180,7 +184,9 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
{
|
{
|
||||||
if( isifexpr )
|
if( isifexpr )
|
||||||
{
|
{
|
||||||
log("warning: automatically close expression at empty line %d", line);
|
if (earlydbg)
|
||||||
|
fprintf(stderr,"BF-DEBUG: warning: automatically close expression at empty line %d\n", line);
|
||||||
|
|
||||||
if( ifexpr ) { free(ifexpr); ifexpr = NULL; }
|
if( ifexpr ) { free(ifexpr); ifexpr = NULL; }
|
||||||
isifexpr = FALSE;
|
isifexpr = FALSE;
|
||||||
}
|
}
|
||||||
@ -188,7 +194,10 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
if( !isappend )
|
if( !isappend )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
log("warning: appending empty or comment line %d", line);
|
if (earlydbg)
|
||||||
|
fprintf(stderr,"BF-DEBUG: warning: appending empty or comment line %d\n", line);
|
||||||
|
|
||||||
|
|
||||||
isappend = FALSE;
|
isappend = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -230,9 +239,10 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
p_value = NULL;
|
p_value = NULL;
|
||||||
|
|
||||||
conf_parsestr(fullstr ? fullstr : tmp, &p_key, &p_expr, &p_value);
|
conf_parsestr(fullstr ? fullstr : tmp, &p_key, &p_expr, &p_value);
|
||||||
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: conf_readconf: [%d] key \"%s\" expr \"%s\" value \"%s\"\n",
|
||||||
|
line, p_key, p_expr, p_value);
|
||||||
|
|
||||||
DEB((D_CONFIG, "conf_readconf: [%d] key \"%s\" expr \"%s\" value \"%s\"",
|
|
||||||
line, p_key, p_expr, p_value));
|
|
||||||
|
|
||||||
if( p_value )
|
if( p_value )
|
||||||
{
|
{
|
||||||
@ -256,19 +266,24 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
{
|
{
|
||||||
if( value == NULL || expr )
|
if( value == NULL || expr )
|
||||||
{
|
{
|
||||||
log("incorrect usage of `%s' directive", p_key);
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: incorrect usage of `%s' directive\n", p_key);
|
||||||
|
|
||||||
rc = PROC_RC_IGNORE;
|
rc = PROC_RC_IGNORE;
|
||||||
}
|
}
|
||||||
else if( inclevel < MAXINCLUDELEVEL )
|
else if( inclevel < MAXINCLUDELEVEL )
|
||||||
{
|
{
|
||||||
DEB((D_CONFIG, "conf_readconf: process inlude file \"%s\"", value));
|
if (earlydbg)
|
||||||
rc = conf_readconf(value, inclevel + 1);
|
fprintf(stderr, "BF-DEBUG: conf_readconf: process inlude file \"%s\"\n", value);
|
||||||
|
|
||||||
|
rc = conf_readconf(value, inclevel + 1, earlydbg);
|
||||||
if( rc ) rc = PROC_RC_IGNORE;
|
if( rc ) rc = PROC_RC_IGNORE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DEB((D_CONFIG, "conf_readconf: too deep include"));
|
if (earlydbg)
|
||||||
log("including level too deep");
|
fprintf(stderr, "BF-DEBUG: conf_readconf: too deep include\n");
|
||||||
|
|
||||||
rc = PROC_RC_IGNORE;
|
rc = PROC_RC_IGNORE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -276,7 +291,9 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
{
|
{
|
||||||
if( value || isifexpr )
|
if( value || isifexpr )
|
||||||
{
|
{
|
||||||
log("incorrect usage of `%s' directive", p_key);
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: incorrect usage of `%s' directive\n", p_key);
|
||||||
|
|
||||||
rc = PROC_RC_ABORT;
|
rc = PROC_RC_ABORT;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -292,7 +309,9 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
{
|
{
|
||||||
if( value || expr || !isifexpr )
|
if( value || expr || !isifexpr )
|
||||||
{
|
{
|
||||||
log("incorrect usage of `%s' directive", p_key);
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: incorrect usage of `%s' directive\n", p_key);
|
||||||
|
|
||||||
rc = PROC_RC_IGNORE;
|
rc = PROC_RC_IGNORE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -301,69 +320,12 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
isifexpr = FALSE;
|
isifexpr = FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* else if( strcasecmp(p_key+1, "logfile") == 0 )
|
|
||||||
{
|
|
||||||
if( value == NULL || expr )
|
|
||||||
{
|
|
||||||
log("incorrect usage of `%s' directive", p_key);
|
|
||||||
rc = PROC_RC_IGNORE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if( log_reopen(value, NULL, NULL) )
|
|
||||||
{
|
|
||||||
log("can't continue without logging");
|
|
||||||
rc = PROC_RC_ABORT;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if( strcasecmp(p_key+1, "debugfile") == 0 )
|
|
||||||
{
|
|
||||||
if( value == NULL || expr )
|
|
||||||
{
|
|
||||||
log("incorrect usage of `%s' directive", p_key);
|
|
||||||
rc = PROC_RC_IGNORE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#ifdef DEBUG
|
|
||||||
{
|
|
||||||
if( debug_isopened() ) debug_close();
|
|
||||||
debug_setfilename(value);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
{
|
|
||||||
log("incorrect directive `%s': no debug code", p_key);
|
|
||||||
rc = PROC_RC_IGNORE;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
else if( strcasecmp(p_key+1, "debuglevel") == 0 )
|
|
||||||
{
|
|
||||||
if( value == NULL || expr )
|
|
||||||
{
|
|
||||||
rc = PROC_RC_IGNORE;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
#ifdef DEBUG
|
|
||||||
{
|
|
||||||
unsigned long newlevel = 0L;
|
|
||||||
|
|
||||||
if( debug_parsestring(value, &newlevel) )
|
|
||||||
{
|
|
||||||
rc = PROC_RC_WARN;
|
|
||||||
}
|
|
||||||
debug_setlevel(newlevel, 1);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
{
|
|
||||||
log("incorrect directive `%s': no debug code", p_key);
|
|
||||||
rc = PROC_RC_IGNORE;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}*/
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
log("unknown directive `%s'", p_key);
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: unknown directive `%s'\n", p_key);
|
||||||
|
|
||||||
rc = PROC_RC_IGNORE;
|
rc = PROC_RC_IGNORE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -371,7 +333,9 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
{
|
{
|
||||||
if( isifexpr && expr )
|
if( isifexpr && expr )
|
||||||
{
|
{
|
||||||
log("can't use expressions inside $ifexpr block");
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: can't use expressions inside $ifexpr block\n");
|
||||||
|
|
||||||
rc = PROC_RC_IGNORE;
|
rc = PROC_RC_IGNORE;
|
||||||
}
|
}
|
||||||
else if( isifexpr )
|
else if( isifexpr )
|
||||||
@ -385,7 +349,9 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
log("incorrect config string");
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: incorrect config string %s\n", fullstr);
|
||||||
|
|
||||||
rc = PROC_RC_IGNORE;
|
rc = PROC_RC_IGNORE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -400,13 +366,19 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
case PROC_RC_OK:
|
case PROC_RC_OK:
|
||||||
break;
|
break;
|
||||||
case PROC_RC_WARN:
|
case PROC_RC_WARN:
|
||||||
log("warning in config \"%s\" line %d", confname, line);
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: warning in config \"%s\" line %d\n", confname, line);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case PROC_RC_IGNORE:
|
case PROC_RC_IGNORE:
|
||||||
log("ignore line %d in config \"%s\"", line, confname);
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: ignore line %d in config \"%s\"\n", line, confname);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case PROC_RC_ABORT:
|
case PROC_RC_ABORT:
|
||||||
log("fatal error in config \"%s\" in line %d", confname, line);
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: fatal error in config \"%s\" in line %d\n", confname, line);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ASSERT_MSG();
|
ASSERT_MSG();
|
||||||
@ -418,54 +390,36 @@ int conf_readconf(const char *confname, int inclevel)
|
|||||||
file_close(fp);
|
file_close(fp);
|
||||||
|
|
||||||
if( isifexpr )
|
if( isifexpr )
|
||||||
{ maxrc = 1; log("unterminated directive `#ifexp'"); }
|
{
|
||||||
|
maxrc = 1;
|
||||||
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: unterminated directive `#ifexp'\n");
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
if( fullstr )
|
if( fullstr )
|
||||||
free(fullstr);
|
free(fullstr);
|
||||||
if( ifexpr )
|
if( ifexpr )
|
||||||
free(ifexpr);
|
free(ifexpr);
|
||||||
|
|
||||||
DEB((D_CONFIG, "readconfig: exit with maxrc = %d", maxrc));
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: readconfig: exit with maxrc = %d\n", maxrc);
|
||||||
|
|
||||||
|
|
||||||
/* update subsystems */
|
/* update subsystems */
|
||||||
if (inclevel==0) { // end of main config
|
if (inclevel==0) { // end of main config
|
||||||
if( log_reopen(log_getfilename(LOG_FILE_SESSION), NULL, NULL) )
|
if( log_reopen(log_getfilename(LOG_FILE_SESSION), NULL, NULL) )
|
||||||
{
|
{
|
||||||
log("can't continue without logging");
|
if (earlydbg)
|
||||||
|
fprintf(stderr, "BF-DEBUG: can't continue without logging\n");
|
||||||
|
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
debug_configure();
|
debug_configure();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return maxrc;
|
return maxrc;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
|
||||||
/*void debug_override(void)
|
|
||||||
{
|
|
||||||
s_cval_entry *ptrl;
|
|
||||||
char abuf[BF_MAXADDRSTR+1];
|
|
||||||
|
|
||||||
DEB((D_CONFIG, "debug_override: BEGIN"));
|
|
||||||
|
|
||||||
for( ptrl = bforce_config[cf_override].data; ptrl; ptrl = ptrl->next )
|
|
||||||
{
|
|
||||||
DEB((D_CONFIG, "log_overridelist: address %s",
|
|
||||||
ftn_addrstr(abuf, ptrl->d.override.addr)));
|
|
||||||
DEB((D_CONFIG, "log_overridelist: \tIpaddr = \"%s\"",
|
|
||||||
ptrl->d.override.sIpaddr));
|
|
||||||
DEB((D_CONFIG, "log_overridelist: \tPhone = \"%s\"",
|
|
||||||
ptrl->d.override.sPhone));
|
|
||||||
DEB((D_CONFIG, "log_overridelist: \tWorktime = \"%s\"",
|
|
||||||
timevec_string(abuf, &ptrl->d.override.worktime, sizeof(abuf))));
|
|
||||||
DEB((D_CONFIG, "log_overridelist: \tFlags = \"%s\"",
|
|
||||||
ptrl->d.override.sFlags));
|
|
||||||
}
|
|
||||||
|
|
||||||
DEB((D_CONFIG, "debug_override: END"));
|
|
||||||
}*/
|
|
||||||
#endif /* DEBUG */
|
|
||||||
|
|
||||||
|
@ -938,15 +938,15 @@ int daemon_run(const char *confname, const char *incname, bool quit)
|
|||||||
|
|
||||||
/* Read primary config file */
|
/* Read primary config file */
|
||||||
if( confname && *confname )
|
if( confname && *confname )
|
||||||
rc = conf_readconf(confname, 0);
|
rc = conf_readconf(confname, 0, false);
|
||||||
else
|
else
|
||||||
rc = conf_readconf(conf_getconfname(), 0);
|
rc = conf_readconf(conf_getconfname(), 0, false);
|
||||||
|
|
||||||
if( rc )
|
if( rc )
|
||||||
return(BFERR_FATALERROR);
|
return(BFERR_FATALERROR);
|
||||||
|
|
||||||
/* Read additional config file (manual include) */
|
/* Read additional config file (manual include) */
|
||||||
if( incname && *incname && conf_readconf(incname, 1) )
|
if( incname && *incname && conf_readconf(incname, 1, false) )
|
||||||
log("cannot read additional config (ignore)");
|
log("cannot read additional config (ignore)");
|
||||||
|
|
||||||
dmstate = DM_Start;
|
dmstate = DM_Start;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -45,6 +45,7 @@
|
|||||||
%token LOGOP
|
%token LOGOP
|
||||||
|
|
||||||
%expect 2
|
%expect 2
|
||||||
|
|
||||||
%{
|
%{
|
||||||
#include "includes.h"
|
#include "includes.h"
|
||||||
#include "confread.h"
|
#include "confread.h"
|
||||||
|
@ -64,6 +64,8 @@ int binkp_getforsend(s_binkp_state *bstate, char *buf, int *block_type, unsigned
|
|||||||
int binkp_doreceiveblock(s_binkp_state *bstate, char *buf, int block_type, unsigned short block_length);
|
int binkp_doreceiveblock(s_binkp_state *bstate, char *buf, int block_type, unsigned short block_length);
|
||||||
void binkp_process_NUL(s_binkp_sysinfo *remote_data, char *buffer);
|
void binkp_process_NUL(s_binkp_sysinfo *remote_data, char *buffer);
|
||||||
void binkp_process_ADR(char *buffer);
|
void binkp_process_ADR(char *buffer);
|
||||||
|
int binkp_auth_incoming(s_binkp_sysinfo *remote_data);
|
||||||
|
|
||||||
|
|
||||||
int binkp_loop(s_binkp_state *bstate) {
|
int binkp_loop(s_binkp_state *bstate) {
|
||||||
unsigned char readbuf[BINKP_HEADER+BINKP_MAXBLOCK+1];
|
unsigned char readbuf[BINKP_HEADER+BINKP_MAXBLOCK+1];
|
||||||
@ -480,7 +482,7 @@ case 3: // send password on outgoing or pw confirmation on incoming
|
|||||||
buf[0] = BPMSG_PWD;
|
buf[0] = BPMSG_PWD;
|
||||||
*block_type = BINKP_BLK_CMD;
|
*block_type = BINKP_BLK_CMD;
|
||||||
|
|
||||||
if( bstate->local_data->passwd == '\0' ) {
|
if( bstate->local_data->passwd[0] == '\0' ) {
|
||||||
*block_length = 1 + sprintf(buf+1, "-");
|
*block_length = 1 + sprintf(buf+1, "-");
|
||||||
}
|
}
|
||||||
else if( bstate->remote_data->options & BINKP_OPT_MD5 ) {
|
else if( bstate->remote_data->options & BINKP_OPT_MD5 ) {
|
||||||
|
@ -695,6 +695,7 @@ int session(void)
|
|||||||
s_traffic traff_send;
|
s_traffic traff_send;
|
||||||
s_traffic traff_recv;
|
s_traffic traff_recv;
|
||||||
char *p;
|
char *p;
|
||||||
|
int fd = -1;
|
||||||
|
|
||||||
memset(&traff_send, '\0', sizeof(s_traffic));
|
memset(&traff_send, '\0', sizeof(s_traffic));
|
||||||
memset(&traff_recv, '\0', sizeof(s_traffic));
|
memset(&traff_recv, '\0', sizeof(s_traffic));
|
||||||
@ -890,6 +891,38 @@ int session(void)
|
|||||||
*/
|
*/
|
||||||
p_log_txrxstat(&pi);
|
p_log_txrxstat(&pi);
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Raise flags if session incoming traffic was not empty
|
||||||
|
*/
|
||||||
|
if ( (p = conf_string(cf_incnet_flag)) )
|
||||||
|
if (state.traff_recv.netmail_size > 0) {
|
||||||
|
DEB((D_EVENT, "Incoming netmail > 0, raising flag"));
|
||||||
|
log("Raising flag for netmail in %s", p);
|
||||||
|
fd = open(p, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP );
|
||||||
|
if (fd == -1) {
|
||||||
|
DEB((D_EVENT, "Error raising netmail flag"));
|
||||||
|
log("Error creating flag for netmail in %s", p);
|
||||||
|
} else {
|
||||||
|
/* all ok - closing file */
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( (p = conf_string(cf_incarc_flag)) )
|
||||||
|
if (state.traff_recv.arcmail_size > 0) {
|
||||||
|
DEB((D_EVENT, "Incoming arcmail > 0, raising flag"));
|
||||||
|
log("Raising flag for arcmail in %s", p);
|
||||||
|
fd = open(p, O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP);
|
||||||
|
if (fd == -1) {
|
||||||
|
DEB((D_EVENT, "Error raising arcmail flag"));
|
||||||
|
log("Error creating flag for arcmail in %s", p);
|
||||||
|
} else {
|
||||||
|
/* all ok - closing file */
|
||||||
|
close(fd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Save session traffic before deiniting
|
* Save session traffic before deiniting
|
||||||
*/
|
*/
|
||||||
|
@ -209,7 +209,7 @@ int main(int argc, char *argv[])
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if( conf_readconf(conf_getconfname(), 0) )
|
if( conf_readconf(conf_getconfname(), 0, false) )
|
||||||
{
|
{
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
@ -301,7 +301,7 @@ int main(int argc, char *argv[])
|
|||||||
/* Initialise current locale */
|
/* Initialise current locale */
|
||||||
(void)setlocale(LC_ALL, "");
|
(void)setlocale(LC_ALL, "");
|
||||||
|
|
||||||
if( conf_readconf(conf_getconfname(), 0) )
|
if( conf_readconf(conf_getconfname(), 0, false) )
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
memset(&ocb, '\0', sizeof(s_outbound_callback_data));
|
memset(&ocb, '\0', sizeof(s_outbound_callback_data));
|
||||||
|
@ -159,7 +159,7 @@ int main(int argc, char *argv[])
|
|||||||
exit(BFERR_FATALERROR);
|
exit(BFERR_FATALERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
if( conf_readconf(conf_getconfname(), 0) )
|
if( conf_readconf(conf_getconfname(), 0, false) )
|
||||||
exit(BFERR_FATALERROR);
|
exit(BFERR_FATALERROR);
|
||||||
|
|
||||||
if( rawstring )
|
if( rawstring )
|
||||||
|
8
source/configure
vendored
8
source/configure
vendored
@ -580,10 +580,10 @@ MAKEFLAGS=
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='bforce'
|
PACKAGE_NAME='bforce'
|
||||||
PACKAGE_TARNAME='bforce'
|
PACKAGE_TARNAME='bforce'
|
||||||
PACKAGE_VERSION='0.24'
|
PACKAGE_VERSION='0.24.1'
|
||||||
PACKAGE_STRING='bforce 0.24'
|
PACKAGE_STRING='bforce 0.24.1'
|
||||||
PACKAGE_BUGREPORT='sergey@fidoman.ru'
|
PACKAGE_BUGREPORT='zx@zxalexis.ru'
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL='https://prj.zxalexis.ru/gitea/zx/bforce.git'
|
||||||
|
|
||||||
ac_default_prefix=/usr/local/fido
|
ac_default_prefix=/usr/local/fido
|
||||||
# Factoring default headers for most tests.
|
# Factoring default headers for most tests.
|
||||||
|
@ -3,7 +3,7 @@ dnl
|
|||||||
dnl $Id$
|
dnl $Id$
|
||||||
dnl
|
dnl
|
||||||
#AC_INIT(bforce/bforce.c)
|
#AC_INIT(bforce/bforce.c)
|
||||||
AC_INIT([bforce],[0.24],[sergey@fidoman.ru])
|
AC_INIT([bforce],[0.24.1],[zx@zxalexis.ru])
|
||||||
AC_CONFIG_HEADER(include/config.h)
|
AC_CONFIG_HEADER(include/config.h)
|
||||||
AC_CANONICAL_SYSTEM
|
AC_CANONICAL_SYSTEM
|
||||||
dnl # Minimum Autoconf version required.
|
dnl # Minimum Autoconf version required.
|
||||||
@ -143,4 +143,4 @@ AC_CHECK_FUNCS(rename statfs statvfs setproctitle)
|
|||||||
AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],[AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt])])
|
AC_CHECK_FUNCS([clock_gettime], [CLOCK_LIB=],[AC_CHECK_LIB([rt], [clock_gettime], [CLOCK_LIB=-lrt])])
|
||||||
AC_SUBST([CLOCK_LIB])
|
AC_SUBST([CLOCK_LIB])
|
||||||
AC_OUTPUT(Makefile)
|
AC_OUTPUT(Makefile)
|
||||||
AC_OUTPUT(../debian/Makefile)
|
dnl AC_OUTPUT(../debian/Makefile)
|
||||||
|
@ -151,6 +151,7 @@ typedef struct {
|
|||||||
bool daemon; /* Run as daemon? */
|
bool daemon; /* Run as daemon? */
|
||||||
bool quit; /* Quit from daemon */
|
bool quit; /* Quit from daemon */
|
||||||
bool usestdio; /* Session on stdin and stdout */
|
bool usestdio; /* Session on stdin and stdout */
|
||||||
|
bool earlydbg; /* Early debug on stderr */
|
||||||
int inetd; /* Called from inetd? */
|
int inetd; /* Called from inetd? */
|
||||||
int force; /* Force call? */
|
int force; /* Force call? */
|
||||||
int hiddline; /* Hidden line number (0,1..) */
|
int hiddline; /* Hidden line number (0,1..) */
|
||||||
|
@ -191,6 +191,8 @@ typedef enum {
|
|||||||
cf_freq_limit_time,
|
cf_freq_limit_time,
|
||||||
cf_freq_min_speed,
|
cf_freq_min_speed,
|
||||||
cf_freq_srif_command,
|
cf_freq_srif_command,
|
||||||
|
cf_incnet_flag,
|
||||||
|
cf_incarc_flag,
|
||||||
cf_hide_our_aka,
|
cf_hide_our_aka,
|
||||||
cf_history_file,
|
cf_history_file,
|
||||||
cf_hydra_options,
|
cf_hydra_options,
|
||||||
@ -347,7 +349,7 @@ void deinit_translate(s_translate *dest);
|
|||||||
const char *conf_getconfname(void);
|
const char *conf_getconfname(void);
|
||||||
int conf_postreadcheck(void);
|
int conf_postreadcheck(void);
|
||||||
int conf_readpasswdlist(s_falist **pwdlist, char *fname);
|
int conf_readpasswdlist(s_falist **pwdlist, char *fname);
|
||||||
int conf_readconf(const char *confname, int inclevel);
|
int conf_readconf(const char *confname, int inclevel, bool earlydbg);
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
void log_overridelist(s_override *subst);
|
void log_overridelist(s_override *subst);
|
||||||
void log_options(s_options *opt);
|
void log_options(s_options *opt);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user