Fixed Makefile and build systems to include man-pages. Added Alt-linux workflow. Fix rpm spec-file #3

Merged
zx merged 21 commits from zx into master 2025-04-16 10:36:34 +03:00
10 changed files with 176 additions and 86 deletions

65
.gitea/workflows/alt.yaml Normal file
View File

@ -0,0 +1,65 @@
name: Altlinux build
run-name: Deploy to ${{ inputs.deploy_target }} by @${{ github.actor }} 🚀
on:
- push
- workflow_dispatch
if: ${{ github.ref }} == 'refs/head/master'
jobs:
build-alt:
runs-on: alt-latest
branches:
- 'master'
steps:
- name: Checking environment
continue-on-error: true
run: printenv
- name: Installing prerequisites - update apt
run: apt-get update
- name: Installing prerequisites - install nodejs for actions & git
run: apt-get install -y git nodejs su
- name: Installing build environment
continue-on-error: true
run: |
apt-get install -y gcc rpm-build rpmlint make python gear hasher fakeroot patch rpmdevtools
- name: Installing needed software
run: apt-get install -y bison tcl
- name: Adding build user
run: useradd -d /builder -g users -m builder
- name: Fetching sources
uses: actions/checkout@v4
- name: Getting version info
run: |
echo "BFORCE_VER=$(cat ${{ env.GITHUB_WORKSPACE }}/source/.version)" >> $GITHUB_ENV
- name: Compressing source to tar.gz archive
run: |
tar -cvzf ../bforce-${{ env.BFORCE_VER }}.tar.gz -C ${{ env.GITHUB_WORKSPACE }}/.. bforce
cp -v ${{ env.GITHUB_WORKSPACE }}/rpm/bforce.spec /builder/
chown builder /builder/bforce.spec
echo '-------------------------------------------------------'
pwd
ls /builder
sed -i 's/^# %setup/%setup/' /builder/bforce.spec
- name: Building buildtree
run: |
su - builder -c "cd /builder && mkdir -pv rpmbuild/{RPMS,SRPMS,SOURCES,BUILD,SPECS}"
ls /builder -l
mkdir -pv /builder/rpmbuild/SOURCES
mv ${{ env.GITHUB_WORKSPACE }}/../bforce-${{ env.BFORCE_VER }}.tar.gz /builder/rpmbuild/SOURCES/
chown -R builder /builder/*
- name: Building binary and source RPM
run: |
su - builder -c 'rpmbuild -bb /builder/bforce.spec --define "_topdir /builder/rpmbuild"'
- name: Constructing artifact name and version
run: |
echo "BFORCE_VERLONG=$(cat ${{ env.GITHUB_WORKSPACE }}/source/.version)-$(date +%Y%M%d)" >> $GITHUB_ENV
- name: Retrieving artifact files
run: mkdir bforce && cp /builder/rpmbuild/RPMS/x86_64/bforce-*.rpm bforce
- name: Try to upload artifacts bin
uses: actions/upload-artifact@v3
with:
name: bforce-${{ env.BFORCE_VERLONG }}-Alt
path: /builder/rpmbuild/RPMS/x86_64
- name: Echo OK
run: echo "All OK"

View File

@ -1,5 +1,6 @@
![master branch](https://prj.zxalexis.ru/gitea/zx/bforce/actions/workflows/debpkg.yaml/badge.svg?branch=master) ![master branch](https://prj.zxalexis.ru/gitea/zx/bforce/actions/workflows/debpkg.yaml/badge.svg?branch=master)
![master branch](https://prj.zxalexis.ru/gitea/zx/bforce/actions/workflows/arch.yaml/badge.svg?branch=master) ![master branch](https://prj.zxalexis.ru/gitea/zx/bforce/actions/workflows/arch.yaml/badge.svg?branch=master)
![master branch](https://prj.zxalexis.ru/gitea/zx/bforce/actions/workflows/alt.yaml/badge.svg?branch=master)
BinkleyForce FTN mailer BinkleyForce FTN mailer
----------------------- -----------------------

View File

@ -1,54 +1,66 @@
Summary: Bforce, Fidonet mailer Summary: Bforce, Fidonet mailer
Name: bforce Name: bforce
Version: 0.26.1 Version: 0.26.1
Release: 0 Release: %{_vendor}.1
Copyright: GPL Copyright: GPL
Group: Fidonet/mailer Group: Fidonet/mailer
Source0: bforce-%{version}.%{release}.tar.gz Source0: bforce-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-root BuildRoot: %{_tmppath}/%{name}-root
%description %description
BFORCE is a FTN mailer. Supports PSTN and binkp sessions. BFORCE is a FTN mailer. Supports PSTN and binkp sessions.
%prep %prep
#%setup -q -n %{name}-%{version}.%{release} # uncomment this to build from tarball
cd source # %setup -q -n %{name}
./configure --prefix=/usr --disable-log-passwd --sysconfdir=/etc/bforce --bindir=/usr/bin --with-owner=uucp --with-group=news echo "------------ PREPARING RPM BUILD IN $(pwd) ------------"
export RPM_PACKAGE_VERSION=$(cat %{_builddir}/%{name}/source/.version)
cd %{_builddir}/%{name}/source
%{_builddir}/%{name}/source/configure --prefix=/usr --disable-log-passwd --sysconfdir=/etc/bforce --bindir=/usr/bin --with-owner=uucp --with-group=news CFLAGS='-g1'
%build %build
cd source echo "------------ BUILDING RPM IN $(pwd) ------------"
cd %{_builddir}/%{name}/source
make make
%install %install
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/etc/bforce mkdir -p $RPM_BUILD_ROOT/etc/bforce
mkdir -p $RPM_BUILD_ROOT/usr/bin mkdir -p $RPM_BUILD_ROOT/usr/bin
mkdir -p $RPM_BUILD_ROOT/usr/sbin mkdir -p $RPM_BUILD_ROOT/usr/sbin
mkdir -p $RPM_BUILD_ROOT/usr/share/man/man1
mkdir -p $RPM_BUILD_ROOT/var/log/bforce mkdir -p $RPM_BUILD_ROOT/var/log/bforce
mkdir -p $RPM_BUILD_ROOT/var/spool/fido/bt/pin mkdir -p $RPM_BUILD_ROOT/var/spool/fido/bt/pin
mkdir -p $RPM_BUILD_ROOT/var/spool/fido/bt/in mkdir -p $RPM_BUILD_ROOT/var/spool/fido/bt/in
mkdir -p $RPM_BUILD_ROOT/var/spool/fido/ndl mkdir -p $RPM_BUILD_ROOT/var/spool/fido/ndl
mkdir -p $RPM_BUILD_ROOT/var/spool/fido/bforce mkdir -p $RPM_BUILD_ROOT/var/spool/fido/bforce
mkdir -p $RPM_BUILD_ROOT/$RPM_DOC_DIR/$RPM_PACKAGE_NAME-$RPM_PACKAGE_VERSION
install -o uucp -g news source/bin/bforce $RPM_BUILD_ROOT/usr/bin/bforce install %{_builddir}/%{name}/source/bin/bforce $RPM_BUILD_ROOT/usr/bin/bforce
install -o uucp -g news source/bin/bfindex $RPM_BUILD_ROOT/usr/bin/bfindex install %{_builddir}/%{name}/source/bin/bfindex $RPM_BUILD_ROOT/usr/bin/bfindex
install -o uucp -g news source/bin/bfstat $RPM_BUILD_ROOT/usr/bin/bfstat install %{_builddir}/%{name}/source/bin/bfstat $RPM_BUILD_ROOT/usr/bin/bfstat
install -o uucp -g news source/bin/nlookup $RPM_BUILD_ROOT/usr/bin/nlookup install %{_builddir}/%{name}/source/bin/nlookup $RPM_BUILD_ROOT/usr/bin/nlookup
install -o uucp -g news examples/bforce.conf $RPM_BUILD_ROOT/etc/bforce/bforce.conf.sample install %{_builddir}/%{name}/examples/bforce.conf $RPM_BUILD_ROOT/etc/bforce/bforce.conf.sample
install -o uucp -g news examples/bforce.passwd $RPM_BUILD_ROOT/etc/bforce/bforce.passwd.sample install %{_builddir}/%{name}/examples/bforce.passwd $RPM_BUILD_ROOT/etc/bforce/bforce.passwd.sample
install -o uucp -g news examples/bforce.subst $RPM_BUILD_ROOT/etc/bforce/bforce.subst.sample install %{_builddir}/%{name}/examples/bforce.subst $RPM_BUILD_ROOT/etc/bforce/bforce.subst.sample
install -o uucp -g news examples/freq.aliases $RPM_BUILD_ROOT/etc/bforce/freq.aliases.sample install %{_builddir}/%{name}/examples/freq.aliases $RPM_BUILD_ROOT/etc/bforce/freq.aliases.sample
install -o uucp -g news examples/freq.dirs $RPM_BUILD_ROOT/etc/bforce/freq.dirs.sample install %{_builddir}/%{name}/examples/freq.dirs $RPM_BUILD_ROOT/etc/bforce/freq.dirs.sample
install -m755 -o uucp -g news contrib/outman $RPM_BUILD_ROOT/usr/bin/outman install %{_builddir}/%{name}/contrib/outman $RPM_BUILD_ROOT/usr/bin/outman
cp %{_builddir}/%{name}/man/*.1 $RPM_BUILD_ROOT/usr/share/man/man1/
cp %{_builddir}/%{name}/{README.md,CHANGES,COPYING,INSTALL,INSTALL.ru,SYSLOG,TODO} $RPM_BUILD_ROOT/$RPM_DOC_DIR/$RPM_PACKAGE_NAME-$RPM_PACKAGE_VERSION/
%clean %clean
rm -rf $RPM_BUILD_ROOT rm -rf $RPM_BUILD_ROOT
%files %files
%doc README README.kst CHANGES CHANGES.kst CHANGES.ugenk COPYING INSTALL.ru README.ugenk SYSLOG TODO %{_mandir}/man1/bforce.1.xz
%{_mandir}/man1/bfindex.1.xz
%{_mandir}/man1/bfstat.1.xz
%{_mandir}/man1/nlookup.1.xz
%{_mandir}/man1/outman.1.xz
%defattr(-, root, root) %defattr(-, root, root)
%attr(550,uucp,news) /usr/bin/bforce %attr(550,uucp,news) /usr/bin/bforce
@ -56,7 +68,7 @@ rm -rf $RPM_BUILD_ROOT
%attr(550,uucp,news) /usr/bin/bfstat %attr(550,uucp,news) /usr/bin/bfstat
%attr(550,uucp,news) /usr/bin/nlookup %attr(550,uucp,news) /usr/bin/nlookup
%attr(550,uucp,news) /usr/bin/outman %attr(550,uucp,news) /usr/bin/outman
%attr(644,root,root) /usr/share/doc/bforce/* %attr(644,root,root) /usr/share/doc/bforce-%{version}/*
%dir %attr(770,uucp,news) /var/log/bforce %dir %attr(770,uucp,news) /var/log/bforce
%dir %attr(770,uucp,news) /var/spool/fido/ndl %dir %attr(770,uucp,news) /var/spool/fido/ndl
%attr(775,uucp,news) /var/spool/fido/bt %attr(775,uucp,news) /var/spool/fido/bt

View File

@ -13,13 +13,14 @@ 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@ -l
INSTALL = @INSTALL@ INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
SRCDIR = @srcdir@ SRCDIR = @srcdir@
SRCDIRCONF = $(SRCDIR)/../examples SRCDIRCONF = $(SRCDIR)/../examples
CONTRIBDIR = $(SRCDIR)/../contrib CONTRIBDIR = $(SRCDIR)/../contrib
CONTRIBMAN = $(SRCDIR)/../man
OWNER = @OWNER@ OWNER = @OWNER@
GROUP = @GROUP@ GROUP = @GROUP@
@ -27,6 +28,7 @@ CONFDIR = @sysconfdir@
BINDIR = @bindir@ BINDIR = @bindir@
LOGDIR = @LOGDIR@ LOGDIR = @LOGDIR@
SPOOLDIR = @SPOOLDIR@ SPOOLDIR = @SPOOLDIR@
MANDIR = @MANDIR@
DAEMON_LOGFILE = $(LOGDIR)/bf-daemon DAEMON_LOGFILE = $(LOGDIR)/bf-daemon
BFORCE_LOGFILE = $(LOGDIR)/bf-log BFORCE_LOGFILE = $(LOGDIR)/bf-log
@ -175,6 +177,7 @@ installdirs:
if [ ! -d $(SPOOLDIR)/bt/out ]; then mkdir -p $(SPOOLDIR)/bt/out; fi if [ ! -d $(SPOOLDIR)/bt/out ]; then mkdir -p $(SPOOLDIR)/bt/out; fi
if [ ! -d $(SPOOLDIR)/ndl ]; then mkdir -p $(SPOOLDIR)/ndl; fi if [ ! -d $(SPOOLDIR)/ndl ]; then mkdir -p $(SPOOLDIR)/ndl; fi
if [ ! -d $(SPOOLDIR)/bforce ]; then mkdir -p $(SPOOLDIR); fi if [ ! -d $(SPOOLDIR)/bforce ]; then mkdir -p $(SPOOLDIR); fi
if [ ! -d $(MANDIR)/man1 ]; then mkdir -p $(MANDIR)/man1; fi
chown $(OWNER):$(GROUP) $(CONFDIR) chown $(OWNER):$(GROUP) $(CONFDIR)
chown $(OWNER):$(GROUP) $(LOGDIR) chown $(OWNER):$(GROUP) $(LOGDIR)
chown $(OWNER):$(GROUP) $(SPOOLDIR)/bt/in chown $(OWNER):$(GROUP) $(SPOOLDIR)/bt/in
@ -195,10 +198,17 @@ install-config:
$(INSTALL_DATA) -o $(OWNER) -g $(GROUP) $(SRCDIRCONF)/bforce.passwd $(CONFDIR)/bforce.passwd.sample $(INSTALL_DATA) -o $(OWNER) -g $(GROUP) $(SRCDIRCONF)/bforce.passwd $(CONFDIR)/bforce.passwd.sample
$(INSTALL_DATA) -o $(OWNER) -g $(GROUP) $(SRCDIRCONF)/freq.aliases $(CONFDIR)/freq.aliases.sample $(INSTALL_DATA) -o $(OWNER) -g $(GROUP) $(SRCDIRCONF)/freq.aliases $(CONFDIR)/freq.aliases.sample
$(INSTALL_DATA) -o $(OWNER) -g $(GROUP) $(SRCDIRCONF)/freq.dirs $(CONFDIR)/freq.dirs.sample $(INSTALL_DATA) -o $(OWNER) -g $(GROUP) $(SRCDIRCONF)/freq.dirs $(CONFDIR)/freq.dirs.sample
install-man:
$(INSTALL) $(CONTRIBMAN)/bforce.1 $(MANDIR)/man1/bforce.1
$(INSTALL) $(CONTRIBMAN)/bfindex.1 $(MANDIR)/man1/bfindex.1
$(INSTALL) $(CONTRIBMAN)/bfstat.1 $(MANDIR)/man1/bforce.1
$(INSTALL) $(CONTRIBMAN)/nlookup.1 $(MANDIR)/man1/bforce.1
$(INSTALL) $(CONTRIBMAN)/outman.1 $(MANDIR)/man1/bforce.1
install-contrib: install-contrib:
$(INSTALL_PROGRAM) -o $(OWNER) -g $(GROUP) $(CONTRIBDIR)/outman $(BINDIR)/outman $(INSTALL_PROGRAM) -o $(OWNER) -g $(GROUP) $(CONTRIBDIR)/outman $(BINDIR)/outman
@echo "Please, edit $(BINDIR)/outman" @echo "Please, edit $(BINDIR)/outman"
install: install-bin install-config install: install-bin install-config install-man

View File

@ -810,6 +810,7 @@ int daemon_pidfile(int cmd)
res = fscanf(pf, "%d", &hispid); res = fscanf(pf, "%d", &hispid);
if (res != 1) { if (res != 1) {
log("daemon pidfile: not readable"); log("daemon pidfile: not readable");
fclose(pf);
return -1; return -1;
} }
@ -854,6 +855,7 @@ int daemon_pidfile(int cmd)
res = fscanf(pf, "%d", &hispid); res = fscanf(pf, "%d", &hispid);
if (res != 1) { if (res != 1) {
log("daemon pidfile: not readable"); log("daemon pidfile: not readable");
fclose(pf);
return -1; return -1;
} }
@ -883,6 +885,7 @@ int daemon_pidfile(int cmd)
res = fscanf(pf, "%d", &hispid); res = fscanf(pf, "%d", &hispid);
if (res != 1) { if (res != 1) {
log("daemon pidfile: not readable"); log("daemon pidfile: not readable");
fclose(pf);
return -1; return -1;
} }

View File

@ -32,7 +32,7 @@ int daemon_line_add(const char *name, int type)
int i; int i;
for( i = 0; i < lines_num; i++ ) for( i = 0; i < lines_num; i++ )
if( !strcmp(lines_tab[i].name, name) ) if( (lines_tab) && !strcmp(lines_tab[i].name, name) )
return i; return i;
log("register new line \"%s\"", name); log("register new line \"%s\"", name);
@ -90,13 +90,12 @@ bool daemon_line_isready(const char *name)
void daemon_lines_deinit(void) void daemon_lines_deinit(void)
{ {
int i; int i;
if( lines_tab )
for( i = 0; i < lines_num; i++ )
if( lines_tab[i].name )
free(lines_tab[i].name);
if( lines_tab )
{ {
for( i = 0; i < lines_num; i++ )
if( lines_tab[i].name )
free(lines_tab[i].name);
free(lines_tab); free(lines_tab);
lines_tab = NULL; lines_tab = NULL;
} }

View File

@ -67,7 +67,7 @@
/* First part of user prologue. */ /* First part of user prologue. */
#line 49 "expression.y"
#include "includes.h" #include "includes.h"
#include "confread.h" #include "confread.h"
@ -110,7 +110,7 @@ static int yyparse(void);
static int yyerror(const char *s); static int yyerror(const char *s);
#line 114 "expression.tab.c"
# ifndef YY_CAST # ifndef YY_CAST
# ifdef __cplusplus # ifdef __cplusplus
@ -1225,25 +1225,25 @@ yyreduce:
switch (yyn) switch (yyn)
{ {
case 2: /* fullline: expression */ case 2: /* fullline: expression */
#line 94 "expression.y"
{ {
DEB((D_EVENT, "[yacc] expression return %d", yyvsp[0])); DEB((D_EVENT, "[yacc] expression return %d", yyvsp[0]));
expr_result = yyvsp[0]; expr_result = yyvsp[0];
} }
#line 1231 "expression.tab.c"
break; break;
case 3: /* expression: elemexp */ case 3: /* expression: elemexp */
#line 100 "expression.y"
{ {
DEB((D_EVENT, "[yacc] elemexp return %d", yyvsp[0])); DEB((D_EVENT, "[yacc] elemexp return %d", yyvsp[0]));
yyval = yyvsp[0]; yyval = yyvsp[0];
} }
#line 1240 "expression.tab.c"
break; break;
case 4: /* expression: NOT expression */ case 4: /* expression: NOT expression */
#line 105 "expression.y"
{ {
DEB((D_EVENT, "[yacc] not exprression %d", yyvsp[0])); DEB((D_EVENT, "[yacc] not exprression %d", yyvsp[0]));
if( (yyvsp[0]) < 0 ) if( (yyvsp[0]) < 0 )
@ -1251,190 +1251,190 @@ yyreduce:
else else
yyval = !(yyvsp[0]); yyval = !(yyvsp[0]);
} }
#line 1252 "expression.tab.c"
break; break;
case 5: /* expression: expression LOGOP expression */ case 5: /* expression: expression LOGOP expression */
#line 113 "expression.y"
{ {
yyval = expr_check_logic(yyvsp[-2], yyvsp[-1], yyvsp[0]); yyval = expr_check_logic(yyvsp[-2], yyvsp[-1], yyvsp[0]);
} }
#line 1260 "expression.tab.c"
break; break;
case 6: /* expression: OPENB expression CLOSEB */ case 6: /* expression: OPENB expression CLOSEB */
#line 117 "expression.y"
{ {
DEB((D_EVENT, "eventexp: [yacc] backeted.expr %d", yyvsp[-1])); DEB((D_EVENT, "eventexp: [yacc] backeted.expr %d", yyvsp[-1]));
yyval = yyvsp[-1]; yyval = yyvsp[-1];
} }
#line 1269 "expression.tab.c"
break; break;
case 7: /* elemexp: INCOMING */ case 7: /* elemexp: INCOMING */
#line 123 "expression.y"
{ {
yyval = expr_check_incoming(); yyval = expr_check_incoming();
} }
#line 1277 "expression.tab.c"
break; break;
case 8: /* elemexp: OUTGOING */ case 8: /* elemexp: OUTGOING */
#line 127 "expression.y"
{ {
yyval = expr_check_outgoing(); yyval = expr_check_outgoing();
} }
#line 1285 "expression.tab.c"
break; break;
case 9: /* elemexp: LISTED */ case 9: /* elemexp: LISTED */
#line 131 "expression.y"
{ {
yyval = expr_check_listed(); yyval = expr_check_listed();
} }
#line 1293 "expression.tab.c"
break; break;
case 10: /* elemexp: PROTECTED */ case 10: /* elemexp: PROTECTED */
#line 135 "expression.y"
{ {
yyval = expr_check_protected(); yyval = expr_check_protected();
} }
#line 1301 "expression.tab.c"
break; break;
case 11: /* elemexp: FLAG flagstring */ case 11: /* elemexp: FLAG flagstring */
#line 139 "expression.y"
{ {
yyval = yyvsp[0]; yyval = yyvsp[0];
} }
#line 1309 "expression.tab.c"
break; break;
case 12: /* elemexp: CONNSPEED AROP NUMBER */ case 12: /* elemexp: CONNSPEED AROP NUMBER */
#line 143 "expression.y"
{ {
if( state.valid && state.connspeed > 0 ) if( state.valid && state.connspeed > 0 )
yyval = expr_check_arop(state.connspeed, yyvsp[-1], yyvsp[0]); yyval = expr_check_arop(state.connspeed, yyvsp[-1], yyvsp[0]);
else else
yyval = -1; yyval = -1;
} }
#line 1320 "expression.tab.c"
break; break;
case 13: /* elemexp: SPEED AROP NUMBER */ case 13: /* elemexp: SPEED AROP NUMBER */
#line 150 "expression.y"
{ {
if( state.valid && state.node.speed > 0 ) if( state.valid && state.node.speed > 0 )
yyval = expr_check_arop(state.node.speed, yyvsp[-1], yyvsp[0]); yyval = expr_check_arop(state.node.speed, yyvsp[-1], yyvsp[0]);
else else
yyval = -1; yyval = -1;
} }
#line 1331 "expression.tab.c"
break; break;
case 14: /* elemexp: TZ AROP NUMBER */ case 14: /* elemexp: TZ AROP NUMBER */
#line 157 "expression.y"
{ {
yyval = expr_check_arop(time_gmtoffset(), yyvsp[-1], yyvsp[0]); yyval = expr_check_arop(time_gmtoffset(), yyvsp[-1], yyvsp[0]);
} }
#line 1339 "expression.tab.c"
break; break;
case 15: /* elemexp: PHONE TEXT */ case 15: /* elemexp: PHONE TEXT */
#line 161 "expression.y"
{ {
yyval = expr_check_phone(expr_p_text); yyval = expr_check_phone(expr_p_text);
} }
#line 1347 "expression.tab.c"
break; break;
case 16: /* elemexp: TIME timestring */ case 16: /* elemexp: TIME timestring */
#line 165 "expression.y"
{ {
yyval = yyvsp[0]; yyval = yyvsp[0];
} }
#line 1355 "expression.tab.c"
break; break;
case 17: /* elemexp: EXEC TEXT */ case 17: /* elemexp: EXEC TEXT */
#line 169 "expression.y"
{ {
yyval = expr_check_exec(expr_p_text); yyval = expr_check_exec(expr_p_text);
} }
#line 1363 "expression.tab.c"
break; break;
case 18: /* elemexp: EXIST TEXT */ case 18: /* elemexp: EXIST TEXT */
#line 173 "expression.y"
{ {
yyval = expr_check_exist(expr_p_text); yyval = expr_check_exist(expr_p_text);
} }
#line 1371 "expression.tab.c"
break; break;
case 19: /* elemexp: PORT TEXT */ case 19: /* elemexp: PORT TEXT */
#line 177 "expression.y"
{ {
yyval = expr_check_port(expr_p_text); yyval = expr_check_port(expr_p_text);
} }
#line 1379 "expression.tab.c"
break; break;
case 20: /* elemexp: MAILER TEXT */ case 20: /* elemexp: MAILER TEXT */
#line 181 "expression.y"
{ {
yyval = expr_check_mailer(expr_p_text); yyval = expr_check_mailer(expr_p_text);
} }
#line 1387 "expression.tab.c"
break; break;
case 21: /* elemexp: TEXT */ case 21: /* elemexp: TEXT */
#line 185 "expression.y"
{ {
yyval = expr_check_addr(expr_p_text); yyval = expr_check_addr(expr_p_text);
if( yyval == -2 ) if( yyval == -2 )
YYABORT; YYABORT;
} }
#line 1397 "expression.tab.c"
break; break;
case 22: /* flagstring: TEXT */ case 22: /* flagstring: TEXT */
#line 192 "expression.y"
{ {
yyval = expr_check_flag(expr_p_text); yyval = expr_check_flag(expr_p_text);
} }
#line 1405 "expression.tab.c"
break; break;
case 23: /* flagstring: TEXT COMMA flagstring */ case 23: /* flagstring: TEXT COMMA flagstring */
#line 196 "expression.y"
{ {
yyval = expr_check_logic(yyvsp[-2], OR, yyvsp[0]); yyval = expr_check_logic(yyvsp[-2], OR, yyvsp[0]);
} }
#line 1413 "expression.tab.c"
break; break;
case 24: /* timestring: TEXT */ case 24: /* timestring: TEXT */
#line 201 "expression.y"
{ {
yyval = expr_check_time(expr_p_text); yyval = expr_check_time(expr_p_text);
if( yyval == -2 ) if( yyval == -2 )
YYABORT; YYABORT;
} }
#line 1423 "expression.tab.c"
break; break;
case 25: /* timestring: TEXT COMMA timestring */ case 25: /* timestring: TEXT COMMA timestring */
#line 207 "expression.y"
{ {
yyval = expr_check_logic(yyvsp[-2], OR, yyvsp[0]); yyval = expr_check_logic(yyvsp[-2], OR, yyvsp[0]);
} }
#line 1431 "expression.tab.c"
break; break;
#line 1435 "expression.tab.c"
default: break; default: break;
} }
@ -1627,7 +1627,7 @@ yyreturnlab:
return yyresult; return yyresult;
} }
#line 211 "expression.y"
#include "expression_lex.c" #include "expression_lex.c"

