Compare commits
No commits in common. "master" and "0.25.3" have entirely different histories.
@ -1,65 +0,0 @@
|
||||
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"
|
@ -1,42 +0,0 @@
|
||||
name: Archlinux build
|
||||
run-name: Deploy to ${{ inputs.deploy_target }} by @${{ github.actor }} 🚀
|
||||
on:
|
||||
- push
|
||||
- workflow_dispatch
|
||||
if: ${{ github.ref }} == 'refs/head/master'
|
||||
jobs:
|
||||
build-arch:
|
||||
runs-on: arch-latest
|
||||
|
||||
branches:
|
||||
- 'master'
|
||||
|
||||
steps:
|
||||
- name: Checking environment
|
||||
continue-on-error: true
|
||||
run: printenv
|
||||
- name: Installing prerequisites - update pacman
|
||||
run: pacman -Sy
|
||||
- name: Installing prerequisites - install nodejs for actions & git
|
||||
run: pacman --disable-sandbox --noconfirm -v -S git nodejs
|
||||
- name: Adding user builder
|
||||
continue-on-error: true
|
||||
run: useradd -d /builder -g users -m builder
|
||||
- name: Downloading PKGBUILD
|
||||
run: |
|
||||
su - builder -c "curl -O http://zxprj:3001/zx/bforce/raw/branch/master/archlinux/bforce.install"
|
||||
su - builder -c "curl -o PKGBUILD http://zxprj:3001/zx/bforce/raw/branch/master/archlinux/PKGBUILD.ci"
|
||||
- name: Building archlinux package
|
||||
run: |
|
||||
su -w GITHUB_SHA,GITHUB_REF_NAME,GITHUB_REF_TYPE - builder -c makepkg
|
||||
su - builder -c "ls -la"
|
||||
- name: Constructing artifact name and version
|
||||
run: |
|
||||
echo "BFORCE_VER=$(cat /builder/src/bforce/source/.version)-$(date +%Y%M%d)" >> $GITHUB_ENV
|
||||
- name: Retrieving artifact files
|
||||
run: mkdir bforce && cp /builder/bforce-*.pkg.tar.zst bforce
|
||||
- name: Try to upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: bforce-${{ env.BFORCE_VER }}-Arch
|
||||
path: bforce
|
@ -1,52 +0,0 @@
|
||||
name: Debian build
|
||||
run-name: Deploy to ${{ inputs.deploy_target }} by @${{ github.actor }} 🚀
|
||||
on:
|
||||
- push
|
||||
- workflow_dispatch
|
||||
jobs:
|
||||
build-ubuntu:
|
||||
runs-on: ubuntu-latest
|
||||
branches:
|
||||
- 'master'
|
||||
- 'zx'
|
||||
steps:
|
||||
- name: Checking environment
|
||||
continue-on-error: true
|
||||
run: printenv
|
||||
- name: Installing build-essentials
|
||||
continue-on-error: false
|
||||
run: |
|
||||
apt update
|
||||
apt install -y build-essential fakeroot devscripts debhelper pkg-config --no-install-recommends
|
||||
- name: Installing dependencies
|
||||
continue-on-error: false
|
||||
run: |
|
||||
echo '---- bison ----'
|
||||
apt install -y bison
|
||||
echo '---- tcl ------'
|
||||
apt install -y tcl
|
||||
- name: Cloning source
|
||||
uses: actions/checkout@v4
|
||||
- name: Getting version info
|
||||
run: |
|
||||
echo "BFORCE_VER=$(cat ${{ env.GITHUB_WORKSPACE }}/source/.version)-$(date +%Y%M%d)" >> $GITHUB_ENV
|
||||
- name: Building package
|
||||
continue-on-error: false
|
||||
run: |
|
||||
pwd
|
||||
echo '---------------------'
|
||||
cd ${GITHUB_WORKSPACE}/debian
|
||||
ls -l
|
||||
debuild -us -uc -b
|
||||
echo '---build complete---'
|
||||
ls -l ${{ env.GITHUB_WORKSPACE }}/../
|
||||
- name: Collecting artifacts
|
||||
run: |
|
||||
mkdir -pv ${{ env.GITHUB_WORKSPACE }}/artifacts
|
||||
mv -v ${{ env.GITHUB_WORKSPACE }}/../*.deb ${{ env.GITHUB_WORKSPACE }}/artifacts/
|
||||
- name: Try to upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: bforce-${{ env.BFORCE_VER }}-Ubuntu
|
||||
path: ${{ env.GITHUB_WORKSPACE }}/artifacts/bforce*.deb
|
||||
- run: echo "This job's over"
|
3
.gitignore
vendored
3
.gitignore
vendored
@ -7,3 +7,6 @@ source/config.log
|
||||
source/config.status
|
||||
source/include/config.h
|
||||
bforce.geany
|
||||
|
||||
|
||||
|
||||
|
9
CHANGES
9
CHANGES
@ -270,12 +270,3 @@ Alexey Khromov (zx@zxalexis.ru)
|
||||
+ Added flags for TIC files (inctic_flag) and files (incfile_flag)
|
||||
+ Fixed nodelist index creation
|
||||
+ Added support for TCP port description in IBN/IFC/ITN flags
|
||||
|
||||
0.26
|
||||
+ Fixed incorrect binkp protocol realization in unprotected sessions.
|
||||
+ Fixed binkp override appliance in incoming handshake
|
||||
|
||||
0.26.1
|
||||
+ Fixed binkp stuck on overrides in config
|
||||
+ ReDebianized
|
||||
+ Added CI automation: builds for Archlinux and Ubuntu
|
||||
|
2
INSTALL
2
INSTALL
@ -46,7 +46,7 @@ The simplest way to compile this package is:
|
||||
|
||||
Compilers and Options
|
||||
=====================
|
||||
|
||||
|
||||
Some systems require unusual options for compilation or linking that
|
||||
the `configure' script does not know about. You can give `configure'
|
||||
initial values for variables by setting them in the environment. Using
|
||||
|
10
README.md
10
README.md
@ -1,7 +1,3 @@
|
||||

|
||||

|
||||

|
||||
|
||||
BinkleyForce FTN mailer
|
||||
-----------------------
|
||||
|
||||
@ -47,10 +43,6 @@ New Versions
|
||||
|
||||
https://prj.zxalexis.ru/gitea/zx/bforce
|
||||
|
||||
SAST Tools
|
||||
----------
|
||||
[PVS-Studio](https://pvs-studio.com/pvs-studio/?utm_source=website&utm_medium=github&utm_campaign=open_source) - static analyzer for C, C++, C#, and Java code.
|
||||
|
||||
Older Sources
|
||||
-------------
|
||||
https://github.com/zotrix/binkleyforce/
|
||||
@ -64,4 +56,4 @@ Copyright <br>
|
||||
> (c) 2007-2008 Sergey Babitch<br>
|
||||
> (c) 2011-2014 Sergey Dorofeev<br>
|
||||
> (c) 2014 Alexander Skovpen<br>
|
||||
> (c) 2024-2025 Alexey Khromov<br>
|
||||
> (c) 2024 Alexey Khromov<br>
|
||||
|
@ -1,59 +0,0 @@
|
||||
pkgname=bforce
|
||||
pkgver=r235.a1c93b8
|
||||
pkgrel=1
|
||||
pkgdesc="binkleyforce FTN mailer"
|
||||
arch=('i686' 'x86_64' 'aarch64')
|
||||
url="https://prj.zxalexis.ru/gitea/zx/bforce/"
|
||||
license=('GPL2')
|
||||
source=(
|
||||
"${pkgname}::git+https://prj.zxalexis.ru/gitea/zx/bforce.git"
|
||||
)
|
||||
makedepends=('git' 'gcc' 'make' 'glibc')
|
||||
provides=('bforce')
|
||||
|
||||
build() {
|
||||
cd "${srcdir}/${pkgname}/source"
|
||||
./configure --prefix=/ --disable-syslog --with-owner=fido --with-group=uucp
|
||||
make
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd "${pkgname}"
|
||||
printf "$( pwd )\n"
|
||||
}
|
||||
|
||||
pkgver() {
|
||||
cd "$pkgname"
|
||||
printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
|
||||
}
|
||||
|
||||
package() {
|
||||
cd ${pkgdir}
|
||||
mkdir -p ${pkgdir}/etc
|
||||
mkdir -p ${pkgdir}/usr/bin
|
||||
mkdir -p ${pkgdir}/usr/local/bin
|
||||
mkdir -p ${pkgdir}/usr/share/doc/bforce
|
||||
mkdir -p ${pkgdir}/usr/share/man/man1
|
||||
mkdir -p ${pkgdir}/var/log/bforce
|
||||
mkdir -p ${pkgdir}/var/spool/bforce
|
||||
mkdir -p ${pkgdir}/var/spool/bforce/bt/in
|
||||
mkdir -p ${pkgdir}/var/spool/bforce/bt/pin
|
||||
mkdir -p ${pkgdir}/var/spool/bforce/bt/out
|
||||
mkdir -p ${pkgdir}/var/spool/bforce/ndl
|
||||
mkdir -p ${pkgdir}/var/spool/bforce/bforce
|
||||
/usr/bin/install -c ${srcdir}/${pkgname}/source/bin/bforce ${pkgdir}/usr/bin/bforce
|
||||
/usr/bin/install -c ${srcdir}/${pkgname}/source/bin/bfindex ${pkgdir}/usr/bin/bfindex
|
||||
/usr/bin/install -c ${srcdir}/${pkgname}/source/bin/bfstat ${pkgdir}/usr/bin/bfstat
|
||||
/usr/bin/install -c ${srcdir}/${pkgname}/source/bin/nlookup ${pkgdir}/usr/bin/nlookup
|
||||
/usr/bin/install -c ${srcdir}/${pkgname}/man/*.1 ${pkgdir}/usr/share/man/man1/
|
||||
/usr/bin/install -c -m 644 ${srcdir}/${pkgname}/examples/bforce.conf ${pkgdir}/etc/bforce.conf.sample
|
||||
/usr/bin/install -c -m 644 ${srcdir}/${pkgname}/examples/bforce.subst ${pkgdir}/etc/bforce.subst.sample
|
||||
/usr/bin/install -c -m 644 ${srcdir}/${pkgname}/examples/bforce.passwd ${pkgdir}/etc/bforce.passwd.sample
|
||||
/usr/bin/install -c -m 644 ${srcdir}/${pkgname}/examples/freq.aliases ${pkgdir}/etc/freq.aliases.sample
|
||||
/usr/bin/install -c -m 644 ${srcdir}/${pkgname}/examples/freq.dirs ${pkgdir}/etc/freq.dirs.sample
|
||||
/usr/bin/install -c ${srcdir}/${pkgname}/contrib/outman ${pkgdir}/usr/local/bin/outman
|
||||
echo "Please, edit /usr/local/bin/outman"
|
||||
cp ${srcdir}/${pkgname}/docs/* ${pkgdir}/usr/share/doc/bforce/
|
||||
}
|
||||
|
||||
sha256sums=('SKIP')
|
@ -1,64 +0,0 @@
|
||||
pkgname=bforce
|
||||
pkgver=r235.a1c93b8
|
||||
pkgrel=1
|
||||
pkgdesc="binkleyforce FTN mailer"
|
||||
arch=('i686' 'x86_64' 'aarch64')
|
||||
url="https://prj.zxalexis.ru/gitea/zx/bforce/"
|
||||
license=('GPL2')
|
||||
source=(
|
||||
"${pkgname}::git+https://prj.zxalexis.ru/gitea/zx/bforce.git"
|
||||
)
|
||||
makedepends=('git' 'gcc' 'make' 'glibc')
|
||||
provides=('bforce')
|
||||
|
||||
build() {
|
||||
cd "${srcdir}/${pkgname}/source"
|
||||
./configure --prefix=/ --disable-syslog --with-owner=fido --with-group=uucp
|
||||
make
|
||||
}
|
||||
|
||||
prepare() {
|
||||
cd "${pkgname}"
|
||||
git checkout "${GITHUB_SHA}"
|
||||
printf "$( pwd )\n"
|
||||
}
|
||||
|
||||
pkgver() {
|
||||
cd "$pkgname"
|
||||
if [ "${GITHUB_REF_TYPE}" = "tags" ]; then
|
||||
printf "v%s" "${GITHUB_REF_NAME}"
|
||||
else
|
||||
printf "r%s.%s.%s" "$(git rev-list --count ${GITHUB_SHA})" "$(git rev-parse --short ${GITHUB_SHA})" "${GITHUB_REF_NAME}"
|
||||
fi
|
||||
}
|
||||
|
||||
package() {
|
||||
cd ${pkgdir}
|
||||
mkdir -p ${pkgdir}/etc
|
||||
mkdir -p ${pkgdir}/usr/bin
|
||||
mkdir -p ${pkgdir}/usr/local/bin
|
||||
mkdir -p ${pkgdir}/usr/share/doc/bforce
|
||||
mkdir -p ${pkgdir}/usr/share/man/man1
|
||||
mkdir -p ${pkgdir}/var/log/bforce
|
||||
mkdir -p ${pkgdir}/var/spool/bforce
|
||||
mkdir -p ${pkgdir}/var/spool/bforce/bt/in
|
||||
mkdir -p ${pkgdir}/var/spool/bforce/bt/pin
|
||||
mkdir -p ${pkgdir}/var/spool/bforce/bt/out
|
||||
mkdir -p ${pkgdir}/var/spool/bforce/ndl
|
||||
mkdir -p ${pkgdir}/var/spool/bforce/bforce
|
||||
/usr/bin/install -c ${srcdir}/${pkgname}/source/bin/bforce ${pkgdir}/usr/bin/bforce
|
||||
/usr/bin/install -c ${srcdir}/${pkgname}/source/bin/bfindex ${pkgdir}/usr/bin/bfindex
|
||||
/usr/bin/install -c ${srcdir}/${pkgname}/source/bin/bfstat ${pkgdir}/usr/bin/bfstat
|
||||
/usr/bin/install -c ${srcdir}/${pkgname}/source/bin/nlookup ${pkgdir}/usr/bin/nlookup
|
||||
/usr/bin/install -c ${srcdir}/${pkgname}/man/*.1 ${pkgdir}/usr/share/man/man1/
|
||||
/usr/bin/install -c -m 644 ${srcdir}/${pkgname}/examples/bforce.conf ${pkgdir}/etc/bforce.conf.sample
|
||||
/usr/bin/install -c -m 644 ${srcdir}/${pkgname}/examples/bforce.subst ${pkgdir}/etc/bforce.subst.sample
|
||||
/usr/bin/install -c -m 644 ${srcdir}/${pkgname}/examples/bforce.passwd ${pkgdir}/etc/bforce.passwd.sample
|
||||
/usr/bin/install -c -m 644 ${srcdir}/${pkgname}/examples/freq.aliases ${pkgdir}/etc/freq.aliases.sample
|
||||
/usr/bin/install -c -m 644 ${srcdir}/${pkgname}/examples/freq.dirs ${pkgdir}/etc/freq.dirs.sample
|
||||
/usr/bin/install -c ${srcdir}/${pkgname}/contrib/outman ${pkgdir}/usr/local/bin/outman
|
||||
echo "Please, edit /usr/local/bin/outman"
|
||||
cp ${srcdir}/${pkgname}/docs/* ${pkgdir}/usr/share/doc/bforce/
|
||||
}
|
||||
|
||||
sha256sums=('SKIP')
|
@ -1,7 +0,0 @@
|
||||
post_install() {
|
||||
chmod
|
||||
}
|
||||
|
||||
post_upgrade() {
|
||||
post_install
|
||||
}
|
@ -10,10 +10,10 @@
|
||||
# These files are considered legacy and are unnecessary on legacy-free
|
||||
# systems.
|
||||
|
||||
z /run/lock 0777 root lock -
|
||||
z /var/lock 0777 root lock - ../run/lock
|
||||
d /run/lock 0777 root lock -
|
||||
L /var/lock - - - - ../run/lock
|
||||
|
||||
# /run/lock/subsys is used for serializing SysV service execution, and
|
||||
# hence without use on SysV-less systems.
|
||||
|
||||
z /run/lock/subsys 0775 root lock -
|
||||
d /run/lock/subsys 0775 root lock -
|
0
man/bfindex.1 → debian/bfindex.1
vendored
0
man/bfindex.1 → debian/bfindex.1
vendored
0
man/bforce.1 → debian/bforce.1
vendored
0
man/bforce.1 → debian/bforce.1
vendored
0
man/bfstat.1 → debian/bfstat.1
vendored
0
man/bfstat.1 → debian/bfstat.1
vendored
12
debian/changelog
vendored
12
debian/changelog
vendored
@ -1,15 +1,3 @@
|
||||
bforce (0.26.1) UNRELEASED; urgency=medium
|
||||
|
||||
* Fixed for ubuntu/debian builds and CI actions
|
||||
|
||||
-- Alexey Khromov <zx@zxalexis.ru> Sun, 13 Apr 2025 20:06:54 +0300
|
||||
|
||||
bforce (0.26) UNRELEASED; urgency=medium
|
||||
|
||||
* Fixed for IPv6 and build on amd64 and aarch64 platforms
|
||||
|
||||
-- Alexey Khromov <zx@zxalexis.ru> Sun, 13 Apr 2025 12:53:54 +0000
|
||||
|
||||
bforce (0.22.9-3) unstable; urgency=low
|
||||
|
||||
* fixes in init.d script
|
||||
|
2
debian/compat
vendored
2
debian/compat
vendored
@ -1 +1 @@
|
||||
3
|
||||
4
|
||||
|
6
debian/conffiles
vendored
Normal file
6
debian/conffiles
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
/etc/bforce/bforce.conf
|
||||
/etc/bforce/bforce.subst
|
||||
/etc/bforce/bforce.passwd
|
||||
/etc/bforce/freq.dirs
|
||||
/etc/bforce/freq.aliases
|
||||
|
4
debian/control
vendored
4
debian/control
vendored
@ -1,13 +1,13 @@
|
||||
Source: bforce
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: Alexey Khromov <zx@zxalexis.ru>
|
||||
Maintainer: Evgeniy Kozhuhovskiy <e.kozhuhovskiy@gmail.com>
|
||||
Build-Depends: debhelper (>> 3.0.0), bison (>> 1.0.0)
|
||||
Standards-Version: 3.5.10
|
||||
|
||||
Package: bforce
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, tclsh:any
|
||||
Depends: ${shlibs:Depends}
|
||||
Description: Binkey Force FTN mailer
|
||||
FTN mailer is a program that transmit files (netmail and echomail)
|
||||
between your FTN node and other.
|
||||
|
1
debian/dirs
vendored
1
debian/dirs
vendored
@ -1,6 +1,5 @@
|
||||
usr/bin
|
||||
usr/lib/bforce
|
||||
usr/lib/systemd/system
|
||||
etc/bforce
|
||||
etc/default
|
||||
etc/default/bforce
|
||||
|
10
debian/docs
vendored
10
debian/docs
vendored
@ -1,5 +1,9 @@
|
||||
README.md
|
||||
README
|
||||
README.kst
|
||||
README.ugenk
|
||||
TODO
|
||||
CHANGES
|
||||
CHANGES.kst
|
||||
CHANGES.ugenk
|
||||
INSTALL
|
||||
INSTALL.ru
|
||||
SYSLOG
|
||||
INSTALL.ru
|
0
man/nlookup.1 → debian/nlookup.1
vendored
0
man/nlookup.1 → debian/nlookup.1
vendored
0
man/outman.1 → debian/outman.1
vendored
0
man/outman.1 → debian/outman.1
vendored
18
debian/postinst
vendored
18
debian/postinst
vendored
@ -26,15 +26,15 @@ set -e
|
||||
case "$1" in
|
||||
configure)
|
||||
|
||||
# if ! grep -s news /etc/group >/dev/null 2>&1; then
|
||||
# addgroup --system news
|
||||
# fi
|
||||
#
|
||||
# if ! id uucp >/dev/null 2>&1; then
|
||||
# adduser --system --disabled-password uucp
|
||||
# chsh -s /bin/sh uucp
|
||||
# adduser uucp dialout
|
||||
# fi
|
||||
if ! grep -s news /etc/group >/dev/null 2>&1; then
|
||||
addgroup --system news
|
||||
fi
|
||||
|
||||
if ! id uucp >/dev/null 2>&1; then
|
||||
adduser --system --disabled-password uucp
|
||||
chsh -s /bin/sh uucp
|
||||
adduser uucp dialout
|
||||
fi
|
||||
;;
|
||||
|
||||
abort-upgrade|abort-remove|abort-deconfigure)
|
||||
|
13
debian/rules
vendored
13
debian/rules
vendored
@ -6,7 +6,8 @@
|
||||
#export DH_VERBOSE=1
|
||||
|
||||
# This is the debhelper compatibility version to use.
|
||||
export DH_COMPAT=11
|
||||
export DH_COMPAT=3
|
||||
|
||||
|
||||
PACKAGE = bforce
|
||||
|
||||
@ -48,7 +49,7 @@ clean:
|
||||
rm -f build-stamp configure-stamp
|
||||
|
||||
# Add here commands to clean up after the build process.
|
||||
# -$(MAKE) -C source clean
|
||||
-$(MAKE) -C source clean
|
||||
dh_clean
|
||||
rm -f source/config.cache source/include/config.h source/config.log\
|
||||
source/config.status source/Makefile
|
||||
@ -56,7 +57,7 @@ clean:
|
||||
install: build
|
||||
dh_testdir
|
||||
dh_testroot
|
||||
dh_prep
|
||||
dh_clean -k
|
||||
dh_installdirs
|
||||
|
||||
# Add here commands to install the package into debian/bforce.
|
||||
@ -73,7 +74,7 @@ install: build
|
||||
/usr/bin/install -c -m 600 -o $(USER) -g $(GROUP) examples/bforce.passwd $(CURDIR)/debian/bforce/etc/bforce/bforce.passwd
|
||||
/usr/bin/install -c -m 644 -o $(USER) -g $(GROUP) examples/freq.aliases $(CURDIR)/debian/bforce/etc/bforce/freq.aliases
|
||||
/usr/bin/install -c -m 644 -o $(USER) -g $(GROUP) examples/freq.dirs $(CURDIR)/debian/bforce/etc/bforce/freq.dirs
|
||||
/usr/bin/install -c -m 660 contrib/systemd/bforce.service $(CURDIR)/debian/bforce/usr/lib/systemd/system/bforce.service
|
||||
|
||||
/usr/bin/install $(CURDIR)/debian/bfha.def $(CURDIR)/debian/bforce/etc/default/bforce/bfha
|
||||
/usr/bin/install $(CURDIR)/contrib/bfha/bfha-debian.pl $(CURDIR)/debian/bforce/usr/lib/bforce/bfha.pl
|
||||
|
||||
@ -91,8 +92,8 @@ binary-arch: build install
|
||||
# dh_installlogrotate
|
||||
dh_installinit
|
||||
# dh_installcron
|
||||
dh_installman $(CURDIR)/man/bfindex.1 $(CURDIR)/man/bforce.1 \
|
||||
$(CURDIR)/man/bfstat.1 $(CURDIR)/man/nlookup.1 $(CURDIR)/man/outman.1
|
||||
dh_installman $(CURDIR)/debian/bfindex.1 $(CURDIR)/debian/bforce.1 \
|
||||
$(CURDIR)/debian/bfstat.1 $(CURDIR)/debian/nlookup.1
|
||||
# dh_installinfo
|
||||
dh_installchangelogs CHANGES
|
||||
dh_link
|
||||
|
@ -1,66 +1,54 @@
|
||||
Summary: Bforce, Fidonet mailer
|
||||
Name: bforce
|
||||
Version: 0.26.1
|
||||
Release: %{_vendor}.1
|
||||
Version: 0.22.8
|
||||
Release: ugenk4
|
||||
Copyright: GPL
|
||||
Group: Fidonet/mailer
|
||||
Source0: bforce-%{version}.tar.gz
|
||||
Source0: bforce-%{version}.%{release}.tar.gz
|
||||
BuildRoot: %{_tmppath}/%{name}-root
|
||||
|
||||
%description
|
||||
BFORCE is a FTN mailer. Supports PSTN and binkp sessions.
|
||||
|
||||
%prep
|
||||
# uncomment this to build from tarball
|
||||
# %setup -q -n %{name}
|
||||
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'
|
||||
#%setup -q -n %{name}-%{version}.%{release}
|
||||
cd source
|
||||
./configure --prefix=/usr --disable-log-passwd --sysconfdir=/etc/bforce --bindir=/usr/bin --with-owner=uucp --with-group=news
|
||||
|
||||
%build
|
||||
echo "------------ BUILDING RPM IN $(pwd) ------------"
|
||||
cd %{_builddir}/%{name}/source
|
||||
cd source
|
||||
make
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT
|
||||
mkdir -p $RPM_BUILD_ROOT/etc/bforce
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/bin
|
||||
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/spool/fido/bt/pin
|
||||
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/bforce
|
||||
mkdir -p $RPM_BUILD_ROOT/$RPM_DOC_DIR/$RPM_PACKAGE_NAME-$RPM_PACKAGE_VERSION
|
||||
|
||||
|
||||
install %{_builddir}/%{name}/source/bin/bforce $RPM_BUILD_ROOT/usr/bin/bforce
|
||||
install %{_builddir}/%{name}/source/bin/bfindex $RPM_BUILD_ROOT/usr/bin/bfindex
|
||||
install %{_builddir}/%{name}/source/bin/bfstat $RPM_BUILD_ROOT/usr/bin/bfstat
|
||||
install %{_builddir}/%{name}/source/bin/nlookup $RPM_BUILD_ROOT/usr/bin/nlookup
|
||||
install %{_builddir}/%{name}/examples/bforce.conf $RPM_BUILD_ROOT/etc/bforce/bforce.conf.sample
|
||||
install %{_builddir}/%{name}/examples/bforce.passwd $RPM_BUILD_ROOT/etc/bforce/bforce.passwd.sample
|
||||
install %{_builddir}/%{name}/examples/bforce.subst $RPM_BUILD_ROOT/etc/bforce/bforce.subst.sample
|
||||
install %{_builddir}/%{name}/examples/freq.aliases $RPM_BUILD_ROOT/etc/bforce/freq.aliases.sample
|
||||
install %{_builddir}/%{name}/examples/freq.dirs $RPM_BUILD_ROOT/etc/bforce/freq.dirs.sample
|
||||
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/
|
||||
install -o uucp -g news source/bin/bforce $RPM_BUILD_ROOT/usr/bin/bforce
|
||||
install -o uucp -g news source/bin/bfindex $RPM_BUILD_ROOT/usr/bin/bfindex
|
||||
install -o uucp -g news source/bin/bfstat $RPM_BUILD_ROOT/usr/bin/bfstat
|
||||
install -o uucp -g news 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 -o uucp -g news 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 -o uucp -g news 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 -m755 -o uucp -g news contrib/outman $RPM_BUILD_ROOT/usr/bin/outman
|
||||
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%files
|
||||
%{_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
|
||||
%doc README README.kst CHANGES CHANGES.kst CHANGES.ugenk COPYING INSTALL.ru README.ugenk SYSLOG TODO
|
||||
%defattr(-, root, root)
|
||||
|
||||
%attr(550,uucp,news) /usr/bin/bforce
|
||||
@ -68,7 +56,7 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%attr(550,uucp,news) /usr/bin/bfstat
|
||||
%attr(550,uucp,news) /usr/bin/nlookup
|
||||
%attr(550,uucp,news) /usr/bin/outman
|
||||
%attr(644,root,root) /usr/share/doc/bforce-%{version}/*
|
||||
%attr(644,root,root) /usr/share/doc/bforce-0.22.8/*
|
||||
%dir %attr(770,uucp,news) /var/log/bforce
|
||||
%dir %attr(770,uucp,news) /var/spool/fido/ndl
|
||||
%attr(775,uucp,news) /var/spool/fido/bt
|
||||
|
@ -1 +1 @@
|
||||
0.26.1
|
||||
0.25.3
|
||||
|
@ -13,14 +13,13 @@ CC = @CC@
|
||||
INCLUDES = -I./include
|
||||
CFLAGS = @CFLAGS@ -fno-builtin
|
||||
LIBS = @LIBS@ @CLOCK_LIB@
|
||||
YACC = @YACC@ -l
|
||||
YACC = @YACC@
|
||||
INSTALL = @INSTALL@
|
||||
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
||||
INSTALL_DATA = @INSTALL_DATA@
|
||||
SRCDIR = @srcdir@
|
||||
SRCDIRCONF = $(SRCDIR)/../examples
|
||||
CONTRIBDIR = $(SRCDIR)/../contrib
|
||||
CONTRIBMAN = $(SRCDIR)/../man
|
||||
|
||||
OWNER = @OWNER@
|
||||
GROUP = @GROUP@
|
||||
@ -28,7 +27,6 @@ CONFDIR = @sysconfdir@
|
||||
BINDIR = @bindir@
|
||||
LOGDIR = @LOGDIR@
|
||||
SPOOLDIR = @SPOOLDIR@
|
||||
MANDIR = @MANDIR@
|
||||
|
||||
DAEMON_LOGFILE = $(LOGDIR)/bf-daemon
|
||||
BFORCE_LOGFILE = $(LOGDIR)/bf-log
|
||||
@ -177,7 +175,6 @@ installdirs:
|
||||
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)/bforce ]; then mkdir -p $(SPOOLDIR); fi
|
||||
if [ ! -d $(MANDIR)/man1 ]; then mkdir -p $(MANDIR)/man1; fi
|
||||
chown $(OWNER):$(GROUP) $(CONFDIR)
|
||||
chown $(OWNER):$(GROUP) $(LOGDIR)
|
||||
chown $(OWNER):$(GROUP) $(SPOOLDIR)/bt/in
|
||||
@ -198,17 +195,10 @@ install-config:
|
||||
$(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.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_PROGRAM) -o $(OWNER) -g $(GROUP) $(CONTRIBDIR)/outman $(BINDIR)/outman
|
||||
@echo "Please, edit $(BINDIR)/outman"
|
||||
|
||||
install: install-bin install-config install-man
|
||||
install: install-bin install-config
|
||||
|
||||
|
@ -19,15 +19,11 @@
|
||||
s_cval_entry *conf_first(bforce_config_keyword keyword)
|
||||
{
|
||||
s_cval_entry *ptrl;
|
||||
|
||||
DEB((D_CONFIG, "conf_first entry nr %d",(int16_t)keyword));
|
||||
|
||||
for( ptrl = bforce_config[keyword].data; ptrl; ptrl = ptrl->next )
|
||||
if( !ptrl->expr.expr || eventexpr(&ptrl->expr) ) {
|
||||
DEB((D_CONFIG, "conf_first ptrl found"));
|
||||
if( !ptrl->expr.expr || eventexpr(&ptrl->expr) )
|
||||
return ptrl;
|
||||
}
|
||||
DEB((D_CONFIG, "conf_first ptrl not found"));
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -36,11 +32,9 @@ s_cval_entry *conf_next(s_cval_entry *ptrl)
|
||||
ASSERT(ptrl);
|
||||
|
||||
for( ptrl = ptrl->next; ptrl; ptrl = ptrl->next )
|
||||
if( !ptrl->expr.expr || eventexpr(&ptrl->expr) ) {
|
||||
DEB((D_CONFIG, "conf_next ptrl found"));
|
||||
if( !ptrl->expr.expr || eventexpr(&ptrl->expr) )
|
||||
return ptrl;
|
||||
}
|
||||
DEB((D_CONFIG, "conf_next ptrl not found"));
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@ -97,7 +91,7 @@ long conf_number(bforce_config_keyword keyword)
|
||||
s_override *conf_override(bforce_config_keyword keyword, s_faddr addr)
|
||||
{
|
||||
s_cval_entry *ptrl;
|
||||
DEB((D_CONFIG, "conf_override entry"));
|
||||
|
||||
for( ptrl = conf_first(keyword); ptrl; ptrl = conf_next(ptrl) )
|
||||
if( !ftn_addrcomp(ptrl->d.override.addr, addr) )
|
||||
return &ptrl->d.override;
|
||||
|
@ -810,7 +810,6 @@ int daemon_pidfile(int cmd)
|
||||
res = fscanf(pf, "%d", &hispid);
|
||||
if (res != 1) {
|
||||
log("daemon pidfile: not readable");
|
||||
fclose(pf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -855,7 +854,6 @@ int daemon_pidfile(int cmd)
|
||||
res = fscanf(pf, "%d", &hispid);
|
||||
if (res != 1) {
|
||||
log("daemon pidfile: not readable");
|
||||
fclose(pf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -885,7 +883,6 @@ int daemon_pidfile(int cmd)
|
||||
res = fscanf(pf, "%d", &hispid);
|
||||
if (res != 1) {
|
||||
log("daemon pidfile: not readable");
|
||||
fclose(pf);
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ int daemon_line_add(const char *name, int type)
|
||||
int i;
|
||||
|
||||
for( i = 0; i < lines_num; i++ )
|
||||
if( (lines_tab) && !strcmp(lines_tab[i].name, name) )
|
||||
if( !strcmp(lines_tab[i].name, name) )
|
||||
return i;
|
||||
|
||||
log("register new line \"%s\"", name);
|
||||
@ -90,12 +90,13 @@ bool daemon_line_isready(const char *name)
|
||||
void daemon_lines_deinit(void)
|
||||
{
|
||||
int i;
|
||||
if( lines_tab )
|
||||
{
|
||||
for( i = 0; i < lines_num; i++ )
|
||||
if( lines_tab[i].name )
|
||||
free(lines_tab[i].name);
|
||||
|
||||
for( i = 0; i < lines_num; i++ )
|
||||
if( lines_tab[i].name )
|
||||
free(lines_tab[i].name);
|
||||
|
||||
if( lines_tab )
|
||||
{
|
||||
free(lines_tab);
|
||||
lines_tab = NULL;
|
||||
}
|
||||
|
@ -67,7 +67,7 @@
|
||||
|
||||
|
||||
/* First part of user prologue. */
|
||||
|
||||
#line 49 "expression.y"
|
||||
|
||||
#include "includes.h"
|
||||
#include "confread.h"
|
||||
@ -110,7 +110,7 @@ static int yyparse(void);
|
||||
static int yyerror(const char *s);
|
||||
|
||||
|
||||
|
||||
#line 114 "expression.tab.c"
|
||||
|
||||
# ifndef YY_CAST
|
||||
# ifdef __cplusplus
|
||||
@ -950,7 +950,7 @@ int yydebug;
|
||||
`-----------------------------------------------*/
|
||||
|
||||
static void
|
||||
yydestruct (char *yymsg,
|
||||
yydestruct (const char *yymsg,
|
||||
yysymbol_kind_t yykind, YYSTYPE *yyvaluep)
|
||||
{
|
||||
YY_USE (yyvaluep);
|
||||
@ -1059,7 +1059,6 @@ yysetstate:
|
||||
/* Give user a chance to reallocate the stack. Use copies of
|
||||
these so that the &'s don't force the real ones into
|
||||
memory. */
|
||||
YYSTYPE *yyls1 = yyls;
|
||||
yy_state_t *yyss1 = yyss;
|
||||
YYSTYPE *yyvs1 = yyvs;
|
||||
|
||||
@ -1070,9 +1069,7 @@ yysetstate:
|
||||
yyoverflow (YY_("memory exhausted"),
|
||||
&yyss1, yysize * YYSIZEOF (*yyssp),
|
||||
&yyvs1, yysize * YYSIZEOF (*yyvsp),
|
||||
&yyls1, yysize * YYSIZEOF (*yylsp),
|
||||
&yystacksize);
|
||||
yyls = yyls1;
|
||||
yyss = yyss1;
|
||||
yyvs = yyvs1;
|
||||
}
|
||||
@ -1225,25 +1222,25 @@ yyreduce:
|
||||
switch (yyn)
|
||||
{
|
||||
case 2: /* fullline: expression */
|
||||
|
||||
#line 94 "expression.y"
|
||||
{
|
||||
DEB((D_EVENT, "[yacc] expression return %d", yyvsp[0]));
|
||||
expr_result = yyvsp[0];
|
||||
}
|
||||
|
||||
#line 1231 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 3: /* expression: elemexp */
|
||||
|
||||
#line 100 "expression.y"
|
||||
{
|
||||
DEB((D_EVENT, "[yacc] elemexp return %d", yyvsp[0]));
|
||||
yyval = yyvsp[0];
|
||||
}
|
||||
|
||||
#line 1240 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 4: /* expression: NOT expression */
|
||||
|
||||
#line 105 "expression.y"
|
||||
{
|
||||
DEB((D_EVENT, "[yacc] not exprression %d", yyvsp[0]));
|
||||
if( (yyvsp[0]) < 0 )
|
||||
@ -1251,190 +1248,190 @@ yyreduce:
|
||||
else
|
||||
yyval = !(yyvsp[0]);
|
||||
}
|
||||
|
||||
#line 1252 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 5: /* expression: expression LOGOP expression */
|
||||
|
||||
#line 113 "expression.y"
|
||||
{
|
||||
yyval = expr_check_logic(yyvsp[-2], yyvsp[-1], yyvsp[0]);
|
||||
}
|
||||
|
||||
#line 1260 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 6: /* expression: OPENB expression CLOSEB */
|
||||
|
||||
#line 117 "expression.y"
|
||||
{
|
||||
DEB((D_EVENT, "eventexp: [yacc] backeted.expr %d", yyvsp[-1]));
|
||||
yyval = yyvsp[-1];
|
||||
}
|
||||
|
||||
#line 1269 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 7: /* elemexp: INCOMING */
|
||||
|
||||
#line 123 "expression.y"
|
||||
{
|
||||
yyval = expr_check_incoming();
|
||||
}
|
||||
|
||||
#line 1277 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 8: /* elemexp: OUTGOING */
|
||||
|
||||
#line 127 "expression.y"
|
||||
{
|
||||
yyval = expr_check_outgoing();
|
||||
}
|
||||
|
||||
#line 1285 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 9: /* elemexp: LISTED */
|
||||
|
||||
#line 131 "expression.y"
|
||||
{
|
||||
yyval = expr_check_listed();
|
||||
}
|
||||
|
||||
#line 1293 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 10: /* elemexp: PROTECTED */
|
||||
|
||||
#line 135 "expression.y"
|
||||
{
|
||||
yyval = expr_check_protected();
|
||||
}
|
||||
|
||||
#line 1301 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 11: /* elemexp: FLAG flagstring */
|
||||
|
||||
#line 139 "expression.y"
|
||||
{
|
||||
yyval = yyvsp[0];
|
||||
}
|
||||
|
||||
#line 1309 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 12: /* elemexp: CONNSPEED AROP NUMBER */
|
||||
|
||||
#line 143 "expression.y"
|
||||
{
|
||||
if( state.valid && state.connspeed > 0 )
|
||||
yyval = expr_check_arop(state.connspeed, yyvsp[-1], yyvsp[0]);
|
||||
else
|
||||
yyval = -1;
|
||||
}
|
||||
|
||||
#line 1320 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 13: /* elemexp: SPEED AROP NUMBER */
|
||||
|
||||
#line 150 "expression.y"
|
||||
{
|
||||
if( state.valid && state.node.speed > 0 )
|
||||
yyval = expr_check_arop(state.node.speed, yyvsp[-1], yyvsp[0]);
|
||||
else
|
||||
yyval = -1;
|
||||
}
|
||||
|
||||
#line 1331 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 14: /* elemexp: TZ AROP NUMBER */
|
||||
|
||||
#line 157 "expression.y"
|
||||
{
|
||||
yyval = expr_check_arop(time_gmtoffset(), yyvsp[-1], yyvsp[0]);
|
||||
}
|
||||
|
||||
#line 1339 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 15: /* elemexp: PHONE TEXT */
|
||||
|
||||
#line 161 "expression.y"
|
||||
{
|
||||
yyval = expr_check_phone(expr_p_text);
|
||||
}
|
||||
|
||||
#line 1347 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 16: /* elemexp: TIME timestring */
|
||||
|
||||
#line 165 "expression.y"
|
||||
{
|
||||
yyval = yyvsp[0];
|
||||
}
|
||||
|
||||
#line 1355 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 17: /* elemexp: EXEC TEXT */
|
||||
|
||||
#line 169 "expression.y"
|
||||
{
|
||||
yyval = expr_check_exec(expr_p_text);
|
||||
}
|
||||
|
||||
#line 1363 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 18: /* elemexp: EXIST TEXT */
|
||||
|
||||
#line 173 "expression.y"
|
||||
{
|
||||
yyval = expr_check_exist(expr_p_text);
|
||||
}
|
||||
|
||||
#line 1371 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 19: /* elemexp: PORT TEXT */
|
||||
|
||||
#line 177 "expression.y"
|
||||
{
|
||||
yyval = expr_check_port(expr_p_text);
|
||||
}
|
||||
|
||||
#line 1379 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 20: /* elemexp: MAILER TEXT */
|
||||
|
||||
#line 181 "expression.y"
|
||||
{
|
||||
yyval = expr_check_mailer(expr_p_text);
|
||||
}
|
||||
|
||||
#line 1387 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 21: /* elemexp: TEXT */
|
||||
|
||||
#line 185 "expression.y"
|
||||
{
|
||||
yyval = expr_check_addr(expr_p_text);
|
||||
if( yyval == -2 )
|
||||
YYABORT;
|
||||
}
|
||||
|
||||
#line 1397 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 22: /* flagstring: TEXT */
|
||||
|
||||
#line 192 "expression.y"
|
||||
{
|
||||
yyval = expr_check_flag(expr_p_text);
|
||||
}
|
||||
|
||||
#line 1405 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 23: /* flagstring: TEXT COMMA flagstring */
|
||||
|
||||
#line 196 "expression.y"
|
||||
{
|
||||
yyval = expr_check_logic(yyvsp[-2], OR, yyvsp[0]);
|
||||
}
|
||||
|
||||
#line 1413 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 24: /* timestring: TEXT */
|
||||
|
||||
#line 201 "expression.y"
|
||||
{
|
||||
yyval = expr_check_time(expr_p_text);
|
||||
if( yyval == -2 )
|
||||
YYABORT;
|
||||
}
|
||||
|
||||
#line 1423 "expression.tab.c"
|
||||
break;
|
||||
|
||||
case 25: /* timestring: TEXT COMMA timestring */
|
||||
|
||||
#line 207 "expression.y"
|
||||
{
|
||||
yyval = expr_check_logic(yyvsp[-2], OR, yyvsp[0]);
|
||||
}
|
||||
|
||||
#line 1431 "expression.tab.c"
|
||||
break;
|
||||
|
||||
|
||||
|
||||
#line 1435 "expression.tab.c"
|
||||
|
||||
default: break;
|
||||
}
|
||||
@ -1627,7 +1624,7 @@ yyreturnlab:
|
||||
return yyresult;
|
||||
}
|
||||
|
||||
|
||||
#line 211 "expression.y"
|
||||
|
||||
|
||||
#include "expression_lex.c"
|
||||
|
@ -360,8 +360,7 @@ static int expr_check_mailer(const char *str)
|
||||
|
||||
static int expr_check_addr(const char *str)
|
||||
{
|
||||
s_faddr addr = { 0, 0, 0, 0, 0, '\0' };
|
||||
|
||||
s_faddr addr;
|
||||
#ifdef DEBUG
|
||||
char abuf1[BF_MAXADDRSTR+1];
|
||||
char abuf2[BF_MAXADDRSTR+1];
|
||||
@ -369,7 +368,6 @@ static int expr_check_addr(const char *str)
|
||||
DEB((D_EVENT, "[yacc] addr: \"%s\" (session with \"%s\")",
|
||||
ftn_addrstr(abuf1, addr),
|
||||
ftn_addrstr(abuf2, state.node.addr)));
|
||||
|
||||
#endif
|
||||
|
||||
if( !state.valid )
|
||||
|
@ -115,7 +115,7 @@ static void req_readfrlist(char *fname, s_frlist **frlist, int magic)
|
||||
(*ptrl) = (s_frlist*)xmalloc(sizeof(s_frlist));
|
||||
memset(*ptrl, '\0', sizeof(s_frlist));
|
||||
|
||||
if( *path ) (*ptrl)->path = xstrcpy(path);
|
||||
if( path && *path ) (*ptrl)->path = xstrcpy(path);
|
||||
if( !magic && *(path + strlen(path) - 1) != DIRSEPCHR )
|
||||
{
|
||||
/* add trailing DIRSEP ('/' or ..) to paths */
|
||||
|
@ -19,7 +19,7 @@
|
||||
|
||||
#define DEFAULT_PORT 60179 /* Birthday .. mother fucker :) */
|
||||
|
||||
struct addrinfo *paddrinfo = NULL;
|
||||
struct addrinfo *ai = NULL;
|
||||
|
||||
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_protocol = IPPROTO_TCP;
|
||||
|
||||
nameres = getaddrinfo ( host, port, &aihints, &paddrinfo );
|
||||
nameres = getaddrinfo ( host, port, &aihints, &ai );
|
||||
if ( nameres != 0 )
|
||||
{
|
||||
rc = 1;
|
||||
@ -208,10 +208,10 @@ int tcpip_connect(const char *hostname, e_tcpmode tcpmode)
|
||||
|
||||
if( host ) { free(host); host = NULL; }
|
||||
DEB((D_INFO, "tcpip_connect: resolver got result!"));
|
||||
aisave = paddrinfo;
|
||||
aisave = ai;
|
||||
|
||||
if (rc == 0 )
|
||||
rc = tcpip_connect2(paddrinfo);
|
||||
rc = tcpip_connect2(ai);
|
||||
|
||||
freeaddrinfo( aisave );
|
||||
|
||||
|
@ -172,7 +172,7 @@ int log_reopen(const char *logname, const char *ext, const char *tty)
|
||||
}
|
||||
|
||||
|
||||
void log(const char *s, ...)
|
||||
int log(const char *s, ...)
|
||||
|
||||
{
|
||||
char timestr[40];
|
||||
@ -212,10 +212,10 @@ void log(const char *s, ...)
|
||||
|
||||
va_end(args);
|
||||
|
||||
//return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void logerr(const char *s, ...)
|
||||
int logerr(const char *s, ...)
|
||||
{
|
||||
char timestr[40];
|
||||
va_list args;
|
||||
@ -281,7 +281,7 @@ void logerr(const char *s, ...)
|
||||
|
||||
va_end(args);
|
||||
|
||||
//return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* USE_SYSLOG */
|
||||
@ -308,7 +308,7 @@ int log_open(const char *logname, const char *ext, const char *tty)
|
||||
p = xstrcat(p, BF_VERSION);
|
||||
int fac = conf_number(cf_syslog_facility);
|
||||
if( tty && *tty )
|
||||
strncpy(p, tty, strlen(p));
|
||||
strncpy(p, tty, sizeof(p));
|
||||
openlog(p, LOG_PID, fac);
|
||||
slog_active = TRUE;
|
||||
return 0;
|
||||
@ -330,7 +330,7 @@ int log_close(void)
|
||||
|
||||
}
|
||||
|
||||
void log(const char *s, ...)
|
||||
int log(const char *s, ...)
|
||||
|
||||
{
|
||||
char timestr[40];
|
||||
@ -357,10 +357,10 @@ void log(const char *s, ...)
|
||||
|
||||
va_end(args);
|
||||
|
||||
//return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void logerr(const char *s, ...)
|
||||
int logerr(const char *s, ...)
|
||||
|
||||
{
|
||||
char timestr[40];
|
||||
@ -379,7 +379,7 @@ void logerr(const char *s, ...)
|
||||
|
||||
va_end(args);
|
||||
|
||||
// return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* USE_SYSLOG */
|
||||
@ -530,7 +530,7 @@ int debug_close(void)
|
||||
return rc;
|
||||
}
|
||||
|
||||
void debug(unsigned long what, const char *str, ...)
|
||||
int debug(unsigned long what, const char *str, ...)
|
||||
{
|
||||
char buf[40];
|
||||
va_list args;
|
||||
@ -554,7 +554,7 @@ void debug(unsigned long what, const char *str, ...)
|
||||
}
|
||||
}
|
||||
|
||||
//return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* DEBUG */
|
||||
|
@ -56,24 +56,17 @@ int nodelist_checkflag(const char *nodeflags, const char *flag)
|
||||
const char *searchbase = nodeflags;
|
||||
char *q;
|
||||
|
||||
DEB((D_NODELIST, "nodelist: checking flag \"%s\" in flags \"%s\"", flag, nodeflags));
|
||||
if ( nodeflags ) {
|
||||
while( p = strcasestr(searchbase, flag) ) // p - found flag
|
||||
while( p = strstr(searchbase, flag) )
|
||||
{
|
||||
if( p == searchbase || *(p-1) == ',' )
|
||||
{
|
||||
if( (p == searchbase) || (p != searchbase && *(p-1) == ',') )
|
||||
{
|
||||
if( (q = strchr(p, ',')) == NULL || (q - p) == strlen(flag) ) {
|
||||
DEB((D_NODELIST, "nodelist: found flag %s", flag));
|
||||
return 0;
|
||||
}
|
||||
if( (strchrnul(p, ':') - p) == strlen(flag) ) {
|
||||
DEB((D_NODELIST, "nodelist: found flag %s", flag));
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
searchbase = p + 1; // avoid finding again the same
|
||||
if( (q = strchr(p, ',')) == NULL || (q - p) == strlen(flag) )
|
||||
return 0;
|
||||
if( (strchrnul(p, ':') - p) == strlen(flag) )
|
||||
return 0;
|
||||
}
|
||||
|
||||
searchbase = p + 1; // avoid finding again the same
|
||||
}
|
||||
|
||||
return 1;
|
||||
|
@ -152,7 +152,6 @@ int exec_redirect_descriptor(int desc, const char *fname, int flags)
|
||||
{
|
||||
log("exec error: cannot open \"%s\" <--> %d (got %d)",
|
||||
fname, desc, fd);
|
||||
close(fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -330,8 +329,7 @@ int xsystem(const char *command, const char *p_input, const char *p_output)
|
||||
{
|
||||
pid_t pid;
|
||||
int status;
|
||||
int fd;
|
||||
|
||||
|
||||
ASSERT(command != NULL);
|
||||
|
||||
DEB((D_INFO, "xsystem: command \"%s\", input \"%s\", output \"%s\"",
|
||||
@ -344,33 +342,27 @@ int xsystem(const char *command, const char *p_input, const char *p_output)
|
||||
if( p_input )
|
||||
{
|
||||
close(0);
|
||||
fd = open(p_input, O_RDONLY);
|
||||
if( fd != 0 )
|
||||
if( open(p_input, O_RDONLY) != 0 )
|
||||
{
|
||||
logerr("can't open stdin \"%s\"", p_input);
|
||||
close(fd);
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
if( p_output )
|
||||
{
|
||||
close(1);
|
||||
fd = open(p_output, O_WRONLY|O_APPEND|O_CREAT, 0600);
|
||||
if( fd != 1 )
|
||||
if( open(p_output, O_WRONLY|O_APPEND|O_CREAT, 0600) != 1 )
|
||||
{
|
||||
logerr("can't open stdout \"%s\"", p_output);
|
||||
close(fd);
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
if( p_output )
|
||||
{
|
||||
close(2);
|
||||
fd = open(p_output, O_WRONLY|O_APPEND|O_CREAT, 0600);
|
||||
if( fd != 2 )
|
||||
if( open(p_output, O_WRONLY|O_APPEND|O_CREAT, 0600) != 2 )
|
||||
{
|
||||
logerr("can't open stderr \"%s\"", p_output);
|
||||
close(fd);
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
@ -95,12 +95,12 @@ int binkp_loop(s_binkp_state *bstate) {
|
||||
bstate->emptyloop = 0;
|
||||
bstate->continuesend = false;
|
||||
|
||||
uint16_t read_pos=0;
|
||||
uint16_t read_blklen=0;
|
||||
uint16_t want_read=BINKP_HEADER;
|
||||
unsigned short read_pos=0;
|
||||
unsigned short read_blklen=0;
|
||||
unsigned short want_read=BINKP_HEADER;
|
||||
|
||||
uint16_t write_pos=0;
|
||||
uint16_t have_to_write=0;
|
||||
unsigned short write_pos=0;
|
||||
unsigned short have_to_write=0;
|
||||
|
||||
int n, m;
|
||||
bool no_more_to_send = false;
|
||||
@ -140,7 +140,6 @@ int binkp_loop(s_binkp_state *bstate) {
|
||||
return PRC_ERROR;
|
||||
}
|
||||
writebuf[1] = block_length&0xff;
|
||||
// TODO: FIX unprotected mode
|
||||
if (bstate->mode==bmode_transfer && bstate->remote_data->options&BINKP_OPT_CRYPT)
|
||||
encrypt_buf(writebuf, have_to_write, bstate->remote_data->keys_out);
|
||||
}
|
||||
@ -210,19 +209,15 @@ int binkp_loop(s_binkp_state *bstate) {
|
||||
log("read: remote socket shutdown");
|
||||
return PRC_REMOTEABORTED;
|
||||
}
|
||||
// TODO: FIX unprotected mode
|
||||
if (bstate->mode==bmode_transfer && bstate->remote_data->options & BINKP_OPT_CRYPT) {
|
||||
if (bstate->mode==bmode_transfer && bstate->remote_data->options & BINKP_OPT_CRYPT)
|
||||
decrypt_buf(readbuf+read_pos, n, bstate->remote_data->keys_in);
|
||||
} else {
|
||||
DEB((D_24554,"binkp: not encripted transfer"));
|
||||
};
|
||||
DEB((D_24554, "got %d bytes", n));
|
||||
want_read -= n;
|
||||
read_pos += n;
|
||||
if (read_pos == BINKP_HEADER) {
|
||||
// have read header, want read body
|
||||
DEB((D_24554, "it should be 0: %d", want_read));
|
||||
want_read = ((uint16_t)(readbuf[0]&0x7F)<<8) | (uint16_t)readbuf[1];
|
||||
want_read = ((unsigned short)(readbuf[0]&0x7F)<<8) | readbuf[1];
|
||||
DEB((D_24554, "got block header, block length %u", want_read));
|
||||
} // no else here: if want_read may be zero here for zero length block
|
||||
}
|
||||
@ -233,7 +228,6 @@ int binkp_loop(s_binkp_state *bstate) {
|
||||
block_length = read_pos - BINKP_HEADER;
|
||||
DEB((D_24554, "binkp: complete block is received %d %hu", block_type, block_length));
|
||||
m = binkp_doreceiveblock(bstate, readbuf+BINKP_HEADER, block_type, block_length);
|
||||
DEB((D_24554, "binkp: dorecieveblock result is %d", m));
|
||||
if(m==1) {
|
||||
DEB((D_24554, "block is successfully accepted"));
|
||||
read_pos = 0;
|
||||
@ -425,7 +419,6 @@ case 7:
|
||||
// seems not to remove files from inbound until successful session end is enough to eliminate dupes
|
||||
// if (!nodelist_checkflag (state.node.flags, "ND"))
|
||||
// strcat(buf+1, " ND");
|
||||
// TODO: add GZ BZ2 and maybe EXTCMD
|
||||
*block_length = 1 + strlen(buf+1);
|
||||
DEB((D_24554, "send M_NUL %s", buf+1));
|
||||
return 1;
|
||||
@ -523,48 +516,27 @@ case 3: // send password on outgoing or pw confirmation on incoming
|
||||
|
||||
|
||||
case 4:
|
||||
;
|
||||
char pbuf[32];
|
||||
int pwset = 0;
|
||||
|
||||
if (bstate->mode==bmode_incoming_handshake) {
|
||||
char * p;
|
||||
DEB((D_24554, "incoming handshake is complete"));
|
||||
bstate->complete = true;
|
||||
|
||||
char *p;
|
||||
char pbuf[32];
|
||||
for (i=0;i<state.n_remoteaddr;i++)
|
||||
if( !session_get_password(state.remoteaddrs[i].addr, pbuf, sizeof(pbuf)) ){
|
||||
pwset = 1;
|
||||
init_keys(bstate->remote_data->keys_in, pbuf[0]?pbuf:"-");
|
||||
init_keys(bstate->remote_data->keys_in, pbuf?pbuf:"-");
|
||||
init_keys(bstate->remote_data->keys_out, "-");
|
||||
for (p=pbuf[0]?pbuf:"-"; *p; p++)
|
||||
for (p=pbuf?pbuf:"-"; *p; p++)
|
||||
update_keys(bstate->remote_data->keys_out, (int)*p);
|
||||
}
|
||||
//TODO: FIX incoming options
|
||||
}
|
||||
else {
|
||||
//TODO: Fix outgoing options
|
||||
DEB((D_24554, "outgoing handshake: everything is sent"));
|
||||
for (i=0;i<state.n_remoteaddr;i++)
|
||||
if( !session_get_password(state.remoteaddrs[i].addr, pbuf, sizeof(pbuf)) ){
|
||||
pwset = 1;
|
||||
}
|
||||
|
||||
}
|
||||
// We have password-protected link. Remote options are already set,
|
||||
// Now we determine how to CRYPT or not to CRYPT our file transfer
|
||||
// Our CRYPT flag is always sent, so if the other side have CRYPT
|
||||
// and link is password is set - The CRYPT must be
|
||||
// Literally: if we have no pass -> drop the CRYPT flag
|
||||
if ( !pwset ) {
|
||||
DEB((D_24554, "binkp handshake: password NOT set, dropping CRYPT"));
|
||||
bstate->remote_data->options &= !BINKP_OPT_CRYPT;
|
||||
}
|
||||
return 2;
|
||||
}
|
||||
|
||||
}
|
||||
else if (bstate->mode == bmode_transfer) {
|
||||
else if (bstate->mode == bmode_transfer) {
|
||||
|
||||
switch (bstate->phase) {
|
||||
send_next_file:
|
||||
@ -679,10 +651,7 @@ bstate->extracmd[0] = BPMSG_ERR; strcpy(bstate->extracmd+1, msg); bstate->extrai
|
||||
|
||||
int binkp_doreceiveblock(s_binkp_state *bstate, char *buf, int block_type, unsigned short block_length)
|
||||
{
|
||||
DEB((D_24554, "dorecieveblock_type: %d", block_type));
|
||||
DEB((D_24554, "dorecieveblock_bytes: %x %x %x %x", buf[0], buf[1], buf[2], buf[3]));
|
||||
switch (block_type) {
|
||||
|
||||
case BINKP_BLK_CMD:
|
||||
if (block_length<1) {
|
||||
PROTO_ERROR("Zero length command received")
|
||||
@ -718,17 +687,14 @@ case BPMSG_ADR: /* List of addresses */
|
||||
bstate->extraislast = false;
|
||||
sprintf(bstate->extracmd+1,"OPT MB CRYPT");
|
||||
s_override ovr;
|
||||
DEB((D_24554, "process adr overrides"));
|
||||
for(i = 0; i < state.n_remoteaddr; i++) {
|
||||
ovr.sFlags = "";
|
||||
override_get (&ovr, state.remoteaddrs[i].addr, 0);
|
||||
DEB((D_24554, "got adr overrides"));
|
||||
if (nodelist_checkflag (ovr.sFlags, "NR")==0) {
|
||||
strcat (bstate->extracmd+1, " NR");
|
||||
break;
|
||||
}
|
||||
strcat (bstate->extracmd+1, " NR");
|
||||
break;
|
||||
}
|
||||
}
|
||||
DEB((D_24554, "process adr overrides"));
|
||||
}
|
||||
// further use extracmd only for errors
|
||||
|
||||
@ -955,10 +921,10 @@ got_skip:
|
||||
|
||||
check_that_all_files_are_confirmed:
|
||||
{
|
||||
int j;
|
||||
for (j = 0; j < bstate->pi->n_sentfiles; j++) {
|
||||
int i;
|
||||
for (i = 0; i < bstate->pi->n_sentfiles; i++) {
|
||||
if (bstate->pi->sentfiles[i].status == FSTAT_WAITACK) {
|
||||
DEB((D_24554, "sent file %d waits for acknowlede", j));
|
||||
DEB((D_24554, "sent file %d waits for acknowlede", i));
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@ -1157,7 +1123,7 @@ default:
|
||||
|
||||
void binkp_process_NUL(s_binkp_sysinfo *remote_data, char *buffer)
|
||||
{
|
||||
|
||||
char *p, *q;
|
||||
|
||||
if( strncmp(buffer, "SYS ", 4) == 0 )
|
||||
strnxcpy(remote_data->systname, buffer+4, sizeof(remote_data->systname));
|
||||
@ -1180,16 +1146,14 @@ void binkp_process_NUL(s_binkp_sysinfo *remote_data, char *buffer)
|
||||
}
|
||||
else
|
||||
strnxcpy(remote_data->opt, buffer+4, sizeof(remote_data->opt));
|
||||
DEB((D_24554,"Process OPT"));
|
||||
|
||||
binkp_parse_options(remote_data, buffer+4);
|
||||
}
|
||||
else if( strncmp(buffer, "VER ", 4) == 0 )
|
||||
{
|
||||
char *p;
|
||||
/* <mailer> [<protocol>/<vermaj>.<vermin>] */
|
||||
if( (p = strchr(buffer+4, ' ')) )
|
||||
{
|
||||
char *q;
|
||||
strnxcpy(remote_data->progname, buffer+4,
|
||||
MIN(sizeof(remote_data->progname), p - (buffer+4) + 1));
|
||||
++p;
|
||||
@ -1223,16 +1187,13 @@ void binkp_process_ADR(char *buffer)
|
||||
{
|
||||
s_faddr addr;
|
||||
char *p, *q;
|
||||
DEB((D_24554, "process ADR: %s", buffer));
|
||||
|
||||
for( p = string_token(buffer, &q, NULL, 0); p; p = string_token(NULL, &q, NULL, 0) )
|
||||
{
|
||||
DEB((D_24554, "binkp_process_ADR got token \"%s\" ",p ));
|
||||
if( ftn_addrparse(&addr, p, FALSE) )
|
||||
log("BinkP got unparsable address \"%s\"", string_printable(p));
|
||||
else {
|
||||
else
|
||||
session_addrs_add(&state.remoteaddrs, &state.n_remoteaddr, addr);
|
||||
DEB((D_24554, "process ADR complete"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -304,7 +304,7 @@ void binkp_set_sysinfo(s_binkp_sysinfo *binkp, s_faddr *remote_addr, bool caller
|
||||
void binkp_parse_options(s_binkp_sysinfo *binkp, char *options)
|
||||
{
|
||||
char *p, *n;
|
||||
DEB((D_24554,"binkp: parse_options: %s", options));
|
||||
|
||||
for( p = string_token(options, &n, NULL, 0); p;
|
||||
p = string_token(NULL, &n, NULL, 0) )
|
||||
{
|
||||
|
@ -481,7 +481,7 @@ int call_system_tcpip(int callwith) // only TCPIP values
|
||||
char abuf[BF_MAXADDRSTR+1];
|
||||
int rc = BFERR_NOERROR;
|
||||
char * pbuf;
|
||||
char * target = 0;
|
||||
char * target;
|
||||
int resflg;
|
||||
/*
|
||||
* Set verbal line name to "tcpip" value
|
||||
@ -536,13 +536,12 @@ defalt:
|
||||
if ( ! resflg )
|
||||
{
|
||||
|
||||
char *p = string_casestr(pbuf, target);
|
||||
char *p = strcasestr(pbuf, target);
|
||||
|
||||
if ( p )
|
||||
{
|
||||
target = strchr(p, ',');
|
||||
if ( target ) target[0] = '\0';
|
||||
target = 0;
|
||||
target = strrchr(p, ':');
|
||||
if ( target ) {
|
||||
target++;
|
||||
|
@ -135,16 +135,14 @@ int override_get(s_override *dest, s_faddr addr, int line)
|
||||
{
|
||||
s_override *p;
|
||||
int curline = 0;
|
||||
|
||||
p = conf_override(cf_override, addr);
|
||||
|
||||
curline = 0;
|
||||
if (line > 0)
|
||||
while( p && curline < line )
|
||||
{
|
||||
while( p && curline < line )
|
||||
{
|
||||
p = p->hidden;
|
||||
++curline;
|
||||
}
|
||||
p = p->hidden;
|
||||
++curline;
|
||||
}
|
||||
|
||||
if( p && curline == line )
|
||||
@ -154,7 +152,7 @@ int override_get(s_override *dest, s_faddr addr, int line)
|
||||
}
|
||||
else if( line == 0 )
|
||||
return 0;
|
||||
else
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -264,7 +264,7 @@ int session_check_addr(s_faddr addr)
|
||||
int session_get_password(s_faddr addr, char *buffer, size_t buflen)
|
||||
{
|
||||
s_cval_entry *pwd_ptr;
|
||||
buffer[0]='\0';
|
||||
|
||||
for( pwd_ptr = conf_first(cf_password); pwd_ptr;
|
||||
pwd_ptr = conf_next(pwd_ptr) )
|
||||
{
|
||||
|
@ -3,7 +3,7 @@ dnl
|
||||
dnl $Id$
|
||||
dnl
|
||||
#AC_INIT(bforce/bforce.c)
|
||||
AC_INIT([bforce],[0.26.1],[zx@zxalexis.ru])
|
||||
AC_INIT([bforce],[0.24.1],[zx@zxalexis.ru])
|
||||
AC_CONFIG_HEADER(include/config.h)
|
||||
AC_CANONICAL_SYSTEM
|
||||
dnl # Minimum Autoconf version required.
|
||||
|
@ -141,8 +141,8 @@ typedef struct override {
|
||||
char *sPhone;
|
||||
char *sFlags;
|
||||
s_timevec worktime;
|
||||
s_timevec freqtime;
|
||||
char *run;
|
||||
s_timevec freqtime;
|
||||
char *run;
|
||||
struct override *hidden; /* Hidden lines list */
|
||||
} s_override;
|
||||
|
||||
@ -159,130 +159,130 @@ typedef struct filebox {
|
||||
} s_filebox;
|
||||
|
||||
typedef enum {
|
||||
cf_address, // 0
|
||||
cf_amiga_outbound_directory, // 1
|
||||
cf_binkp_timeout, // 2
|
||||
cf_daemon_circle, // 3
|
||||
cf_daemon_circle_crash, // 4
|
||||
cf_daemon_circle_direct, // 5
|
||||
cf_daemon_circle_immed, // 6
|
||||
cf_daemon_circle_modem, // 7
|
||||
cf_daemon_circle_normal, // 8
|
||||
cf_daemon_circle_rescan, // 9
|
||||
cf_daemon_maxclients_modem, // 10
|
||||
cf_daemon_maxclients_tcpip, // 11
|
||||
cf_daemon_pid_file, // 12
|
||||
cf_delay_files_recv, // 13
|
||||
cf_delay_files_send, // 14
|
||||
cf_disable_aka_matching, // 15
|
||||
cf_domain, // 16
|
||||
cf_emsi_FR_time, // 17
|
||||
cf_emsi_OH_time, // 18
|
||||
cf_emsi_slave_sends_nak, // 19
|
||||
cf_emsi_send_tz, // 20
|
||||
cf_emsi_send_time, // 21
|
||||
cf_filebox, // 22
|
||||
cf_filebox_directory, // 23
|
||||
cf_flags, // 24
|
||||
cf_flo_translate, // 25
|
||||
cf_freq_alias_list, // 26
|
||||
cf_freq_dir_list, // 27
|
||||
cf_freq_ignore_masks, // 28
|
||||
cf_freq_limit_number, // 29
|
||||
cf_freq_limit_size, // 30
|
||||
cf_freq_limit_time, // 31
|
||||
cf_freq_min_speed, // 32
|
||||
cf_freq_srif_command, // 33
|
||||
cf_incnet_flag, // 34
|
||||
cf_incarc_flag, // 35
|
||||
cf_inctic_flag, // 36
|
||||
cf_incfile_flag, // 37
|
||||
cf_hide_our_aka, // 38
|
||||
cf_history_file, // 39
|
||||
cf_hydra_options, // 40
|
||||
cf_hydra_mincps_recv, // 41
|
||||
cf_hydra_mincps_send, // 42
|
||||
cf_hydra_tx_window, // 43
|
||||
cf_hydra_rx_window, // 44
|
||||
cf_inbound_directory, // 45
|
||||
cf_location, // 46
|
||||
cf_log_file, // 47
|
||||
cf_log_file_daemon, // 48
|
||||
cf_max_speed, // 49
|
||||
cf_maxtries, // 50
|
||||
cf_maxtries_nodial, // 51
|
||||
cf_maxtries_noansw, // 52
|
||||
cf_maxtries_noconn, // 53
|
||||
cf_maxtries_hshake, // 54
|
||||
cf_maxtries_sessions, // 55
|
||||
cf_min_cps_recv, // 56
|
||||
cf_min_cps_send, // 57
|
||||
cf_min_cps_time, // 58
|
||||
cf_min_free_space, // 59
|
||||
cf_min_speed_in, // 60
|
||||
cf_min_speed_out, // 61
|
||||
cf_mode_netmail, // 62
|
||||
cf_mode_arcmail, // 63
|
||||
cf_mode_request, // 64
|
||||
cf_mode_ticfile, // 65
|
||||
cf_mode_default, // 66
|
||||
cf_modem_can_send_break, // 67
|
||||
cf_modem_dial_prefix, // 68
|
||||
cf_modem_dial_suffix, // 69
|
||||
cf_modem_dial_response, // 70
|
||||
cf_modem_hangup_command, // 71
|
||||
cf_modem_port, // 72
|
||||
cf_modem_reset_command, // 73
|
||||
cf_modem_stat_command, // 74
|
||||
cf_nodelist, // 75
|
||||
cf_nodelist_directory, // 76
|
||||
cf_nodial_flag, // 77
|
||||
cf_override, // 78
|
||||
cf_options, // 79
|
||||
cf_outbound_directory, // 80
|
||||
cf_password, // 81
|
||||
cf_phone, // 82
|
||||
cf_phone_translate, // 83
|
||||
cf_proto_order, // 84
|
||||
cf_recode_file_in, // 85
|
||||
cf_recode_file_out, // 86
|
||||
cf_recode_intro_in, // 87
|
||||
cf_recv_buffer_size, // 88
|
||||
cf_rescan_delay, // 89
|
||||
cf_run_after_handshake, // 90
|
||||
cf_run_after_session, // 91
|
||||
cf_run_before_session, // 92
|
||||
cf_session_limit_in, // 93
|
||||
cf_session_limit_out, // 94
|
||||
cf_skip_files_recv, // 95
|
||||
cf_status_directory, // 96
|
||||
cf_system_name, // 97
|
||||
cf_sysop_name, // 98
|
||||
cf_uucp_lock_directory, // 99
|
||||
cf_wait_carrier_in, // 100
|
||||
cf_wait_carrier_out, // 101
|
||||
cf_zmodem_mincps_recv, // 102
|
||||
cf_zmodem_mincps_send, // 103
|
||||
cf_zmodem_send_dummy_pkt, // 104
|
||||
cf_zmodem_skip_by_pos, // 105
|
||||
cf_zmodem_start_block_size, // 106
|
||||
cf_zmodem_tx_window, // 107
|
||||
cf_nomail_flag, // 108
|
||||
cf_bind_ip, // 109
|
||||
cf_recieved_to_lower, // 110
|
||||
cf_address,
|
||||
cf_amiga_outbound_directory,
|
||||
cf_binkp_timeout,
|
||||
cf_daemon_circle,
|
||||
cf_daemon_circle_crash,
|
||||
cf_daemon_circle_direct,
|
||||
cf_daemon_circle_immed,
|
||||
cf_daemon_circle_modem,
|
||||
cf_daemon_circle_normal,
|
||||
cf_daemon_circle_rescan,
|
||||
cf_daemon_maxclients_modem,
|
||||
cf_daemon_maxclients_tcpip,
|
||||
cf_daemon_pid_file,
|
||||
cf_delay_files_recv,
|
||||
cf_delay_files_send,
|
||||
cf_disable_aka_matching,
|
||||
cf_domain,
|
||||
cf_emsi_FR_time,
|
||||
cf_emsi_OH_time,
|
||||
cf_emsi_slave_sends_nak,
|
||||
cf_emsi_send_tz,
|
||||
cf_emsi_send_time,
|
||||
cf_filebox,
|
||||
cf_filebox_directory,
|
||||
cf_flags,
|
||||
cf_flo_translate,
|
||||
cf_freq_alias_list,
|
||||
cf_freq_dir_list,
|
||||
cf_freq_ignore_masks,
|
||||
cf_freq_limit_number,
|
||||
cf_freq_limit_size,
|
||||
cf_freq_limit_time,
|
||||
cf_freq_min_speed,
|
||||
cf_freq_srif_command,
|
||||
cf_incnet_flag,
|
||||
cf_incarc_flag,
|
||||
cf_inctic_flag,
|
||||
cf_incfile_flag,
|
||||
cf_hide_our_aka,
|
||||
cf_history_file,
|
||||
cf_hydra_options,
|
||||
cf_hydra_mincps_recv,
|
||||
cf_hydra_mincps_send,
|
||||
cf_hydra_tx_window,
|
||||
cf_hydra_rx_window,
|
||||
cf_inbound_directory,
|
||||
cf_location,
|
||||
cf_log_file,
|
||||
cf_log_file_daemon,
|
||||
cf_max_speed,
|
||||
cf_maxtries,
|
||||
cf_maxtries_nodial,
|
||||
cf_maxtries_noansw,
|
||||
cf_maxtries_noconn,
|
||||
cf_maxtries_hshake,
|
||||
cf_maxtries_sessions,
|
||||
cf_min_cps_recv,
|
||||
cf_min_cps_send,
|
||||
cf_min_cps_time,
|
||||
cf_min_free_space,
|
||||
cf_min_speed_in,
|
||||
cf_min_speed_out,
|
||||
cf_mode_netmail,
|
||||
cf_mode_arcmail,
|
||||
cf_mode_request,
|
||||
cf_mode_ticfile,
|
||||
cf_mode_default,
|
||||
cf_modem_can_send_break,
|
||||
cf_modem_dial_prefix,
|
||||
cf_modem_dial_suffix,
|
||||
cf_modem_dial_response,
|
||||
cf_modem_hangup_command,
|
||||
cf_modem_port,
|
||||
cf_modem_reset_command,
|
||||
cf_modem_stat_command,
|
||||
cf_nodelist,
|
||||
cf_nodelist_directory,
|
||||
cf_nodial_flag,
|
||||
cf_override,
|
||||
cf_options,
|
||||
cf_outbound_directory,
|
||||
cf_password,
|
||||
cf_phone,
|
||||
cf_phone_translate,
|
||||
cf_proto_order,
|
||||
cf_recode_file_in,
|
||||
cf_recode_file_out,
|
||||
cf_recode_intro_in,
|
||||
cf_recv_buffer_size,
|
||||
cf_rescan_delay,
|
||||
cf_run_after_handshake,
|
||||
cf_run_after_session,
|
||||
cf_run_before_session,
|
||||
cf_session_limit_in,
|
||||
cf_session_limit_out,
|
||||
cf_skip_files_recv,
|
||||
cf_status_directory,
|
||||
cf_system_name,
|
||||
cf_sysop_name,
|
||||
cf_uucp_lock_directory,
|
||||
cf_wait_carrier_in,
|
||||
cf_wait_carrier_out,
|
||||
cf_zmodem_mincps_recv,
|
||||
cf_zmodem_mincps_send,
|
||||
cf_zmodem_send_dummy_pkt,
|
||||
cf_zmodem_skip_by_pos,
|
||||
cf_zmodem_start_block_size,
|
||||
cf_zmodem_tx_window,
|
||||
cf_nomail_flag,
|
||||
cf_bind_ip,
|
||||
cf_recieved_to_lower,
|
||||
#ifdef USE_SYSLOG
|
||||
cf_syslog_facility,
|
||||
#endif
|
||||
#ifdef DEBUG
|
||||
cf_debug_file, // 111
|
||||
cf_debug_level, // 112
|
||||
cf_debug_file,
|
||||
cf_debug_level,
|
||||
#endif
|
||||
cf_split_inbound, // 113
|
||||
cf_split_inbound,
|
||||
#ifdef NETSPOOL
|
||||
cf_netspool_host,
|
||||
cf_netspool_port,
|
||||
#endif
|
||||
cf_fidodnszone, // 114
|
||||
cf_fidodnszone,
|
||||
BFORCE_NUMBER_OF_KEYWORDS
|
||||
} bforce_config_keyword;
|
||||
|
||||
|
@ -65,8 +65,8 @@ void log_setident(const char *ident);
|
||||
int log_open(const char *logname, const char *ext, const char *tty);
|
||||
int log_close(void);
|
||||
int log_reopen(const char *logname, const char *ext, const char *tty);
|
||||
void log(const char *s, ...);
|
||||
void logerr(const char *s, ...);
|
||||
int log(const char *s, ...);
|
||||
int logerr(const char *s, ...);
|
||||
|
||||
#ifdef DEBUG
|
||||
//void debug_setlevel(long newlevel, bool logit);
|
||||
@ -75,7 +75,7 @@ bool debug_isopened(void);
|
||||
//int debug_parsestring(char *str, unsigned long *deblevel);
|
||||
int debug_open();
|
||||
int debug_close();
|
||||
void debug(unsigned long what, const char *str, ...);
|
||||
int debug(unsigned long what, const char *str, ...);
|
||||
void debug_configure();
|
||||
#endif
|
||||
|
||||
|
@ -21,7 +21,7 @@
|
||||
#define BF_VERSION RELEASE_VERSION
|
||||
#define BF_CDATE __DATE__ __TIME__
|
||||
#define BF_REG "free software"
|
||||
#define BF_COPYRIGHT "(c) 1997-2000 by Alexander Belkin, 2004-2025 fidonet members"
|
||||
#define BF_COPYRIGHT "(c) 1997-2000 by Alexander Belkin"
|
||||
|
||||
#define BF_BANNERVER BF_NAME" "BF_VERSION"/"BF_OS
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user