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)
|
@ -1,3 +1,11 @@
|
||||
# ipsvd
|
||||
|
||||
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