View File

@ -115,7 +115,7 @@ static void req_readfrlist(char *fname, s_frlist **frlist, int magic)
(*ptrl) = (s_frlist*)xmalloc(sizeof(s_frlist)); (*ptrl) = (s_frlist*)xmalloc(sizeof(s_frlist));
memset(*ptrl, '\0', sizeof(s_frlist)); memset(*ptrl, '\0', sizeof(s_frlist));
if( path && *path ) (*ptrl)->path = xstrcpy(path); if( *path ) (*ptrl)->path = xstrcpy(path);
if( !magic && *(path + strlen(path) - 1) != DIRSEPCHR ) if( !magic && *(path + strlen(path) - 1) != DIRSEPCHR )
{ {
/* add trailing DIRSEP ('/' or ..) to paths */ /* add trailing DIRSEP ('/' or ..) to paths */

View File

@ -19,7 +19,7 @@
#define DEFAULT_PORT 60179 /* Birthday .. mother fucker :) */ #define DEFAULT_PORT 60179 /* Birthday .. mother fucker :) */
struct addrinfo *ai = NULL; struct addrinfo *paddrinfo = NULL;
static RETSIGTYPE tcpip_interrupt(int sig) static RETSIGTYPE tcpip_interrupt(int sig)
{ {
@ -171,7 +171,7 @@ int tcpip_connect(const char *hostname, e_tcpmode tcpmode)
//aihints.ai_socktype = SOCK_STREAM; //aihints.ai_socktype = SOCK_STREAM;
aihints.ai_protocol = IPPROTO_TCP; aihints.ai_protocol = IPPROTO_TCP;
nameres = getaddrinfo ( host, port, &aihints, &ai ); nameres = getaddrinfo ( host, port, &aihints, &paddrinfo );
if ( nameres != 0 ) if ( nameres != 0 )
{ {
rc = 1; rc = 1;
@ -208,10 +208,10 @@ int tcpip_connect(const char *hostname, e_tcpmode tcpmode)
if( host ) { free(host); host = NULL; } if( host ) { free(host); host = NULL; }
DEB((D_INFO, "tcpip_connect: resolver got result!")); DEB((D_INFO, "tcpip_connect: resolver got result!"));
aisave = ai; aisave = paddrinfo;
if (rc == 0 ) if (rc == 0 )
rc = tcpip_connect2(ai); rc = tcpip_connect2(paddrinfo);
freeaddrinfo( aisave ); freeaddrinfo( aisave );

View File

@ -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.1],[zx@zxalexis.ru]) AC_INIT([bforce],[0.26.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.