Merge pull request 'Fixed Makefile and build systems to include man-pages. Added Alt-linux workflow. Fix rpm spec-file' (#3) from zx into master
Reviewed-on: #3
This commit is contained in:
		
						commit
						78aac4f18c
					
				
							
								
								
									
										65
									
								
								.gitea/workflows/alt.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								.gitea/workflows/alt.yaml
									
									
									
									
									
										Normal 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"
 | 
				
			||||||
@ -1,5 +1,6 @@
 | 
				
			|||||||

 | 
					
 | 
				
			||||||

 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
BinkleyForce FTN mailer
 | 
					BinkleyForce FTN mailer
 | 
				
			||||||
-----------------------
 | 
					-----------------------
 | 
				
			||||||
 | 
				
			|||||||
@ -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
 | 
				
			||||||
 | 
				
			|||||||
@ -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
 | 
				
			||||||
@ -196,9 +199,16 @@ install-config:
 | 
				
			|||||||
		$(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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -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;
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				
 | 
									
 | 
				
			||||||
 | 
				
			|||||||
@ -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;
 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	for( i = 0; i < lines_num; i++ )
 | 
					 | 
				
			||||||
		if( lines_tab[i].name )
 | 
					 | 
				
			||||||
			free(lines_tab[i].name);
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	if( lines_tab ) 
 | 
						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;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
				
			|||||||
@ -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"
 | 
				
			||||||
 | 
				
			|||||||
@ -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 */
 | 
				
			||||||
 | 
				
			|||||||
@ -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 );
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
 | 
				
			|||||||
@ -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.
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user