Added fixed version of package sys-apps/ucspi-tcp-0.88-r19.

This commit is contained in:
László Valkó 2023-03-20 04:27:27 +01:00
parent 5a75f203e6
commit bc7c52add6
16 changed files with 1320 additions and 0 deletions

View file

@ -0,0 +1,20 @@
AUX 0.88-ar-ranlib.patch 545 BLAKE2B c0b9b9c67e7e9682cbf1aefd194c0a590bbe17592a242bd7e140cd0e3cd201197f3cedb2d79cbaad2a647da0c804944f6b4dc84f7f373f7f2d94bffb3c133871 SHA512 9788fff2aaa01f24ae101a1fd45512218dd5032946614eb73ab033d839b21ce9fa9ff967593eb7add15ba4735dd5656e67f79beaaee720d2a2cae1fe8889b7e9
AUX 0.88-bigendian.patch 458 BLAKE2B 940a5aba8b3aa103d8cf2e64ce3d9dd09464f1fe643f6ca194198db3d2dd4ed23205cacc9ab05e1551b04542c582d6ecb54acd65b83116231daeb9cf7ca6e22e SHA512 042d2810a8fc968cc8b456216465a349bbde19402a26a64204fb3c9bd2621dfda8ceed1283b11812df8d33ba0eb2f4133de289306ef906060b9a9f5775db3918
AUX 0.88-implicit-int-ipv6.patch 182 BLAKE2B 99675e559fb924c1bdebe8d0bc21c4ab0209d7dc116a7a0e45fc4d0c8c4825a5881ec95837ee43dddca36ffd48a4e9f237c722eed6cd69b6f5217aff2e7db47b SHA512 deb42bac6eed4ee67333968bb5a8fb18831a55c55560268a4bee49d678d042cea66ad81271a77b00263fbb547d7adcb83f279594433bf20dcfc0fe7a2e504e02
AUX 0.88-implicit-int.patch 4299 BLAKE2B f93ef5874043d94345453ea5f9bb4b34e8d891ff5ccaea0684c73957a5da1f97e2a024efc83b447737392096426a95dc2d39006cb09307179b6d95cf451fcb8a SHA512 ea7d94ae1c2888f9266b7a9c6efde1e6bd6ea54bf0fa7cb3bb94657dbc51f72d33a59e2ffe207b5dd43a2db5331e6f872ebb2df4916b9012bb904100dfb847ae
AUX 0.88-large-responses.patch 772 BLAKE2B 6c1cfc91d76094a282e4cd2a4084e52409b3a4193dff8f89fdb477ef54fcb2bd102b082128eed906422ca87f7a1ef0ea018ea1e9ad297c4390395ad7a1e049f1 SHA512 d429065d9fa232207e21c6fb1c2359b0e7d35ac0142ed28ee6b00e150b0b3c5756e7eb684ee1b8aea35236986bdb046eff529e127c9c09994c4ced41370c26b7
AUX 0.88-protos-ipv6.patch 2127 BLAKE2B fbef8e74c8ea24246db9d09e26c4b3e4af50ce8ff43ea3efc8f3203d7760d53012d46cd6546efc3ce88cac349e3083bc680429338300402c968d35d1813ac1b9 SHA512 953b3a53246ad16636276f679c84c5f1b86f3dc49a910017fa9c05b175d25a184ed870a920437f4305e2b54021ee2aa2a1d6fa8b7e8d5a367bbc060617b3eb8f
AUX 0.88-protos-no-ipv6.patch 671 BLAKE2B d0c052a53833d9034b92d6ace244aad487c30c17fec5778b9df474aed9de194e92061f496216c50667da41b9dbbf88c8ef439ebbdb0be3c4001fba16425ef3f5 SHA512 56557365c1951e437b6a6b0b8c80d865adc16e2d1fb464a85b367af2d43fbce99e64a6e5a6c8fd4aa0cff53025db6c1ed25458f96316b3c51189d20c5688c0ed
AUX 0.88-protos-rblspp.patch 214 BLAKE2B aaa6b2ff1e2acd5caf753b4621bd0d662fb17ccd264bc780823961829395e53157efbbf91cb953043f6a0d8f370cffcc6b970dac0225dade03ddc324c218e3ba SHA512 f207ff2e03a0d2088b4a00ff224cc4678fbb2bee7289d6d9cc1b8034cdbc7013f3e94a336694ddf6ec599bc86c799caeb1e194f2e44598add909b9ffe37436f1
AUX 0.88-protos.patch 12339 BLAKE2B 6998ab4d53f709df7d0c6052f7e17318c956ee19cdb40f3e293272e6103600b7de55d70b22d9d027983a997f0ad1de6d7472e6911aaf83af2d471f3fa70fc64c SHA512 af68c2307a1246d1854662a8ee2bcb60d40ff78b8619f62399739d252588152a896ca3955951908b635a5e04ffc17021c06a9b58eea95101afc8104f13f33fea
AUX 0.88-rblsmtpd-ignore-on-RELAYCLIENT.patch 392 BLAKE2B 14f87e385d673b79bfdab44f86cdbf6163aaa11771d1a28b0b6dd669712a60f4825a9f499f4376a39a947e3fc00d47a837ca65d70c763529817e3e7792bea38e SHA512 6d9229011dca513bd2524da52bea06fb6b18fc38ecb99c9885f04d8ebb1221d5df59398363d34d322592f68979eec3f7cd1c095cc88dfd31ee81a19105624fc4
AUX 0.88-tcprules.patch 483 BLAKE2B 851f22f3064237c94c6e1939a2c3d46fb3e937afc8a7f139b0ff4e99894a16c33f96bcb87fc3a012249f145e74e1e4f6d067e6c63335271a7a8ab326742606ce SHA512 94f83a23de742695c77ea05cf88ef0a1215d6bade587951104b70693a1217c0a2e2e1dc519e4b1c5abad03324fb3d42cc13adb6f15c9455869d5ed6417db4f8a
AUX 0.88-uint-headers.patch 3100 BLAKE2B b3ae425066a313b58cbd95a977b3dd08134b469f2b3393d2713a3b500af96b5556f9e1d458d39446aeb0dae2734b9553b184453d7f5ac780c796d5300437d5dc SHA512 515ab4a81a420697b955578986f544bec082ca42a4384d7795f26e197d6948ded810862d500536ce431e2e7e8dccc8874ffc38c0f1fdea193e9c9e843535f5f6
AUX tcprules-Makefile 168 BLAKE2B a2fcda7ef405c4c588d7b97815f21e8188d7f0d8d28a8dd28e52c58aaa32d314c3c2ccb8bfc3b24948aed8a679af3974bbc0d446a0ad7eafc115d0a4c578b26c SHA512 b119ef421dee61a939cb05407481d5a9c109c88cca86271c045d27a5c1b22f2cb73cd28d541d17bca6b13ab6f50c568be95fa8d4554a11a7b29653947a006a18
DIST ucspi-rss.diff 1828 BLAKE2B 1ac6f97791425b2ad4f912f4773f60d85494c52417d28ef9b8059dd78850637b5d2f70ccdfdeebc60fdb5ad0f02fa681dab7fcb1ec752a96928f1061b7d3a611 SHA512 643514c57570fc0b4e817b07e6d26e831cec5b4657c3d1b9948bd90267fe370a340b911897d575eb94192e24ba71a03ac68ceb2774ef7c0e7ff819c5b4285bc3
DIST ucspi-tcp-0.88-ipv6.diff20.bz2 22088 BLAKE2B faa6cf37b828241fe8b0365aadc912465ed811b28cd6a02eef638afe5d8ec2d18a0635e756c4e5ed65e5dc13d49afee37a255e229f2cb2713628e6e8eb57d6ec SHA512 f8d3ae49adec2b6a643458958679b712e803b0e4609b4395ff9c4fd13b5a29b6f9fc35aee59f2928b892908d37ed83b708c67346a4a42ec21e05e7782bff215b
DIST ucspi-tcp-0.88-man.tar.gz 7562 BLAKE2B 8b6326665cb48dd37683a50f3fe4cb65eb2fe3c28dc90ed1461b5bd878e7a7713f01d654d7d93df63e3f7a113baa4b6abfb6eeb65fdfb820051192b36070eccc SHA512 e779d6d6b24a3af0edc362def229c657c704143e5f1dfba8d16d26b3e6bcacb9c8ceaabcccac61485a4719221c144bc0c36ebca5182985dca85a6d72101d4146
DIST ucspi-tcp-0.88-rblspp.patch 6565 BLAKE2B abf13c4c7cc25d555c57e29e45ead89340f01c5ddee4cc27a7acfdfd51f1dfae441d3b82b79d792f6acbc78b4d82843f5af34f0a166f4b7eeee44711cd39b26a SHA512 f3212d9d3bb59ec3b1f2b2bd09a80dce1eeeaf082dea68f18350a3aef818ef221eccfeb4dc7afff5c3f9e59003ec40f5e37fff86a2a5ab3145be1fe81297c990
DIST ucspi-tcp-0.88.tar.gz 53019 BLAKE2B 3327de31e225c851b43e40ae9d8c5e4d3b93e2c15ed6ef993ad9f4105d60f322c56797c45a37363258e7cd9a8d52a315d6a8d65686c5cd45d4be19781e40c233 SHA512 44efbd477dacf31d39fc970e2d2f74526dc815b905742f6127f0d5c80928ecc7e743089eaab0492386a58d5b97905113fbe8bbc7214ae179b7be27966b7566c7
EBUILD ucspi-tcp-0.88-r19.ebuild 2514 BLAKE2B 50bfbd70a073cad506cc86d39f9dd3f232ca8437b4ddf354f0a61bf26163848eed7332b190a867b9eb12854fa89534a5fc04f5e18d4a40071fe7c41b5b3e4bd3 SHA512 f7bbc328aabe58f4d9eed2024f6b2e5172a1616e992d125e579677f7840fcc4fa24b3752e8d274867389356fde62de6384276b7957bbaf82771326624de04c55
MISC metadata.xml 601 BLAKE2B f93f353c688147d0f0430e176de1f75e22321b6ddd621a8be45efba153a70ac697a2c383aec03a7ce860d79fffa7a3f3f5eed084d1ddf48c23c31fbf8d0ad3cf SHA512 41f81dd288b2ec4b48830876a7fc16f7361038803707e8f5f93fc4dfa6e8fb58c7836e762147917102621a2eb76cefd293d0cf260df6638d9b4427a261597214

