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
|
||||
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.
|
7
FAQ
7
FAQ
@ -43,7 +43,9 @@ Q:
|
||||
A: /All/
|
||||
ugenkXX. Брать на http://sourceforge.net/projects/binkforce,
|
||||
или с cvs там же.
|
||||
|
||||
A: /AK/
|
||||
Переехало оттуда в гит, но лучше искать в профильных эхах.
|
||||
|
||||
Q: Как подключать нодлисты с цифровыми расширениями? Маски в конфиге bforce не
|
||||
задаются.
|
||||
A: /MR/
|
||||
@ -81,7 +83,7 @@ A: /KAS/
|
||||
/GM/
|
||||
Это мое и лежит оно тyт
|
||||
http://btrieve.virtualave.net/files/bf0224-filebox.diff.rar
|
||||
в моем патче, в отличие от пpедыдyщего, не все подpд имеют тип
|
||||
в моем патче, в отличие от пpедыдyщего, не все подpяд имеют тип
|
||||
TYPE_FILEBOX.
|
||||
мыло - это TYPE_NETMAIL, эхи - TYPE_ARCMAIL и т.д.
|
||||
Это yдобно дл пpосмотpа статистики поинтy - что на него лежит.
|
||||
@ -223,6 +225,7 @@ MR = Maxi Rovnich, 2:5030/872
|
||||
PVC = Peter V. Chernikoff, 2:5020/2091
|
||||
SNP = Serge N. Pokhodyaev, 2:5020/1838
|
||||
VS = Valery Shishkov, 2:5040/9
|
||||
AK = Alexey Khromov, 2:5030/723
|
||||
|
||||
Исправления и добавления в виде пар вопрос/ответ будут с благодарностью приняты
|
||||
в 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
|
||||
-----------------------
|
||||
|
||||
@ -15,18 +13,25 @@ any later version. See the COPYING file for further information.
|
||||
Known Bugs
|
||||
----------
|
||||
- BinkD use and expect local file time at BinkP sessions, but
|
||||
BinkleyForce allways use UTC time (?)
|
||||
BinkleyForce always use UTC time (?)
|
||||
|
||||
Bug Reports
|
||||
-----------
|
||||
|
||||
E-Mail : adb@newmail.ru
|
||||
FidoNet : Alexander Belkin, 2:5020/1398.11
|
||||
E-Mail : zx@zxalexis.ru
|
||||
FidoNet : Alexey Khromov, 2:5030/723
|
||||
|
||||
New Versions
|
||||
------------
|
||||
|
||||
http://adb.newmail.ru
|
||||
https://prj.zxalexis.ru/gitea/zx/bforce
|
||||
|
||||
|
||||
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
|
||||
|
||||
# Debugging information completness level. Debugging is disabled by
|
||||
# default. Allowed debug levels: config, nodelist, outbound, info, hshake,
|
||||
# ttyio, modem, prot, freq, daemon, full
|
||||
# default. Allowed debug levels: config, override, event, nodelist, outbound,
|
||||
# info, hshake, ttyio, modem, prot, freq, statem, daemon, 24554, free, full
|
||||
|
||||
#debug_file /var/log/bforce/bf-debug
|
||||
#debug_level info hshake prot
|
||||
@ -91,6 +91,13 @@ options NoDirZap NoJanus NoChat
|
||||
#
|
||||
nodial_flag /etc/nodial
|
||||
|
||||
#
|
||||
# Incoming flags
|
||||
# Netmail:
|
||||
#incnet_flag /var/spool/fido/flags/mail
|
||||
# Arcmail:
|
||||
#incarc_flag /var/spool/fido/flags/echo
|
||||
|
||||
#
|
||||
# Inbound directories
|
||||
#
|
||||
|
@ -1 +1 @@
|
||||
0.23
|
||||
0.24.1
|
||||
|
@ -13,7 +13,7 @@ CC = @CC@
|
||||
INCLUDES = -I./include
|
||||
CFLAGS = @CFLAGS@ -fno-builtin
|
||||
LIBS = @LIBS@ @CLOCK_LIB@
|
||||
YACC = @YACC@
|
||||
YACC = @YACC@ -Wno-yacc
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
|
@ -102,6 +102,7 @@ static void usage(void)
|
||||
" -S <connect_str> connect string (for slave mode only)\n"
|
||||
" -p <port> override modem port (must be defined in config)\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"
|
||||
"\n",
|
||||
conf_getconfname()
|
||||
@ -257,7 +258,7 @@ int main(int argc, char *argv[], char *envp[])
|
||||
|
||||
// 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 ) {
|
||||
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); }
|
||||
opts.inetd = 1;
|
||||
break;
|
||||
case 'v':
|
||||
opts.earlydbg = TRUE;
|
||||
break;
|
||||
case 'C':
|
||||
if( opts.confname || !optarg ) { usage(); exit(BFERR_FATALERROR); }
|
||||
opts.confname = (char *)xstrcpy(optarg);
|
||||
@ -435,15 +439,16 @@ int main(int argc, char *argv[], char *envp[])
|
||||
|
||||
/* Process primary config file */
|
||||
if( opts.confname && *opts.confname )
|
||||
rc = conf_readconf(opts.confname, 0);
|
||||
rc = conf_readconf(opts.confname, 0, opts.earlydbg);
|
||||
else
|
||||
rc = conf_readconf(conf_getconfname(), 0);
|
||||
rc = conf_readconf(conf_getconfname(), 0, opts.earlydbg);
|
||||
|
||||
if( rc ) gotoexit(BFERR_FATALERROR);
|
||||
|
||||
/* Process additional config file, ignore errors */
|
||||
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 */
|
||||
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 )
|
||||
{
|
||||
case MODE_DAEMON:
|
||||
DEB((D_STATEM, "Daemon mode"));
|
||||
log("Daemon mode");
|
||||
rc = bforce_daemon(&opts);
|
||||
break;
|
||||
@ -466,14 +472,17 @@ case MODE_CALL_DEFAULT:
|
||||
case MODE_CALL_IP:
|
||||
case MODE_CALL_MODEM:
|
||||
case MODE_CALL_STDIO:
|
||||
DEB((D_STATEM, "Outgoing call"));
|
||||
log("Outgoing call");
|
||||
rc = bforce_master(&opts);
|
||||
break;
|
||||
case MODE_ANSWER:
|
||||
DEB((D_STATEM, "Start answer"));
|
||||
log("Start answer");
|
||||
rc = bforce_slave(&opts);
|
||||
break;
|
||||
default:
|
||||
DEB((D_STATEM, "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);
|
||||
break;
|
||||
default:
|
||||
DEB((D_CONFIG, "deinit_cval_entry: type %d doesn't use dynamic memory",
|
||||
type));
|
||||
//DEB((D_CONFIG, "deinit_cval_entry: type %d doesn't use dynamic memory",
|
||||
// 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_min_speed, CT_NUMBER),
|
||||
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(history_file, CT_STRING),
|
||||
CONF_KEY(hydra_options, CT_OPTIONS),
|
||||
|
@ -129,9 +129,11 @@ static void conf_parsestr(char *str, char **key, char **expr, char **value)
|
||||
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;
|
||||
char tmp[BF_MAXCFGLINE + 1];
|
||||
int rc, maxrc = 0;
|
||||
@ -156,7 +158,8 @@ int conf_readconf(const char *confname, int inclevel)
|
||||
{
|
||||
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);
|
||||
return -1;
|
||||
}
|
||||
@ -165,12 +168,13 @@ int conf_readconf(const char *confname, int inclevel)
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
DEB((D_CONFIG, "readconfig: start reading config \"%s\"", confname));
|
||||
|
||||
if (earlydbg)
|
||||
fprintf(stderr,"BF-DEBUG: start reading config \"%s\"\n", confname);
|
||||
|
||||
while( fgets(tmp, sizeof(tmp), fp) )
|
||||
{
|
||||
++line;
|
||||
@ -180,15 +184,20 @@ int conf_readconf(const char *confname, int inclevel)
|
||||
{
|
||||
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; }
|
||||
isifexpr = FALSE;
|
||||
}
|
||||
|
||||
if( !isappend )
|
||||
continue;
|
||||
|
||||
if (earlydbg)
|
||||
fprintf(stderr,"BF-DEBUG: warning: appending empty or comment line %d\n", line);
|
||||
|
||||
|
||||
log("warning: appending empty or comment line %d", line);
|
||||
isappend = FALSE;
|
||||
}
|
||||
|
||||
@ -230,9 +239,10 @@ int conf_readconf(const char *confname, int inclevel)
|
||||
p_value = NULL;
|
||||
|
||||
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 )
|
||||
{
|
||||
@ -256,19 +266,24 @@ int conf_readconf(const char *confname, int inclevel)
|
||||
{
|
||||
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;
|
||||
}
|
||||
else if( inclevel < MAXINCLUDELEVEL )
|
||||
{
|
||||
DEB((D_CONFIG, "conf_readconf: process inlude file \"%s\"", value));
|
||||
rc = conf_readconf(value, inclevel + 1);
|
||||
if (earlydbg)
|
||||
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;
|
||||
}
|
||||
else
|
||||
{
|
||||
DEB((D_CONFIG, "conf_readconf: too deep include"));
|
||||
log("including level too deep");
|
||||
if (earlydbg)
|
||||
fprintf(stderr, "BF-DEBUG: conf_readconf: too deep include\n");
|
||||
|
||||
rc = PROC_RC_IGNORE;
|
||||
}
|
||||
}
|
||||
@ -276,7 +291,9 @@ int conf_readconf(const char *confname, int inclevel)
|
||||
{
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -292,7 +309,9 @@ int conf_readconf(const char *confname, int inclevel)
|
||||
{
|
||||
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;
|
||||
}
|
||||
else
|
||||
@ -301,69 +320,12 @@ int conf_readconf(const char *confname, int inclevel)
|
||||
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
|
||||
{
|
||||
log("unknown directive `%s'", p_key);
|
||||
if (earlydbg)
|
||||
fprintf(stderr, "BF-DEBUG: unknown directive `%s'\n", p_key);
|
||||
|
||||
rc = PROC_RC_IGNORE;
|
||||
}
|
||||
}
|
||||
@ -371,7 +333,9 @@ int conf_readconf(const char *confname, int inclevel)
|
||||
{
|
||||
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;
|
||||
}
|
||||
else if( isifexpr )
|
||||
@ -385,7 +349,9 @@ int conf_readconf(const char *confname, int inclevel)
|
||||
}
|
||||
else
|
||||
{
|
||||
log("incorrect config string");
|
||||
if (earlydbg)
|
||||
fprintf(stderr, "BF-DEBUG: incorrect config string %s\n", fullstr);
|
||||
|
||||
rc = PROC_RC_IGNORE;
|
||||
}
|
||||
|
||||
@ -400,13 +366,19 @@ int conf_readconf(const char *confname, int inclevel)
|
||||
case PROC_RC_OK:
|
||||
break;
|
||||
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;
|
||||
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;
|
||||
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;
|
||||
default:
|
||||
ASSERT_MSG();
|
||||
@ -418,54 +390,36 @@ int conf_readconf(const char *confname, int inclevel)
|
||||
file_close(fp);
|
||||
|
||||
if( isifexpr )
|
||||
{ maxrc = 1; log("unterminated directive `#ifexp'"); }
|
||||
{
|
||||
maxrc = 1;
|
||||
if (earlydbg)
|
||||
fprintf(stderr, "BF-DEBUG: unterminated directive `#ifexp'\n");
|
||||
|
||||
}
|
||||
|
||||
if( fullstr )
|
||||
free(fullstr);
|
||||
if( 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 */
|
||||
if (inclevel==0) { // end of main config
|
||||
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);
|
||||
}
|
||||
#ifdef DEBUG
|
||||
debug_configure();
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
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 */
|
||||
if( confname && *confname )
|
||||
rc = conf_readconf(confname, 0);
|
||||
rc = conf_readconf(confname, 0, false);
|
||||
else
|
||||
rc = conf_readconf(conf_getconfname(), 0);
|
||||
rc = conf_readconf(conf_getconfname(), 0, false);
|
||||
|
||||
if( rc )
|
||||
return(BFERR_FATALERROR);
|
||||
|
||||
/* 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)");
|
||||
|
||||
dmstate = DM_Start;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -45,6 +45,7 @@
|
||||
%token LOGOP
|
||||
|
||||
%expect 2
|
||||
|
||||
%{
|
||||
#include "includes.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);
|
||||
void binkp_process_NUL(s_binkp_sysinfo *remote_data, char *buffer);
|
||||
void binkp_process_ADR(char *buffer);
|
||||
int binkp_auth_incoming(s_binkp_sysinfo *remote_data);
|
||||
|
||||
|
||||
int binkp_loop(s_binkp_state *bstate) {
|
||||
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;
|
||||
*block_type = BINKP_BLK_CMD;
|
||||
|
||||
if( bstate->local_data->passwd == '\0' ) {
|
||||
if( bstate->local_data->passwd[0] == '\0' ) {
|
||||
*block_length = 1 + sprintf(buf+1, "-");
|
||||
}
|
||||
else if( bstate->remote_data->options & BINKP_OPT_MD5 ) {
|
||||
|
@ -695,6 +695,7 @@ int session(void)
|
||||
s_traffic traff_send;
|
||||
s_traffic traff_recv;
|
||||
char *p;
|
||||
int fd = -1;
|
||||
|
||||
memset(&traff_send, '\0', sizeof(s_traffic));
|
||||
memset(&traff_recv, '\0', sizeof(s_traffic));
|
||||
@ -890,6 +891,38 @@ int session(void)
|
||||
*/
|
||||
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
|
||||
*/
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -301,7 +301,7 @@ int main(int argc, char *argv[])
|
||||
/* Initialise current locale */
|
||||
(void)setlocale(LC_ALL, "");
|
||||
|
||||
if( conf_readconf(conf_getconfname(), 0) )
|
||||
if( conf_readconf(conf_getconfname(), 0, false) )
|
||||
exit(1);
|
||||
|
||||
memset(&ocb, '\0', sizeof(s_outbound_callback_data));
|
||||
|
@ -159,7 +159,7 @@ int main(int argc, char *argv[])
|
||||
exit(BFERR_FATALERROR);
|
||||
}
|
||||
|
||||
if( conf_readconf(conf_getconfname(), 0) )
|
||||
if( conf_readconf(conf_getconfname(), 0, false) )
|
||||
exit(BFERR_FATALERROR);
|
||||
|
||||
if( rawstring )
|
||||
|
8
source/configure
vendored
8
source/configure
vendored
@ -580,10 +580,10 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='bforce'
|
||||
PACKAGE_TARNAME='bforce'
|
||||
PACKAGE_VERSION='0.24'
|
||||
PACKAGE_STRING='bforce 0.24'
|
||||
PACKAGE_BUGREPORT='sergey@fidoman.ru'
|
||||
PACKAGE_URL=''
|
||||
PACKAGE_VERSION='0.24.1'
|
||||
PACKAGE_STRING='bforce 0.24.1'
|
||||
PACKAGE_BUGREPORT='zx@zxalexis.ru'
|
||||
PACKAGE_URL='https://prj.zxalexis.ru/gitea/zx/bforce.git'
|
||||
|
||||
ac_default_prefix=/usr/local/fido
|
||||
# Factoring default headers for most tests.
|
||||
|
@ -3,7 +3,7 @@ dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
#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_CANONICAL_SYSTEM
|
||||
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_SUBST([CLOCK_LIB])
|
||||
AC_OUTPUT(Makefile)
|
||||
AC_OUTPUT(../debian/Makefile)
|
||||
dnl AC_OUTPUT(../debian/Makefile)
|
||||
|
@ -151,6 +151,7 @@ typedef struct {
|
||||
bool daemon; /* Run as daemon? */
|
||||
bool quit; /* Quit from daemon */
|
||||
bool usestdio; /* Session on stdin and stdout */
|
||||
bool earlydbg; /* Early debug on stderr */
|
||||
int inetd; /* Called from inetd? */
|
||||
int force; /* Force call? */
|
||||
int hiddline; /* Hidden line number (0,1..) */
|
||||
|
@ -191,6 +191,8 @@ typedef enum {
|
||||
cf_freq_limit_time,
|
||||
cf_freq_min_speed,
|
||||
cf_freq_srif_command,
|
||||
cf_incnet_flag,
|
||||
cf_incarc_flag,
|
||||
cf_hide_our_aka,
|
||||
cf_history_file,
|
||||
cf_hydra_options,
|
||||
@ -347,7 +349,7 @@ void deinit_translate(s_translate *dest);
|
||||
const char *conf_getconfname(void);
|
||||
int conf_postreadcheck(void);
|
||||
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
|
||||
void log_overridelist(s_override *subst);
|
||||
void log_options(s_options *opt);
|
||||
|
@ -33,28 +33,28 @@ enum { LOG_FILE_DAEMON, LOG_FILE_SESSION, LOG_FILE_DEBUG, LOG_FILE_HISTORY };
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
# define D_CONFIG 0x0000001L
|
||||
# define D_OVERRIDE 0x0000002L
|
||||
# define D_EVENT 0x0000004L
|
||||
# define D_NODELIST 0x0000008L
|
||||
# define D_OUTBOUND 0x0000010L
|
||||
# define D_INFO 0x0000020L
|
||||
# define D_HSHAKE 0x0000040L
|
||||
# define D_TTYIO 0x0000080L
|
||||
# define D_MODEM 0x0000100L
|
||||
# define D_PROT 0x0000200L
|
||||
# define D_FREQ 0x0000400L
|
||||
# define D_STATEM 0x0000800L
|
||||
# define D_DAEMON 0x0001000L
|
||||
# define D_24554 0x0002000L
|
||||
# define D_FREE 0x0004000L
|
||||
# define D_FULL 0xfffffffL
|
||||
#define D_CONFIG 0x0000001L
|
||||
#define D_OVERRIDE 0x0000002L
|
||||
#define D_EVENT 0x0000004L
|
||||
#define D_NODELIST 0x0000008L
|
||||
#define D_OUTBOUND 0x0000010L
|
||||
#define D_INFO 0x0000020L
|
||||
#define D_HSHAKE 0x0000040L
|
||||
#define D_TTYIO 0x0000080L
|
||||
#define D_MODEM 0x0000100L
|
||||
#define D_PROT 0x0000200L
|
||||
#define D_FREQ 0x0000400L
|
||||
#define D_STATEM 0x0000800L
|
||||
#define D_DAEMON 0x0001000L
|
||||
#define D_24554 0x0002000L
|
||||
#define D_FREE 0x0004000L
|
||||
#define D_FULL 0xfffffffL
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
# define DEB(what) debug what
|
||||
#define DEB(what) debug what
|
||||
#else
|
||||
# define DEB(what)
|
||||
#define DEB(what)
|
||||
#endif
|
||||
|
||||
const char *log_getfilename(int whatfor);
|
||||
|
Loading…
x
Reference in New Issue
Block a user