initial commit of file from CVS for ipsvd on Fri 14 Jul 13:50:31 BST 2023
This commit is contained in:
parent
ddc5d5796a
commit
901cd77fb3
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
*.tar.gz filter=lfs diff=lfs merge=lfs -text
|
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
*.rpm
|
||||||
|
*.log
|
||||||
|
*spec-20*
|
21
Makefile
Normal file
21
Makefile
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Makefile for source rpm: ipsvd
|
||||||
|
# $Id: Makefile,v 1.1 2016/02/04 12:43:02 vip-ire Exp $
|
||||||
|
NAME := ipsvd
|
||||||
|
SPECFILE = $(firstword $(wildcard *.spec))
|
||||||
|
|
||||||
|
define find-makefile-common
|
||||||
|
for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done
|
||||||
|
endef
|
||||||
|
|
||||||
|
MAKEFILE_COMMON := $(shell $(find-makefile-common))
|
||||||
|
|
||||||
|
ifeq ($(MAKEFILE_COMMON),)
|
||||||
|
# attept a checkout
|
||||||
|
define checkout-makefile-common
|
||||||
|
test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2
|
||||||
|
endef
|
||||||
|
|
||||||
|
MAKEFILE_COMMON := $(shell $(checkout-makefile-common))
|
||||||
|
endif
|
||||||
|
|
||||||
|
include $(MAKEFILE_COMMON)
|
10
README.md
10
README.md
@ -1,3 +1,11 @@
|
|||||||
# ipsvd
|
# ipsvd
|
||||||
|
|
||||||
3rd Party (Maintained by Koozali) git repo for ipsvd smeserver
|
3rd Party (Maintained by Koozali) git repo for ipsvd smeserver
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
<br />*This description has been generated by an LLM AI system and cannot be relied on to be fully correct.*
|
||||||
|
*Once it has been checked, then this comment will be deleted*
|
||||||
|
<br />
|
||||||
|
|
||||||
|
ipsvd is a software package that provides Internet Protocol services such as TCP, UDP, and SCTP over IPv4 and IPv6. It also provides secure tunnels and provides a secure connection over which to send data. Additionally, it provides services such as logging, authentication, and virtual hosting.
|
||||||
|
1
contriborbase
Normal file
1
contriborbase
Normal file
@ -0,0 +1 @@
|
|||||||
|
sme10
|
BIN
ipsvd-0.12.1.tar.gz
(Stored with Git LFS)
Normal file
BIN
ipsvd-0.12.1.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
182
ipsvd.spec
Normal file
182
ipsvd.spec
Normal file
@ -0,0 +1,182 @@
|
|||||||
|
# $Id: ipsvd.spec,v 1.1 2016/02/04 12:43:02 vip-ire Exp $
|
||||||
|
|
||||||
|
Summary: internet protocol service daemons
|
||||||
|
Name: ipsvd
|
||||||
|
Version: 0.12.1
|
||||||
|
Release: 7%{?dist}
|
||||||
|
License: BSD style
|
||||||
|
Group: System Enviornment/Daemons
|
||||||
|
Url: http://smarden.org/ipsvd/
|
||||||
|
Source: %{name}-%{version}.tar.gz
|
||||||
|
Source1: matrixssl-1-8-3-open.tar.gz
|
||||||
|
Patch0: matrix.decode.debug.patch
|
||||||
|
Patch1: tcpsvd_keepalive.patch
|
||||||
|
BuildRequires: dietlibc
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-root
|
||||||
|
%description
|
||||||
|
|
||||||
|
ipsvd is a set of internet protocol service daemons. It currently includes
|
||||||
|
a TCP/IP service daemon, and a UDP/IP service daemon.
|
||||||
|
|
||||||
|
An internet protocol service (ipsv) daemon waits for incoming
|
||||||
|
connections on a local socket. On incoming connections, the ipsv daemon
|
||||||
|
conditionally runs an arbitrary program with standard input reading from
|
||||||
|
the socket, and standard output writing to the socket, that handles the
|
||||||
|
connection. The network connection optionally can be encrypted using SSLv3.
|
||||||
|
Standard error is used for logging.
|
||||||
|
|
||||||
|
ipsv daemons can be told to read and follow pre-defined instructions
|
||||||
|
on how to handle incoming connections. It's possible to run different
|
||||||
|
programs, or to set a different environment, or to deny a connection,
|
||||||
|
or to set a per host concurrency limit, depending on the client's address
|
||||||
|
or hostname.
|
||||||
|
|
||||||
|
Normally the ipsv daemons are run by a supervisor process, such as runsv
|
||||||
|
from the runit package, or supervise from the daemontools package.
|
||||||
|
|
||||||
|
ipsvd can be used to run services normally run by inetd, xinetd, or tcpserver.
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Fri Jul 14 2023 BogusDateBot
|
||||||
|
- Eliminated rpmbuild "bogus date" warnings due to inconsistent weekday,
|
||||||
|
by assuming the date is correct and changing the weekday.
|
||||||
|
|
||||||
|
* Wed Apr 23 2014 Ian Wells <esmith@wellsi.com> 0.12.1-07.sme
|
||||||
|
- Modifed patch and spec file to avoid build errors [SME: 8084]
|
||||||
|
|
||||||
|
* Wed Dec 25 2013 Charlie Brady <charlieb@e-smith.com> 0.12.1-06
|
||||||
|
- Add option to tcpsvd to set socket keepalive. Code provided by Chris Maltby.
|
||||||
|
[SME: 8084]
|
||||||
|
|
||||||
|
* Sat Oct 6 2007 Charlie Brady <charlieb@e-smith.com> 0.12.1-05
|
||||||
|
- Remove extra debugging code. [SME: 3438]
|
||||||
|
|
||||||
|
* Tue Oct 2 2007 Charlie Brady <charlieb@e-smith.com> 0.12.1-04
|
||||||
|
- Add more debugging of client hello parsing. [SME: 3438]
|
||||||
|
|
||||||
|
* Fri Aug 17 2007 Charlie Brady <charlieb@e-smith.com> 0.12.1-03
|
||||||
|
- Send all debugging to stderr rather than stdout.
|
||||||
|
- Fix bug parsing SSL 3.0 client hello (if hello extensions are
|
||||||
|
included, as in Thunderbird 2). [SME: 3438]
|
||||||
|
|
||||||
|
* Thu Aug 16 2007 Charlie Brady <charlieb@e-smith.com> 0.12.1-02
|
||||||
|
- Enable DEBUG during matrixssl build.
|
||||||
|
|
||||||
|
* Sun Apr 29 2007 Shad L. Lords <slords@mail.com>
|
||||||
|
- Clean up spec so package can be built by koji/plague
|
||||||
|
|
||||||
|
* Thu Apr 12 2007 Charlie Brady <charlieb@e-smith.com> 0.12.1-01
|
||||||
|
- Update to latest upstream ipsvd.
|
||||||
|
|
||||||
|
* Thu Mar 15 2007 Charlie Brady <charlieb@e-smith.com> 0.12.0-04
|
||||||
|
- Update to latest upstream matrixssl library.
|
||||||
|
|
||||||
|
* Thu Dec 07 2006 Shad L. Lords <slords@mail.com>
|
||||||
|
- Update to new release naming. No functional changes.
|
||||||
|
- Make Packager generic
|
||||||
|
|
||||||
|
* Sat Feb 4 2006 Charlie Brady <charlieb@e-smith.com> 0.12.0-02
|
||||||
|
- Fix build error in Makefile.
|
||||||
|
|
||||||
|
* Sat Feb 4 2006 Charlie Brady <charlieb@e-smith.com> 0.12.0-01
|
||||||
|
- Upgrade to new version.
|
||||||
|
|
||||||
|
* Mon Nov 21 2005 Charlie Brady <charlieb@e-smith.com> 0.11.1-03
|
||||||
|
- Rebuild with new dietlibc (0.27-4).
|
||||||
|
|
||||||
|
* Wed Nov 16 2005 Charlie Brady <charlieb@e-smith.com> 0.11.1-02
|
||||||
|
- Update to latest matrixssl.
|
||||||
|
|
||||||
|
* Wed Nov 16 2005 Charlie Brady <charlieb@e-smith.com> 0.11.1-01
|
||||||
|
- Update to new ipsvd version.
|
||||||
|
- Remove matrixssl build issue patch.
|
||||||
|
|
||||||
|
* Mon Oct 24 2005 Charlie Brady <charlieb@e-smith.com> 0.11.0-04
|
||||||
|
- Update to latest matrixssl.
|
||||||
|
|
||||||
|
* Tue Jul 12 2005 Charlie Brady <charlieb@e-smith.com> 0.11.0-03
|
||||||
|
- Rebuild on CentOS 4.1 build server, to correct segfault problem.
|
||||||
|
|
||||||
|
* Tue Mar 15 2005 Charlie Brady <charlieb@e-smith.com> 0.11.0-02
|
||||||
|
- Fix install of sslio
|
||||||
|
|
||||||
|
* Wed Feb 23 2005 Charlie Brady <charlieb@e-smith.com> 0.11.0-01
|
||||||
|
- Upgrade to 0.11.0
|
||||||
|
- Remove bogus dietlibc Requires: header (statically linked)
|
||||||
|
|
||||||
|
* Sat Jan 15 2005 Charlie Brady <charlieb@e-smith.com> 0.10.1-01
|
||||||
|
- Upgrade to 0.10.1
|
||||||
|
- Upgrade martixssl to 1.2.2.
|
||||||
|
- Don't bundle djbdns client library.
|
||||||
|
|
||||||
|
* Mon Dec 20 2004 Charlie Brady <charlieb@e-smith.com> 0.9.7-01
|
||||||
|
- Upgrade to 0.9.7.
|
||||||
|
|
||||||
|
* Thu Sep 30 2004 Charlie Brady <charlieb@e-smith.com> 0.9.6-01
|
||||||
|
- Upgrade to 0.9.6.
|
||||||
|
- Upgrade martixssl to 1.2.
|
||||||
|
|
||||||
|
* Mon Jun 07 2004 Charlie Brady <charlieb@e-smith.com> 0.9.3-01
|
||||||
|
- Upgrade to 0.9.3.
|
||||||
|
|
||||||
|
* Mon May 03 2004 Charlie Brady <charlieb@e-smith.com> 0.9.1-01
|
||||||
|
- Upgrade to 0.9.1.
|
||||||
|
|
||||||
|
* Sun May 02 2004 Charlie Brady <charlieb@e-smith.com> 0.9.0-01
|
||||||
|
- Upgrade to 0.9.0 (now includes sslio).
|
||||||
|
- Build/link with dietlibc and matrixssl.
|
||||||
|
|
||||||
|
* Tue Nov 04 2003 Charlie Brady <charlieb@e-smith.com> 0.6.0-02
|
||||||
|
- Build/link with uClibc.
|
||||||
|
- Add missing man(8) pages.
|
||||||
|
|
||||||
|
* Thu Oct 16 2003 Charlie Brady <charlieb@e-smith.com> 0.6.0-01
|
||||||
|
- Upgrade to 0.6.0.
|
||||||
|
|
||||||
|
* Tue Jul 22 2003 Charlie Brady <charlieb@e-smith.com> 0.4.1-01
|
||||||
|
- Initial
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -c -n %{name}-%{version}
|
||||||
|
cp -v %{SOURCE1} net/%{name}-%{version}/src/matrixssl.tar.gz
|
||||||
|
mkdir -p net/%{name}-%{version}/compile
|
||||||
|
perl -p -i -e 's:CC=../../compile:CC=../../compile -DDEBUG:' \
|
||||||
|
net/%{name}-%{version}/src/Makefile.matrixssl
|
||||||
|
ln -s matrixssl-1-8-3-open net/%{name}-%{version}/compile/matrixssl
|
||||||
|
%patch1 -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
cd net/%{name}-%{version}
|
||||||
|
echo 'diet -Os gcc -O2 -Wall' >src/conf-cc
|
||||||
|
echo 'diet -Os gcc -s -Os -pipe' >src/conf-ld
|
||||||
|
./package/compile
|
||||||
|
cd compile
|
||||||
|
#patch -p0 < %{PATCH0}
|
||||||
|
perl -p -i -e "s/printf.m/fprintf(stderr, m/" matrixssl/src/os/debug.c
|
||||||
|
perl -p -i -e "s/ssl.*TLS_MIN_VER .. c/c/" matrixssl/src/sslDecode.c
|
||||||
|
rm matrixssl.a sslio sslsvd
|
||||||
|
cd ..
|
||||||
|
./package/compile
|
||||||
|
|
||||||
|
%install
|
||||||
|
cd net/%{name}-%{version}
|
||||||
|
mkdir -p $RPM_BUILD_ROOT/%{_bindir}
|
||||||
|
for i in $(cat package/commands compile/command.ssl)
|
||||||
|
do
|
||||||
|
install command/$i $RPM_BUILD_ROOT/%{_bindir}
|
||||||
|
done
|
||||||
|
mkdir -p $RPM_BUILD_ROOT/%{_mandir}/man1
|
||||||
|
#install man/*.1 $RPM_BUILD_ROOT/%{_mandir}/man1
|
||||||
|
mkdir -p $RPM_BUILD_ROOT/%{_mandir}/man8
|
||||||
|
install man/*.8 $RPM_BUILD_ROOT/%{_mandir}/man8
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -r $RPM_BUILD_ROOT
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%{_bindir}/*
|
||||||
|
%{_mandir}/man8/*
|
||||||
|
#%{_mandir}/man1/*
|
||||||
|
%doc net/%{name}-%{version}/package/COPYING
|
||||||
|
%doc net/%{name}-%{version}/doc/*
|
105
matrix.decode.debug.patch
Normal file
105
matrix.decode.debug.patch
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
--- matrixssl/src/sslDecode.c.orig 2007-08-17 14:12:23.000000000 -0400
|
||||||
|
+++ matrixssl/src/sslDecode.c 2007-08-17 15:56:46.000000000 -0400
|
||||||
|
@@ -619,6 +619,8 @@
|
||||||
|
First two bytes are the highest supported major and minor SSL versions
|
||||||
|
We support only 3.0 (support 3.1 in commercial version)
|
||||||
|
*/
|
||||||
|
+ matrixStrDebugMsg("c is %u\n", c);
|
||||||
|
+ matrixStrDebugMsg("end is %u\n", end);
|
||||||
|
if (end - c < 2) {
|
||||||
|
ssl->err = SSL_ALERT_ILLEGAL_PARAMETER;
|
||||||
|
matrixStrDebugMsg("Invalid ssl header version length\n", NULL);
|
||||||
|
@@ -626,6 +628,7 @@
|
||||||
|
}
|
||||||
|
ssl->reqMajVer = *c; c++;
|
||||||
|
ssl->reqMinVer = *c; c++;
|
||||||
|
+ matrixStrDebugMsg("after version number c is %u\n", c);
|
||||||
|
if (ssl->reqMajVer >= SSL3_MAJ_VER) {
|
||||||
|
ssl->majVer = ssl->reqMajVer;
|
||||||
|
ssl->minVer = SSL3_MIN_VER;
|
||||||
|
@@ -651,7 +654,9 @@
|
||||||
|
}
|
||||||
|
memcpy(ssl->sec.clientRandom, c, SSL_HS_RANDOM_SIZE);
|
||||||
|
c += SSL_HS_RANDOM_SIZE;
|
||||||
|
+ matrixStrDebugMsg("after random block c is %u\n", c);
|
||||||
|
ssl->sessionIdLen = *c; c++;
|
||||||
|
+ matrixStrDebugMsg("before session id c is %u\n", c);
|
||||||
|
/*
|
||||||
|
If a session length was specified, the client is asking to
|
||||||
|
resume a previously established session to speed up the handshake.
|
||||||
|
@@ -685,6 +690,7 @@
|
||||||
|
*/
|
||||||
|
ssl->flags &= ~SSL_FLAGS_RESUMED;
|
||||||
|
}
|
||||||
|
+ matrixStrDebugMsg("after session id c is %u\n", c);
|
||||||
|
/*
|
||||||
|
Next is the two byte cipher suite list length, network byte order.
|
||||||
|
It must not be zero, and must be a multiple of two.
|
||||||
|
@@ -696,6 +702,7 @@
|
||||||
|
}
|
||||||
|
suiteLen = *c << 8; c++;
|
||||||
|
suiteLen += *c; c++;
|
||||||
|
+ matrixStrDebugMsg("before cipher list c is %u\n", c);
|
||||||
|
if (suiteLen == 0 || suiteLen & 1) {
|
||||||
|
ssl->err = SSL_ALERT_ILLEGAL_PARAMETER;
|
||||||
|
matrixIntDebugMsg("Unable to parse cipher suite list: %d\n",
|
||||||
|
@@ -732,6 +739,7 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+ matrixStrDebugMsg("after cipher suites c is %u\n", c);
|
||||||
|
/*
|
||||||
|
If we fell to the default cipher suite, we didn't have
|
||||||
|
any in common with the client, or the client is being bad
|
||||||
|
@@ -750,6 +758,7 @@
|
||||||
|
and value 0 (second byte). There are no compression schemes defined
|
||||||
|
for SSLv3
|
||||||
|
*/
|
||||||
|
+ matrixStrDebugMsg("before compression header length c is %u\n", c);
|
||||||
|
if (end - c < 1) {
|
||||||
|
ssl->err = SSL_ALERT_ILLEGAL_PARAMETER;
|
||||||
|
matrixStrDebugMsg("Invalid compression header length\n", NULL);
|
||||||
|
@@ -762,6 +771,7 @@
|
||||||
|
return SSL_ERROR;
|
||||||
|
}
|
||||||
|
c += extLen;
|
||||||
|
+ matrixStrDebugMsg("after comps c is %u\n", c);
|
||||||
|
|
||||||
|
if (ssl->reqMinVer == SSL3_MIN_VER && extLen != 1) {
|
||||||
|
ssl->err = SSL_ALERT_ILLEGAL_PARAMETER;
|
||||||
|
@@ -773,14 +783,17 @@
|
||||||
|
to parse here: Two byte length and extension info.
|
||||||
|
http://www.faqs.org/rfcs/rfc3546.html
|
||||||
|
*/
|
||||||
|
- if (ssl->reqMinVer >= TLS_MIN_VER && c != end) {
|
||||||
|
+ /*if (ssl->reqMinVer >= TLS_MIN_VER && c != end) {*/
|
||||||
|
+ if (c != end) {
|
||||||
|
if (end - c < 2) {
|
||||||
|
ssl->err = SSL_ALERT_ILLEGAL_PARAMETER;
|
||||||
|
matrixStrDebugMsg("Invalid extension header len\n", NULL);
|
||||||
|
return SSL_ERROR;
|
||||||
|
}
|
||||||
|
+ matrixStrDebugMsg("before extLen c is %u\n", c);
|
||||||
|
extLen = *c << 8; c++;
|
||||||
|
extLen += *c; c++;
|
||||||
|
+ matrixStrDebugMsg("before extensions c is %u\n", c);
|
||||||
|
if (end - c < extLen) {
|
||||||
|
ssl->err = SSL_ALERT_ILLEGAL_PARAMETER;
|
||||||
|
matrixStrDebugMsg("Invalid extension header len\n", NULL);
|
||||||
|
@@ -793,6 +806,7 @@
|
||||||
|
just skip over all extensions, ignoring them.
|
||||||
|
*/
|
||||||
|
c += extLen;
|
||||||
|
+ matrixStrDebugMsg("after extensions c is %u\n", c);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
/*
|
||||||
|
@@ -885,6 +899,8 @@
|
||||||
|
if (c != end) {
|
||||||
|
ssl->err = SSL_ALERT_ILLEGAL_PARAMETER;
|
||||||
|
matrixStrDebugMsg("Invalid final client hello length\n", NULL);
|
||||||
|
+ matrixStrDebugMsg("parsed to %u\n", c);
|
||||||
|
+ matrixStrDebugMsg("end at %u\n", end);
|
||||||
|
return SSL_ERROR;
|
||||||
|
}
|
||||||
|
|
BIN
matrixssl-1-8-3-open.tar.gz
(Stored with Git LFS)
Normal file
BIN
matrixssl-1-8-3-open.tar.gz
(Stored with Git LFS)
Normal file
Binary file not shown.
64
tcpsvd_keepalive.patch
Normal file
64
tcpsvd_keepalive.patch
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
diff -rN --unified=2 ipsvd-0.12.1.old/net/ipsvd-0.12.1/src/socket_bind.c ipsvd-0.12.1/net/ipsvd-0.12.1/src/socket_bind.c
|
||||||
|
--- ipsvd-0.12.1.old/net/ipsvd-0.12.1/src/socket_bind.c 2006-02-04 11:16:48.000000000 -0800
|
||||||
|
+++ ipsvd-0.12.1/net/ipsvd-0.12.1/src/socket_bind.c 2014-04-23 20:54:30.000000000 -0700
|
||||||
|
@@ -32,2 +32,8 @@
|
||||||
|
}
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+int socket_keepalive(int s)
|
||||||
|
+{
|
||||||
|
+ int opt = 1;
|
||||||
|
+ return setsockopt(s,SOL_SOCKET,SO_KEEPALIVE,&opt,sizeof opt);
|
||||||
|
+}
|
||||||
|
diff -rN --unified=2 ipsvd-0.12.1.old/net/ipsvd-0.12.1/src/socket.h ipsvd-0.12.1/net/ipsvd-0.12.1/src/socket.h
|
||||||
|
--- ipsvd-0.12.1.old/net/ipsvd-0.12.1/src/socket.h 2006-02-04 11:16:48.000000000 -0800
|
||||||
|
+++ ipsvd-0.12.1/net/ipsvd-0.12.1/src/socket.h 2014-04-23 20:54:30.000000000 -0700
|
||||||
|
@@ -19,4 +19,5 @@
|
||||||
|
|
||||||
|
extern void socket_tryreservein(int,int);
|
||||||
|
+extern int socket_keepalive(int);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
diff -rN --unified=2 ipsvd-0.12.1.old/net/ipsvd-0.12.1/src/tcpsvd.c ipsvd-0.12.1/net/ipsvd-0.12.1/src/tcpsvd.c
|
||||||
|
--- ipsvd-0.12.1.old/net/ipsvd-0.12.1/src/tcpsvd.c 2006-02-04 11:16:47.000000000 -0800
|
||||||
|
+++ ipsvd-0.12.1/net/ipsvd-0.12.1/src/tcpsvd.c 2014-04-23 20:54:30.000000000 -0700
|
||||||
|
@@ -33,7 +33,7 @@
|
||||||
|
|
||||||
|
#ifdef SSLSVD
|
||||||
|
-#define USAGE " [-Ehpv] [-u user] [-c n] [-C n:msg] [-b n] [-l name] [-i dir|-x cdb] [-t sec] [-U ssluser] [-/ root] [-Z cert] [-K key] host port prog"
|
||||||
|
+#define USAGE " [-Ehkpv] [-u user] [-c n] [-C n:msg] [-b n] [-l name] [-i dir|-x cdb] [-t sec] [-U ssluser] [-/ root] [-Z cert] [-K key] host port prog"
|
||||||
|
#else
|
||||||
|
-#define USAGE " [-Ehpv] [-u user] [-c n] [-C n:msg] [-b n] [-l name] [-i dir|-x cdb] [-t sec] host port prog"
|
||||||
|
+#define USAGE " [-Ehkpv] [-u user] [-c n] [-C n:msg] [-b n] [-l name] [-i dir|-x cdb] [-t sec] host port prog"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
@@ -55,4 +55,5 @@
|
||||||
|
unsigned long cmax =30;
|
||||||
|
unsigned long timeout =0;
|
||||||
|
+unsigned int keepalive =0;
|
||||||
|
|
||||||
|
unsigned int ucspi =1;
|
||||||
|
@@ -242,4 +243,6 @@
|
||||||
|
if ((fd_move(0, c) == -1) || (fd_copy(1, 0) == -1))
|
||||||
|
drop("unable to set filedescriptor");
|
||||||
|
+ if (keepalive)
|
||||||
|
+ socket_keepalive(0);
|
||||||
|
sig_uncatch(sig_term);
|
||||||
|
sig_uncatch(sig_pipe);
|
||||||
|
@@ -272,8 +275,8 @@
|
||||||
|
#ifdef SSLSVD
|
||||||
|
while ((opt =getopt(argc, (const char **)argv,
|
||||||
|
- "c:C:i:x:u:l:Eb:hpt:vVU:/:Z:K:")) != opteof) {
|
||||||
|
+ "c:C:i:x:u:l:Eb:hkpt:vVU:/:Z:K:")) != opteof) {
|
||||||
|
#else
|
||||||
|
while ((opt =getopt(argc, (const char **)argv,
|
||||||
|
- "c:C:i:x:u:l:Eb:hpt:vV")) != opteof) {
|
||||||
|
+ "c:C:i:x:u:l:Eb:hpkt:vV")) != opteof) {
|
||||||
|
#endif
|
||||||
|
switch(opt) {
|
||||||
|
@@ -298,4 +301,5 @@
|
||||||
|
case 'b': scan_ulong(optarg, &backlog); break;
|
||||||
|
case 'h': lookuphost =1; break;
|
||||||
|
+ case 'k': keepalive =1; break;
|
||||||
|
case 'p': lookuphost =1; paranoid =1; break;
|
||||||
|
case 't': scan_ulong(optarg, &timeout); break;
|
Loading…
Reference in New Issue
Block a user