View file

@ -0,0 +1,27 @@
--- a/Makefile
+++ b/Makefile
@@ -394,12 +394,14 @@
) > load
chmod 755 load
+AR ?= ar
+RANLIB ?= ranlib
makelib: \
warn-auto.sh systype
( cat warn-auto.sh; \
echo 'main="$$1"; shift'; \
echo 'rm -f "$$main"'; \
- echo 'ar cr "$$main" $${1+"$$@"}'; \
+ echo '$(AR) cr "$$main" $${1+"$$@"}'; \
case "`cat systype`" in \
sunos-5.*) ;; \
unix_sv*) ;; \
@@ -408,7 +410,7 @@
dgux-*) ;; \
hp-ux-*) ;; \
sco*) ;; \
- *) echo 'ranlib "$$main"' ;; \
+ *) echo '$(RANLIB) "$$main"' ;; \
esac \
) > makelib
chmod 755 makelib

View file

@ -0,0 +1,18 @@
https://bugs.gentoo.org/18892
patch by Michael Hanselmann <hansmi@gentoo.org>
--- a/tcpserver.c
+++ b/tcpserver.c
@@ -422,7 +422,11 @@
se = getservbyname(x,"tcp");
if (!se)
strerr_die3x(111,FATAL,"unable to figure out port number for ",x);
+#if __BYTE_ORDER == __BIG_ENDIAN || BYTE_ORDER == BIG_ENDIAN
+ localport = ntohs(se->s_port);
+#else
uint16_unpack_big((char*)&se->s_port,&localport);
+#endif
}
if (!*argv) usage();

View file

@ -0,0 +1,11 @@
--- a/tryip6.c
+++ b/tryip6.c
@@ -2,7 +2,7 @@
#include <sys/socket.h>
#include <netinet/in.h>
-main() {
+int main() {
struct sockaddr_in6 sa;
sa.sin6_family = PF_INET6;
}

View file

@ -0,0 +1,261 @@
--- a/addcr.c
+++ b/addcr.c
@@ -1,7 +1,7 @@
#include "buffer.h"
#include "exit.h"
-main()
+int main()
{
register int n;
register char *x;
--- a/argv0.c
+++ b/argv0.c
@@ -1,7 +1,7 @@
#include "pathexec.h"
#include "strerr.h"
-main(int argc,char **argv,char **envp)
+int main(int argc,char **argv,char **envp)
{
if (argc < 3)
strerr_die1x(100,"argv0: usage: argv0 realname program [ arg ... ]");
--- a/auto-str.c
+++ b/auto-str.c
@@ -11,7 +11,7 @@ void puts(char *s)
if (buffer_puts(&b,s) == -1) _exit(111);
}
-main(int argc,char **argv)
+int main(int argc,char **argv)
{
char *name;
char *value;
--- a/chkshsgr.c
+++ b/chkshsgr.c
@@ -1,7 +1,7 @@
#include <grp.h>
#include "exit.h"
-main()
+int main()
{
gid_t x[4];
--- a/delcr.c
+++ b/delcr.c
@@ -1,7 +1,7 @@
#include "buffer.h"
#include "exit.h"
-main()
+int main()
{
register int n;
register char *x;
--- a/fixcrio.c
+++ b/fixcrio.c
@@ -127,7 +127,7 @@ void doit(int fdleft,int fdright)
_exit(0);
}
-main(int argc,char **argv,char **envp)
+int main(int argc,char **argv,char **envp)
{
int piin[2];
int piout[2];
--- a/install.c
+++ b/install.c
@@ -138,7 +138,7 @@ int mode;
strerr_die6sys(111,FATAL,"unable to chmod .../",subdir,"/",file,": ");
}
-main()
+int main()
{
fdsourcedir = open_read(".");
if (fdsourcedir == -1)
--- a/instcheck.c
+++ b/instcheck.c
@@ -101,7 +101,7 @@ int mode;
perm("",home,"/",file,S_IFREG,uid,gid,mode);
}
-main()
+int main()
{
hier();
_exit(0);
--- a/mconnect-io.c
+++ b/mconnect-io.c
@@ -19,7 +19,7 @@ ssize_t myread(int fd,char *buf,int len)
return read(fd,buf,len);
}
-main()
+int main()
{
int pid;
int wstat;
--- a/rblsmtpd.c
+++ b/rblsmtpd.c
@@ -191,7 +191,7 @@ void rblsmtpd(void)
_exit(0);
}
-main(int argc,char **argv,char **envp)
+int main(int argc,char **argv,char **envp)
{
int flagwantdefaultrbl = 1;
char *x;
--- a/rblspp.c
+++ b/rblspp.c
@@ -165,7 +165,7 @@ void rblspp(void)
_exit(0);
}
-main(int argc,char **argv,char **envp)
+int main(int argc,char **argv,char **envp)
{
char *x;
int opt;
--- a/recordio.c
+++ b/recordio.c
@@ -142,7 +142,7 @@ void doit(int fdleft,int fdright) /* copy 0 -> fdleft, copy fdright -> 1 */
_exit(0);
}
-main(int argc,char **argv,char **envp)
+int main(int argc,char **argv,char **envp)
{
int piin[2];
int piout[2];
--- a/tcpclient.c
+++ b/tcpclient.c
@@ -70,7 +70,7 @@ char ipstr[IP6_FMT];
char seed[128];
-main(int argc,char **argv)
+int main(int argc,char **argv)
{
int fakev4=0;
unsigned long u;
--- a/tcprules.c
+++ b/tcprules.c
@@ -90,7 +90,7 @@ void doaddressdata(void)
if (cdb_make_add(&c,address.s,address.len,data.s,data.len) == -1) die_write();
}
-main(int argc,char **argv)
+int main(int argc,char **argv)
{
int colon;
char *x;
--- a/tcprulescheck.c
+++ b/tcprulescheck.c
@@ -34,7 +34,7 @@ void found(char *data,unsigned int datalen)
_exit(0);
}
-main(int argc,char **argv)
+int main(int argc,char **argv)
{
char *fnrules;
int fd;
--- a/tcpserver.c
+++ b/tcpserver.c
@@ -323,7 +323,7 @@ void sigchld()
}
}
-main(int argc,char **argv)
+int main(int argc,char **argv)
{
char *hostname;
char *portname;
--- a/trycpp.c
+++ b/trycpp.c
@@ -1,4 +1,4 @@
-main()
+int main()
{
#ifdef NeXT
printf("nextstep\n"); exit(0);
--- a/trylsock.c
+++ b/trylsock.c
@@ -1,4 +1,4 @@
-main()
+int main()
{
;
}
--- a/trypoll.c
+++ b/trypoll.c
@@ -2,7 +2,7 @@
#include <fcntl.h>
#include <poll.h>
-main()
+int main()
{
struct pollfd x;
--- a/trysgact.c
+++ b/trysgact.c
@@ -1,6 +1,6 @@
#include <signal.h>
-main()
+int main()
{
struct sigaction sa;
sa.sa_handler = 0;
--- a/trysgprm.c
+++ b/trysgprm.c
@@ -1,6 +1,6 @@
#include <signal.h>
-main()
+int main()
{
sigset_t ss;
--- a/tryshsgr.c
+++ b/tryshsgr.c
@@ -1,4 +1,4 @@
-main()
+int main()
{
short x[4];
--- a/tryvfork.c
+++ b/tryvfork.c
@@ -1,4 +1,4 @@
-main()
+int main()
{
vfork();
}
--- a/trywaitp.c
+++ b/trywaitp.c
@@ -1,7 +1,7 @@
#include <sys/types.h>
#include <sys/wait.h>
-main()
+int main()
{
waitpid(0,0,0);
}
--- a/x86cpuid.c
+++ b/x86cpuid.c
@@ -5,7 +5,7 @@ void nope()
exit(1);
}
-main()
+int main()
{
unsigned long x[4];
unsigned long y[4];

View file

@ -0,0 +1,26 @@
12 Aug 2003; Robin H. Johnson <robbat2@gentoo.org>:
allow larger responses
--- a/rblsmtpd.c
+++ b/rblsmtpd.c
@@ -163,7 +163,7 @@ void rblsmtpd(void)
else
if (!stralloc_copys(&message,"553 ")) nomem();
- if (text.len > 200) text.len = 200;
+ if (text.len > 500) text.len = 500;
if (!stralloc_cat(&message,&text)) nomem();
for (i = 0;i < message.len;++i)
if ((message.s[i] < 32) || (message.s[i] > 126))
--- a/rblspp.c
+++ b/rblspp.c
@@ -142,7 +142,7 @@ void rblspp(void)
else
if (!stralloc_copys(&message,"E553 ")) nomem();
- if (text.len > 200) text.len = 200;
+ if (text.len > 500) text.len = 500;
if (!stralloc_cat(&message,&text)) nomem();
for (i = 0;i < message.len;++i)
if ((message.s[i] < 32) || (message.s[i] > 126))

View file

@ -0,0 +1,89 @@
rely on standard POSIX headers to fix globs of warnings
requires 0.88-protos.patch first
--- a/FILES
+++ b/FILES
@@ -222,7 +222,6 @@ dns_nd6.c
dns_sortip6.c
fmt_xlong.c
ip6_fmt.c
-ip6_scan.c
scan_0x.c
socket_accept6.c
socket_bind6.c
--- a/TARGETS
+++ b/TARGETS
@@ -177,7 +177,6 @@ dns_nd6.o
dns_sortip6.o
fmt_xlong.o
ip6_fmt.o
-ip6_scan.o
scan_0x.o
socket_accept6.o
socket_bind6.o
--- a/ip6.h
+++ b/ip6.h
@@ -4,10 +4,10 @@
#include "byte.h"
extern unsigned int scan_ip6(const char *src,char *ip);
-extern unsigned int fmt_ip6(char *dest,const char *ip);
+extern unsigned int ip6_fmt(char *dest,char ip[16]);
extern unsigned int scan_ip6_flat(const char *src,char *);
-extern unsigned int fmt_ip6_flat(char *dest,const char *);
+extern unsigned int ip6_fmt_flat(char *dest,char[16]);
/*
ip6 address syntax: (h = hex digit), no leading '0' required
--- a/remoteinfo6.c
+++ b/remoteinfo6.c
@@ -1,3 +1,4 @@
+#include <unistd.h>
#include "fmt.h"
#include "buffer.h"
#include "socket.h"
@@ -5,11 +6,12 @@
#include "iopause.h"
#include "timeoutconn.h"
#include "remoteinfo.h"
+#include "readwrite.h"
static struct taia now;
static struct taia deadline;
-static int mywrite(int fd,char *buf,int len)
+static ssize_t mywrite(int fd,char *buf,int len)
{
iopause_fd x;
@@ -27,7 +29,7 @@ static int mywrite(int fd,char *buf,int len)
return write(fd,buf,len);
}
-static int myread(int fd,char *buf,int len)
+static ssize_t myread(int fd,char *buf,int len)
{
iopause_fd x;
--- a/socket_tcp6.c
+++ b/socket_tcp6.c
@@ -3,6 +3,7 @@
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
+#include <unistd.h>
#include "ndelay.h"
#include "socket.h"
#include "haveip6.h"
--- a/dns.h
+++ b/dns.h
@@ -87,6 +87,7 @@ extern int dns_ip4_qualify(stralloc *,stralloc *,const stralloc *);
extern int dns_ip6_qualify_rules(stralloc *,stralloc *,const stralloc *,const stralloc *);
extern int dns_ip6_qualify(stralloc *,stralloc *,const stralloc *);
+extern int dns_name6(stralloc *,char [16]);
extern int dns_name6_domain(char *,char *);
#define DNS_NAME6_DOMAIN (4*16+11)

View file

@ -0,0 +1,36 @@
rely on standard POSIX headers to fix globs of warnings
fixes that overlap with the ipv6 patch
--- a/error.h
+++ b/error.h
@@ -1,7 +1,7 @@
#ifndef ERROR_H
#define ERROR_H
-extern int errno;
+#include <errno.h>
extern int error_intr;
extern int error_nomem;
--- a/dns_random.c
+++ b/dns_random.c
@@ -1,3 +1,4 @@
+#include <unistd.h>
#include "dns.h"
#include "taia.h"
#include "uint32.h"
--- a/dns_rcrw.c
+++ b/dns_rcrw.c
@@ -1,3 +1,4 @@
+#include <unistd.h>
#include "taia.h"
#include "env.h"
#include "byte.h"
--- a/dns_transmit.c
+++ b/dns_transmit.c
@@ -1,3 +1,4 @@
+#include <sys/socket.h>
#include "socket.h"
#include "alloc.h"
#include "error.h"

View file

@ -0,0 +1,11 @@
rely on standard POSIX headers to fix globs of warnings
requires 0.88-protos.patch first
--- a/rblspp.c
+++ b/rblspp.c
@@ -1,3 +1,4 @@
+#include <stdlib.h>
#include "byte.h"
#include "str.h"
#include "scan.h"

View file

@ -0,0 +1,544 @@
rely on standard POSIX headers to fix globs of warnings
--- a/tcprulescheck.c
+++ b/tcprulescheck.c
@@ -1,3 +1,5 @@
+#include <unistd.h>
+
#include "byte.h"
#include "buffer.h"
#include "strerr.h"
--- a/buffer.c
+++ b/buffer.c
@@ -1,6 +1,6 @@
#include "buffer.h"
-void buffer_init(buffer *s,int (*op)(),int fd,char *buf,unsigned int len)
+void buffer_init(buffer *s,ssize_t (*op)(),int fd,char *buf,unsigned int len)
{
s->x = buf;
s->fd = fd;
--- a/buffer.h
+++ b/buffer.h
@@ -1,6 +1,8 @@
#ifndef BUFFER_H
#define BUFFER_H
+#include <sys/types.h>
+
typedef struct buffer {
char *x;
unsigned int p;
@@ -13,7 +15,7 @@ typedef struct buffer {
#define BUFFER_INSIZE 8192
#define BUFFER_OUTSIZE 8192
-extern void buffer_init(buffer *,int (*)(),int,char *,unsigned int);
+extern void buffer_init(buffer *,ssize_t (*)(),int,char *,unsigned int);
extern int buffer_flush(buffer *);
extern int buffer_put(buffer *,char *,unsigned int);
--- a/exit.h
+++ b/exit.h
@@ -1,6 +1,6 @@
#ifndef EXIT_H
#define EXIT_H
-extern void _exit();
+#include <unistd.h>
#endif
--- a/install.c
+++ b/install.c
@@ -1,3 +1,4 @@
+#include <sys/stat.h>
#include "buffer.h"
#include "strerr.h"
#include "error.h"
--- a/readwrite.h
+++ b/readwrite.h
@@ -1,7 +1,6 @@
#ifndef READWRITE_H
#define READWRITE_H
-extern int read();
-extern int write();
+#include <unistd.h>
#endif
--- a/auto-str.c
+++ b/auto-str.c
@@ -5,6 +5,7 @@
char bspace[256];
buffer b = BUFFER_INIT(write,1,bspace,sizeof bspace);
+#define puts _puts
void puts(char *s)
{
if (buffer_puts(&b,s) == -1) _exit(111);
--- a/buffer.h
+++ b/buffer.h
@@ -8,7 +8,7 @@ typedef struct buffer {
unsigned int p;
unsigned int n;
int fd;
- int (*op)();
+ ssize_t (*op)();
} buffer;
#define BUFFER_INIT(op,fd,buf,len) { (buf), 0, (len), (fd), (op) }
--- a/fd_copy.c
+++ b/fd_copy.c
@@ -1,4 +1,5 @@
#include <fcntl.h>
+#include <unistd.h>
#include "fd.h"
int fd_copy(int to,int from)
--- a/fd_move.c
+++ b/fd_move.c
@@ -1,3 +1,4 @@
+#include <unistd.h>
#include "fd.h"
int fd_move(int to,int from)
--- a/socket_tcp.c
+++ b/socket_tcp.c
@@ -1,3 +1,4 @@
+#include <unistd.h>
#include <sys/types.h>
#include <sys/param.h>
#include <sys/socket.h>
--- a/chkshsgr.c
+++ b/chkshsgr.c
@@ -1,8 +1,9 @@
+#include <grp.h>
#include "exit.h"
main()
{
- short x[4];
+ gid_t x[4];
x[0] = x[1] = 0;
if (getgroups(1,x) == 0) if (setgroups(1,x) == -1) _exit(1);
--- a/prot.c
+++ b/prot.c
@@ -1,10 +1,10 @@
#include "hasshsgr.h"
#include "prot.h"
-int prot_gid(int gid)
+int prot_gid(gid_t gid)
{
#ifdef HASSHORTSETGROUPS
- short x[2];
+ gid_t x[2];
x[0] = gid; x[1] = 73; /* catch errors */
if (setgroups(1,x) == -1) return -1;
#else
@@ -13,7 +13,7 @@ int prot_gid(int gid)
return setgid(gid); /* _should_ be redundant, but on some systems it isn't */
}
-int prot_uid(int uid)
+int prot_uid(uid_t uid)
{
return setuid(uid);
}
--- a/prot.h
+++ b/prot.h
@@ -1,7 +1,10 @@
#ifndef PROT_H
#define PROT_H
-extern int prot_gid(int);
-extern int prot_uid(int);
+#include <unistd.h>
+#include <grp.h>
+
+extern int prot_gid(gid_t);
+extern int prot_uid(uid_t);
#endif
--- a/fixcrio.c
+++ b/fixcrio.c
@@ -6,6 +6,7 @@
#include "exit.h"
#include "iopause.h"
#include "pathexec.h"
+#include "fd.h"
#define FATAL "fixcrio: fatal: "
--- a/hier.c
+++ b/hier.c
@@ -1,5 +1,9 @@
#include "auto_home.h"
+extern void h(char *, int, int, int);
+extern void d(char *, char *, int, int, int);
+extern void c(char *, char *, char *, int, int, int);
+
void hier()
{
h(auto_home,-1,-1,02755);
--- a/mconnect-io.c
+++ b/mconnect-io.c
@@ -1,3 +1,4 @@
+#include <signal.h>
#include "sig.h"
#include "wait.h"
#include "fork.h"
@@ -12,7 +13,7 @@ buffer bout;
char inbuf[512];
buffer bin;
-int myread(int fd,char *buf,int len)
+ssize_t myread(int fd,char *buf,int len)
{
buffer_flush(&bout);
return read(fd,buf,len);
--- a/tcprules.c
+++ b/tcprules.c
@@ -1,3 +1,4 @@
+#include <stdio.h>
#include "strerr.h"
#include "stralloc.h"
#include "getln.h"
@@ -6,6 +7,8 @@
#include "fmt.h"
#include "byte.h"
#include "cdb_make.h"
+#include "open.h"
+#include "scan.h"
#define FATAL "tcprules: fatal: "
--- a/pathexec_run.c
+++ b/pathexec_run.c
@@ -1,3 +1,4 @@
+#include <unistd.h>
#include "error.h"
#include "stralloc.h"
#include "str.h"
--- a/recordio.c
+++ b/recordio.c
@@ -8,6 +8,7 @@
#include "fmt.h"
#include "iopause.h"
#include "pathexec.h"
+#include "fd.h"
#define FATAL "recordio: fatal: "
--- a/seek_set.c
+++ b/seek_set.c
@@ -1,7 +1,6 @@
+#include <unistd.h>
#include <sys/types.h>
#include "seek.h"
-#define SET 0 /* sigh */
-
int seek_set(int fd,seek_pos pos)
-{ if (lseek(fd,(off_t) pos,SET) == -1) return -1; return 0; }
+{ if (lseek(fd,(off_t) pos,SEEK_SET) == -1) return -1; return 0; }
--- a/socket_udp.c
+++ b/socket_udp.c
@@ -2,6 +2,7 @@
#include <sys/param.h>
#include <sys/socket.h>
#include <netinet/in.h>
+#include <unistd.h>
#include "ndelay.h"
#include "socket.h"
--- a/tcprulescheck.c
+++ b/tcprulescheck.c
@@ -5,6 +5,7 @@
#include "strerr.h"
#include "env.h"
#include "rules.h"
+#include "open.h"
void found(char *data,unsigned int datalen)
{
the prototypes are added near the top to avoid conflicts w/ipv6 patch
--- a/socket.h
+++ b/socket.h
@@ -3,6 +3,9 @@
#ifndef SOCKET_H
#define SOCKET_H
+extern int socket_tcpnodelay(int);
+extern int socket_ipoptionskill(int);
+
#include "uint16.h"
extern int socket_tcp(void);
--- a/remoteinfo.c
+++ b/remoteinfo.c
@@ -1,3 +1,4 @@
+#include <unistd.h>
#include "fmt.h"
#include "buffer.h"
#include "socket.h"
@@ -5,11 +6,12 @@
#include "iopause.h"
#include "timeoutconn.h"
#include "remoteinfo.h"
+#include "readwrite.h"
static struct taia now;
static struct taia deadline;
-static int mywrite(int fd,char *buf,int len)
+static ssize_t mywrite(int fd,char *buf,int len)
{
iopause_fd x;
@@ -27,7 +29,7 @@ static int mywrite(int fd,char *buf,int len)
return write(fd,buf,len);
}
-static int myread(int fd,char *buf,int len)
+static ssize_t myread(int fd,char *buf,int len)
{
iopause_fd x;
--- a/alloc.c
+++ b/alloc.c
@@ -1,7 +1,5 @@
#include "alloc.h"
#include "error.h"
-extern char *malloc();
-extern void free();
#define ALIGNMENT 16 /* XXX: assuming that this alignment is enough */
#define SPACE 2048 /* must be multiple of ALIGNMENT */
--- a/alloc.h
+++ b/alloc.h
@@ -1,8 +1,10 @@
#ifndef ALLOC_H
#define ALLOC_H
-extern /*@null@*//*@out@*/char *alloc();
-extern void alloc_free();
+#include <stdlib.h>
+
+extern /*@null@*//*@out@*/char *alloc(unsigned int);
+extern void alloc_free(char *);
extern int alloc_re();
#endif
--- a/buffer_0.c
+++ b/buffer_0.c
@@ -1,7 +1,7 @@
#include "readwrite.h"
#include "buffer.h"
-int buffer_0_read(fd,buf,len) int fd; char *buf; int len;
+ssize_t buffer_0_read(fd,buf,len) int fd; char *buf; int len;
{
if (buffer_flush(buffer_1) == -1) return -1;
return read(fd,buf,len);
--- a/buffer_get.c
+++ b/buffer_get.c
@@ -2,7 +2,7 @@
#include "byte.h"
#include "error.h"
-static int oneread(int (*op)(),int fd,char *buf,unsigned int len)
+static int oneread(ssize_t (*op)(),int fd,char *buf,unsigned int len)
{
int r;
--- a/buffer_put.c
+++ b/buffer_put.c
@@ -3,7 +3,7 @@
#include "byte.h"
#include "error.h"
-static int allwrite(int (*op)(),int fd,char *buf,unsigned int len)
+static int allwrite(ssize_t (*op)(),int fd,char *buf,unsigned int len)
{
int w;
--- a/case.h
+++ b/case.h
@@ -4,7 +4,7 @@
extern void case_lowers(char *);
extern void case_lowerb(char *,unsigned int);
extern int case_diffs(char *,char *);
-extern int case_diffb(char *,unsigned int,char *);
+extern int case_diffb(const char *,unsigned int,const char *);
extern int case_starts(char *,char *);
extern int case_startb(char *,unsigned int,char *);
--- a/case_diffb.c
+++ b/case_diffb.c
@@ -1,6 +1,6 @@
#include "case.h"
-int case_diffb(register char *s,register unsigned int len,register char *t)
+int case_diffb(register const char *s,register unsigned int len,const register char *t)
{
register unsigned char x;
register unsigned char y;
--- a/open.h
+++ b/open.h
@@ -1,10 +1,10 @@
#ifndef OPEN_H
#define OPEN_H
-extern int open_read(char *);
-extern int open_excl(char *);
-extern int open_append(char *);
-extern int open_trunc(char *);
-extern int open_write(char *);
+extern int open_read(const char *);
+extern int open_excl(const char *);
+extern int open_append(const char *);
+extern int open_trunc(const char *);
+extern int open_write(const char *);
#endif
--- a/open_read.c
+++ b/open_read.c
@@ -2,5 +2,5 @@
#include <fcntl.h>
#include "open.h"
-int open_read(char *fn)
+int open_read(const char *fn)
{ return open(fn,O_RDONLY | O_NDELAY); }
--- a/open_trunc.c
+++ b/open_trunc.c
@@ -2,5 +2,5 @@
#include <fcntl.h>
#include "open.h"
-int open_trunc(char *fn)
+int open_trunc(const char *fn)
{ return open(fn,O_WRONLY | O_NDELAY | O_TRUNC | O_CREAT,0644); }
--- a/open_write.c
+++ b/open_write.c
@@ -2,5 +2,5 @@
#include <fcntl.h>
#include "open.h"
-int open_write(char *fn)
+int open_write(const char *fn)
{ return open(fn,O_WRONLY | O_NDELAY); }
--- a/openreadclose.c
+++ b/openreadclose.c
@@ -3,7 +3,7 @@
#include "readclose.h"
#include "openreadclose.h"
-int openreadclose(char *fn,stralloc *sa,unsigned int bufsize)
+int openreadclose(const char *fn,stralloc *sa,unsigned int bufsize)
{
int fd;
fd = open_read(fn);
--- a/openreadclose.h
+++ b/openreadclose.h
@@ -3,6 +3,6 @@
#include "stralloc.h"
-extern int openreadclose(char *,stralloc *,unsigned int);
+extern int openreadclose(const char *,stralloc *,unsigned int);
#endif
--- a/stralloc.h
+++ b/stralloc.h
@@ -7,7 +7,7 @@ GEN_ALLOC_typedef(stralloc,char,s,len,a)
extern int stralloc_ready(stralloc *,unsigned int);
extern int stralloc_readyplus(stralloc *,unsigned int);
-extern int stralloc_copy(stralloc *,stralloc *);
+extern int stralloc_copy(stralloc *,const stralloc *);
extern int stralloc_cat(stralloc *,stralloc *);
extern int stralloc_copys(stralloc *,const char *);
extern int stralloc_cats(stralloc *,const char *);
--- a/stralloc_copy.c
+++ b/stralloc_copy.c
@@ -1,7 +1,7 @@
#include "byte.h"
#include "stralloc.h"
-int stralloc_copy(stralloc *sato,stralloc *safrom)
+int stralloc_copy(stralloc *sato,const stralloc *safrom)
{
return stralloc_copyb(sato,safrom->s,safrom->len);
}
--- a/taia.h
+++ b/taia.h
@@ -19,7 +19,7 @@ extern double taia_frac(struct taia *);
extern void taia_add(struct taia *,struct taia *,struct taia *);
extern void taia_sub(struct taia *,struct taia *,struct taia *);
extern void taia_half(struct taia *,struct taia *);
-extern int taia_less(struct taia *,struct taia *);
+extern int taia_less(const struct taia *,const struct taia *);
#define TAIA_PACK 16
extern void taia_pack(char *,struct taia *);
--- a/taia_less.c
+++ b/taia_less.c
@@ -2,7 +2,7 @@
/* XXX: breaks tai encapsulation */
-int taia_less(struct taia *t,struct taia *u)
+int taia_less(const struct taia *t,const struct taia *u)
{
if (t->sec.x < u->sec.x) return 1;
if (t->sec.x > u->sec.x) return 0;
--- a/uint32.h1
+++ b/uint32.h1
@@ -5,7 +5,7 @@ typedef unsigned int uint32;
extern void uint32_pack(char *,uint32);
extern void uint32_pack_big(char *,uint32);
-extern void uint32_unpack(char *,uint32 *);
-extern void uint32_unpack_big(char *,uint32 *);
+extern void uint32_unpack(const char *,uint32 *);
+extern void uint32_unpack_big(const char *,uint32 *);
#endif
--- a/uint32.h2
+++ b/uint32.h2
@@ -5,7 +5,7 @@ typedef unsigned long uint32;
extern void uint32_pack(char *,uint32);
extern void uint32_pack_big(char *,uint32);
-extern void uint32_unpack(char *,uint32 *);
-extern void uint32_unpack_big(char *,uint32 *);
+extern void uint32_unpack(const char *,uint32 *);
+extern void uint32_unpack_big(const char *,uint32 *);
#endif
--- a/uint32_unpack.c
+++ b/uint32_unpack.c
@@ -1,6 +1,6 @@
#include "uint32.h"
-void uint32_unpack(char s[4],uint32 *u)
+void uint32_unpack(const char s[4],uint32 *u)
{
uint32 result;
@@ -15,7 +15,7 @@ void uint32_unpack(char s[4],uint32 *u)
*u = result;
}
-void uint32_unpack_big(char s[4],uint32 *u)
+void uint32_unpack_big(const char s[4],uint32 *u)
{
uint32 result;

View file

@ -0,0 +1,25 @@
--- a/rblsmtpd.c
+++ b/rblsmtpd.c
@@ -195,6 +195,7 @@
{
int flagwantdefaultrbl = 1;
char *x;
+ char *y;
int opt;
ip_init();
@@ -213,6 +214,13 @@
}
}
+ y = env_get("RELAYCLIENT");
+ if (y) {
+ if (!*y) {
+ decision = 1;
+ }
+ }
+
while ((opt = getopt(argc,argv,"bBcCt:r:a:")) != opteof)
switch(opt) {
case 'b': flagrblbounce = 1; break;

View file

@ -0,0 +1,16 @@
https://bugs.gentoo.org/90679
patch by Michael Hanselmann <hansmi@gentoo.org>
--- a/tcprules.c
+++ b/tcprules.c
@@ -127,6 +127,9 @@
for (;;) {
int tmp;
tmp = byte_chr(x + colon,len - colon,':');
+ if (colon == 0 && tmp == len) {
+ strerr_die2x(111, FATAL, "Unable to find colon on non-empty line.");
+ }
colon += tmp;
if (colon == len) continue;
if (byte_equal(x+colon+1,4,"deny") || byte_equal(x+colon+1,5,"allow")) break;

View file

@ -0,0 +1,133 @@
use stdint.h rather than hand guessing the underlying size
--- a/tryulong32.c
+++ /dev/null
@@ -1,11 +0,0 @@
-main()
-{
- unsigned long u;
- u = 1;
- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u;
- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u;
- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u;
- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u;
- if (!u) _exit(0);
- _exit(1);
-}
--- a/tryulong64.c
+++ /dev/null
@@ -1,11 +0,0 @@
-main()
-{
- unsigned long u;
- u = 1;
- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u;
- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u;
- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u;
- u += u; u += u; u += u; u += u; u += u; u += u; u += u; u += u;
- if (!u) _exit(1);
- _exit(0);
-}
--- a/uint32.h1
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef UINT32_H
-#define UINT32_H
-
-typedef unsigned int uint32;
-
-extern void uint32_pack(char *,uint32);
-extern void uint32_pack_big(char *,uint32);
-extern void uint32_unpack(const char *,uint32 *);
-extern void uint32_unpack_big(const char *,uint32 *);
-
-#endif
--- a/uint32.h2
+++ /dev/null
@@ -1,11 +0,0 @@
-#ifndef UINT32_H
-#define UINT32_H
-
-typedef unsigned long uint32;
-
-extern void uint32_pack(char *,uint32);
-extern void uint32_pack_big(char *,uint32);
-extern void uint32_unpack(const char *,uint32 *);
-extern void uint32_unpack_big(const char *,uint32 *);
-
-#endif
--- a/uint64.h1
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef UINT64_H
-#define UINT64_H
-
-/* sysdep: -ulong64 */
-
-typedef unsigned long long uint64;
-
-#endif
--- a/uint64.h2
+++ /dev/null
@@ -1,8 +0,0 @@
-#ifndef UINT64_H
-#define UINT64_H
-
-/* sysdep: +ulong64 */
-
-typedef unsigned long uint64;
-
-#endif
--- /dev/null
+++ b/uint32.h
@@ -0,0 +1,12 @@
+#ifndef UINT32_H
+#define UINT32_H
+
+#include <stdint.h>
+typedef uint32_t uint32;
+
+extern void uint32_pack(char *,uint32);
+extern void uint32_pack_big(char *,uint32);
+extern void uint32_unpack(const char *,uint32 *);
+extern void uint32_unpack_big(const char *,uint32 *);
+
+#endif
--- /dev/null
+++ b/uint64.h
@@ -0,0 +1,8 @@
+#ifndef UINT64_H
+#define UINT64_H
+
+#include <stdint.h>
+
+typedef uint64_t uint64;
+
+#endif
--- a/Makefile
+++ b/Makefile
@@ -788,13 +788,6 @@ uint16_unpack.o: \
compile uint16_unpack.c uint16.h
./compile uint16_unpack.c
-uint32.h: \
-tryulong32.c compile load uint32.h1 uint32.h2
- ( ( ./compile tryulong32.c && ./load tryulong32 && \
- ./tryulong32 ) >/dev/null 2>&1 \
- && cat uint32.h2 || cat uint32.h1 ) > uint32.h
- rm -f tryulong32.o tryulong32
-
uint32_pack.o: \
compile uint32_pack.c uint32.h
./compile uint32_pack.c
@@ -803,10 +796,6 @@ uint32_unpack.o: \
compile uint32_unpack.c uint32.h
./compile uint32_unpack.c
-uint64.h: \
-choose compile load tryulong64.c uint64.h1 uint64.h2
- ./choose clr tryulong64 uint64.h1 uint64.h2 > uint64.h
-
unix.a: \
makelib alloc.o alloc_re.o buffer.o buffer_0.o buffer_1.o buffer_2.o \
buffer_copy.o buffer_get.o buffer_put.o env.o error.o error_str.o \

View file

@ -0,0 +1,11 @@
-include Makefile.*
.PHONY: all
.SUFFIXES:
.SUFFIXES: .cdb
all: $(CDBS)
@echo = CDBLIST: $(CDBS)
%.cdb:: %
@echo + Rebuilding $* from $<
tcprules $@ $@.tmp < $<

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<longdescription>
ucspi-tcp is a replacement for inetd. It consists of tcpserver and
tcpclient. tcpserver can listen on sockets and start programs in an
inetd like fashion except that information like the IP address and
remote port are communicated via environment variables. tcpclient makes
a TCP connection and runs a program of your choice. It sets up the same
environment variables as tcpserver.
</longdescription>
</pkgmetadata>

View file

@ -0,0 +1,79 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit qmail toolchain-funcs
DESCRIPTION="Collection of tools for managing UNIX services"
HOMEPAGE="https://cr.yp.to/ucspi-tcp.html"
SRC_URI="
https://cr.yp.to/${PN}/${P}.tar.gz
mirror://qmail/ucspi-rss.diff
http://smarden.org/pape/djb/manpages/${P}-man.tar.gz
http://xs3.b92.net/tomislavr/${P}-rblspp.patch
ipv6? ( https://www.fefe.de/ucspi/${P}-ipv6.diff20.bz2 )"
LICENSE="public-domain"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 ~hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris"
IUSE="ipv6 qmail-spp selinux"
RESTRICT="test"
RDEPEND="
!app-doc/ucspi-tcp-man
selinux? ( sec-policy/selinux-ucspitcp )"
src_prepare() {
eapply "${FILESDIR}"/${PV}-protos.patch
if use ipv6; then
eapply "${WORKDIR}"/${P}-ipv6.diff20
eapply "${FILESDIR}"/${PV}-protos-ipv6.patch
eapply "${FILESDIR}"/${PV}-tcprules.patch #135571
eapply "${FILESDIR}"/${PV}-bigendian.patch #18892
eapply "${FILESDIR}"/${PV}-implicit-int-ipv6.patch
else
eapply "${FILESDIR}"/${PV}-protos-no-ipv6.patch
fi
eapply "${DISTDIR}"/ucspi-rss.diff
eapply "${FILESDIR}"/${PV}-rblsmtpd-ignore-on-RELAYCLIENT.patch
eapply "${DISTDIR}"/${P}-rblspp.patch
eapply "${FILESDIR}"/${PV}-protos-rblspp.patch
eapply "${FILESDIR}"/${PV}-large-responses.patch
eapply "${FILESDIR}"/${PV}-uint-headers.patch
eapply "${FILESDIR}"/${PV}-ar-ranlib.patch
eapply "${FILESDIR}"/${PV}-implicit-int.patch
eapply_user
}
src_configure() {
local cc=$(head -n 1 ./conf-cc | sed -e "s#^g\?cc\s\+\(-O2\)\?#$(tc-getCC) #")
local ld=$(head -n 1 ./conf-ld | sed -e "s#^g\?cc\s\+\(-s\)\?#$(tc-getCC) #")
echo "${cc} ${CFLAGS} ${CPPFLAGS}" > ./conf-cc || die 'Patching conf-cc failed.'
echo "${ld} ${LDFLAGS}" > ./conf-ld || die 'Patching conf-ld failed.'
# The AR/RANLIB logic probably should get moved to the qmail eclass.
# See also the patch above for generating the "makelib" script.
tc-export AR RANLIB
echo "${EPREFIX}/usr/" > conf-home || die
}
src_install() {
dobin tcpserver tcprules tcprulescheck argv0 recordio tcpclient *\@ \
tcpcat mconnect mconnect-io addcr delcr fixcrio rblsmtpd
if use qmail-spp; then
insinto "${QMAIL_HOME}"/plugins
insopts -m 755
doins rblspp
fi
doman "${WORKDIR}"/${P}-man/*.[1-8]
dodoc CHANGES FILES README SYSDEPS TARGETS TODO VERSION
insinto /etc/tcprules.d
newins "${FILESDIR}"/tcprules-Makefile Makefile
}