diff options
-rw-r--r-- | network/redir/README | 3 | ||||
-rw-r--r-- | network/redir/patches/01_fix_max_bandwidth_docs.dpatch | 61 | ||||
-rw-r--r-- | network/redir/patches/02_use_ntohs.dpatch | 50 | ||||
-rw-r--r-- | network/redir/patches/03_fix_tcp_wrappers.dpatch | 32 | ||||
-rw-r--r-- | network/redir/patches/04_fix_timeouts.dpatch | 45 | ||||
-rw-r--r-- | network/redir/patches/05_pedantic.dpatch | 183 | ||||
-rw-r--r-- | network/redir/patches/06_fix_shaper_buffer.dpatch | 63 | ||||
-rw-r--r-- | network/redir/patches/07_cosmetics.dpatch | 28 | ||||
-rw-r--r-- | network/redir/patches/08_add_wrappers.dpatch | 22 | ||||
-rw-r--r-- | network/redir/patches/09_add_linux_software_map.dpatch | 23 | ||||
-rw-r--r-- | network/redir/patches/15_deb_cosmetics.dpatch | 19 | ||||
-rw-r--r-- | network/redir/patches/20_do_not_strip.dpatch | 19 | ||||
-rw-r--r-- | network/redir/patches/25_fix_setsockopt.dpatch | 62 | ||||
-rw-r--r-- | network/redir/patches/30_fix_manpage.dpatch | 183 | ||||
-rw-r--r-- | network/redir/redir.SlackBuild | 97 | ||||
-rw-r--r-- | network/redir/redir.info | 10 | ||||
-rw-r--r-- | network/redir/slack-desc | 19 |
17 files changed, 919 insertions, 0 deletions
diff --git a/network/redir/README b/network/redir/README new file mode 100644 index 0000000000..21a66f706f --- /dev/null +++ b/network/redir/README @@ -0,0 +1,3 @@ +redir is all you need to redirect traffic across firewalls. +The functionality of inetd/tcpd and "redir" will allow you to +do everything you need without screwy telnet/ftp etc gateways. diff --git a/network/redir/patches/01_fix_max_bandwidth_docs.dpatch b/network/redir/patches/01_fix_max_bandwidth_docs.dpatch new file mode 100644 index 0000000000..1ff9a7e6d5 --- /dev/null +++ b/network/redir/patches/01_fix_max_bandwidth_docs.dpatch @@ -0,0 +1,61 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 01_fix_max_bandwidth_docs.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Fix docs and --help to show --max_bandwidth instead of --maxbandwidth + +@DPATCH@ +diff -urNad redir-2.2.1~/redir.c redir-2.2.1/redir.c +--- redir-2.2.1~/redir.c 1999-12-26 15:50:06.000000000 -0500 ++++ redir-2.2.1/redir.c 2005-10-22 21:21:56.849499952 -0400 +@@ -233,7 +233,7 @@ + #ifndef NO_SHAPER + /* options for bandwidth */ + fprintf(stderr, "\t\t--bufsize=<octets>\tsize of the buffer\n"); +- fprintf(stderr, "\t\t--maxbandwidth=<bit-per-sec>\tlimit the bandwidth\n"); ++ fprintf(stderr, "\t\t--max_bandwidth=<bit-per-sec>\tlimit the bandwidth\n"); + fprintf(stderr, "\t\t--random_wait=<millisec>\twait before each packet\n"); + fprintf(stderr, "\t\t--wait_in_out=<flag>\t1 wait for in, 2 out, 3 in&out\n"); + /* end options for bandwidth */ +diff -urNad redir-2.2.1~/redir.man redir-2.2.1/redir.man +--- redir-2.2.1~/redir.man 1999-12-26 15:52:24.000000000 -0500 ++++ redir-2.2.1/redir.man 2005-10-22 21:22:28.882630176 -0400 +@@ -18,7 +18,7 @@ + .I --lport=port + .I --cport=port + .RB [ \--bufsize=n ] +-.RB [ \--maxbandwidth=n ] ++.RB [ \--max_bandwidth=n ] + .RB [ \--random_wait=n ] + .RB [ \--wait_in_out=n ] + .ll -8 +@@ -35,7 +35,7 @@ + .RB [ \--connect=host:port ] + .I --cport=port + .RB [ \--bufsize=n ] +-.RB [ \--maxbandwidth=n ] ++.RB [ \--max_bandwidth=n ] + .RB [ \--random_wait=n ] + .RB [ \--wait_in_out=n ] + .ll -8 +@@ -102,9 +102,9 @@ + .TP + .B \--bufsize n + Set the bufsize (defaut 4096) in bytes. Can be used combined with +---maxbandwidth or --random_wait to simulate a slow connection. ++--max_bandwidth or --random_wait to simulate a slow connection. + .TP +-.B \--maxbandwidth n ++.B \--max_bandwidth n + Reduce the bandwidth to be no more than n bits/sec. The algorithme is + basic, the goal is to simulate a slow connection, so there is no pic + acceptance. +@@ -115,7 +115,7 @@ + than the bufsize (see also --bufsize). + .TP + .B \--wait_in_out n +-Apply --maxbandwidth and --random_wait for input if n=1, output if n=2 and ++Apply --max_bandwidth and --random_wait for input if n=1, output if n=2 and + both if n=3. + .SH "SEE ALSO" + inetd(1) diff --git a/network/redir/patches/02_use_ntohs.dpatch b/network/redir/patches/02_use_ntohs.dpatch new file mode 100644 index 0000000000..58622b0ddf --- /dev/null +++ b/network/redir/patches/02_use_ntohs.dpatch @@ -0,0 +1,50 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 02_use_ntohs.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: use ntohs() to generate comprehensible debug()s and syslog()s. + +@DPATCH@ +diff -urNad redir-2.2.1~/redir.c redir-2.2.1/redir.c +--- redir-2.2.1~/redir.c 1999-12-26 15:50:06.000000000 -0500 ++++ redir-2.2.1/redir.c 2005-10-22 21:29:55.491735272 -0400 +@@ -745,7 +745,7 @@ + } + + debug1("peer IP is %s\n", inet_ntoa(client.sin_addr)); +- debug1("peer socket is %d\n", client.sin_port); ++ debug1("peer socket is %d\n", ntohs(client.sin_port)); + + /* + * Double fork here so we don't have to wait later +@@ -871,8 +871,8 @@ + strcpy(tmp2, inet_ntoa(target->sin_addr)); + + syslog(LOG_NOTICE, "connecting %s/%d to %s/%d", +- tmp1, client.sin_port, +- tmp2, target->sin_port); ++ tmp1, ntohs(client.sin_port), ++ tmp2, ntohs(target->sin_port)); + } + + /* do proxy stuff */ +@@ -1066,7 +1066,7 @@ + + if (!getpeername(0, (struct sockaddr *) &client, &client_size)) { + debug1("peer IP is %s\n", inet_ntoa(client.sin_addr)); +- debug1("peer socket is %d\n", client.sin_port); ++ debug1("peer socket is %d\n", ntohs(client.sin_port)); + } + if ((targetsock = socket(AF_INET, SOCK_STREAM, 0)) < 0) { + perror("target: socket"); +@@ -1109,8 +1109,8 @@ + + if (dosyslog) { + syslog(LOG_NOTICE, "connecting %s/%d to %s/%d", +- inet_ntoa(client.sin_addr), client.sin_port, +- target_ip, target.sin_port); ++ inet_ntoa(client.sin_addr), ntohs(client.sin_port), ++ target_ip, ntohs(target.sin_port)); + } + + /* Just start copying - one side of the loop is stdin - 0 */ diff --git a/network/redir/patches/03_fix_tcp_wrappers.dpatch b/network/redir/patches/03_fix_tcp_wrappers.dpatch new file mode 100644 index 0000000000..8709432ea2 --- /dev/null +++ b/network/redir/patches/03_fix_tcp_wrappers.dpatch @@ -0,0 +1,32 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 03_fix_tcp_wrappers.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: fix calls to tcp wrappers + +@DPATCH@ +diff -urNad redir-2.2.1~/redir.c redir-2.2.1/redir.c +--- redir-2.2.1~/redir.c 2005-10-22 22:10:11.439455392 -0400 ++++ redir-2.2.1/redir.c 2005-10-22 22:10:51.625346208 -0400 +@@ -802,8 +802,8 @@ + #ifdef USE_TCP_WRAPPERS + request_init(&request, RQ_DAEMON, ident, RQ_FILE, clisock, 0); + sock_host(&request); +- sock_hostname(&request); +- sock_hostaddr(&request); ++ sock_hostname(request.client); ++ sock_hostaddr(request.client); + + if (!hosts_access(&request)) { + refuse(&request); +@@ -1057,8 +1057,8 @@ + #ifdef USE_TCP_WRAPPERS + request_init(&request, RQ_DAEMON, ident, RQ_FILE, 0, 0); + sock_host(&request); +- sock_hostname(&request); +- sock_hostaddr(&request); ++ sock_hostname(request.client); ++ sock_hostaddr(request.client); + + if (!hosts_access(&request)) + refuse(&request); diff --git a/network/redir/patches/04_fix_timeouts.dpatch b/network/redir/patches/04_fix_timeouts.dpatch new file mode 100644 index 0000000000..87c1984517 --- /dev/null +++ b/network/redir/patches/04_fix_timeouts.dpatch @@ -0,0 +1,45 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 04_fix_timeouts.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Apply a close approximation of Robert de Bath's patch for bug #142382 + +@DPATCH@ +diff -urNad redir-2.2.1~/redir.c redir-2.2.1/redir.c +--- redir-2.2.1~/redir.c 2005-10-22 22:44:39.504061784 -0400 ++++ redir-2.2.1/redir.c 2005-10-22 22:47:14.746461352 -0400 +@@ -598,10 +598,6 @@ + /* Record start time */ + start_time = (unsigned int) time(NULL); + +- /* Set up timeout */ +- timeout.tv_sec = timeout_secs; +- timeout.tv_usec = 0; +- + /* file descriptor bits */ + FD_ZERO(&iofds); + FD_SET(insock, &iofds); +@@ -618,14 +614,21 @@ + while(1) { + (void) memcpy(&c_iofds, &iofds, sizeof(iofds)); + ++ /* Set up timeout, Linux returns seconds left in this structure ++ * so we have to reset it before each select(). */ ++ timeout.tv_sec = timeout_secs; ++ timeout.tv_usec = 0; ++ + + if (select(max_fd + 1, + &c_iofds, + (fd_set *)0, + (fd_set *)0, + (timeout_secs ? &timeout : NULL)) <= 0) { +- /* syslog(LLEV,"connection timeout: %d sec",timeout.tv_sec);*/ +- break; ++ if (dosyslog) { ++ syslog(LOG_NOTICE,"connection timeout: %d sec",timeout_secs); ++ } ++ break; + } + + if(FD_ISSET(insock, &c_iofds)) { diff --git a/network/redir/patches/05_pedantic.dpatch b/network/redir/patches/05_pedantic.dpatch new file mode 100644 index 0000000000..ff7b1a9fbf --- /dev/null +++ b/network/redir/patches/05_pedantic.dpatch @@ -0,0 +1,183 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 05_pedantic.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: changes to make clean up compilation + +@DPATCH@ +diff -urNad redir-2.2.1~/Makefile redir-2.2.1/Makefile +--- redir-2.2.1~/Makefile 2005-10-22 23:11:41.000000000 -0400 ++++ redir-2.2.1/Makefile 2005-10-22 23:11:48.818368360 -0400 +@@ -32,7 +32,7 @@ + # if your system lacks getopt_long, remove the comment from this line + OBJS = redir.o $(GETOPT_OBJS) + +-CFLAGS = -O2 -Wall $(STR_CFLAGS) $(WRAP_CFLAGS) $(EXTRA_CFLAGS) ++CFLAGS = -O2 -Wall --pedantic $(STR_CFLAGS) $(WRAP_CFLAGS) $(EXTRA_CFLAGS) + LDFLAGS = -s + + # solaris, and others, may also need these libraries to link +diff -urNad redir-2.2.1~/redir.c redir-2.2.1/redir.c +--- redir-2.2.1~/redir.c 2005-10-22 23:11:48.282449832 -0400 ++++ redir-2.2.1/redir.c 2005-10-22 23:12:23.201141384 -0400 +@@ -73,6 +73,7 @@ + #include <sys/types.h> + #include <sys/socket.h> + #include <sys/time.h> ++#include <time.h> + #include <sys/wait.h> + #include <netinet/in.h> + #include <arpa/inet.h> +@@ -460,7 +461,7 @@ + int lport, rport; + int remip[4]; + int localsock; +- int socksize = sizeof(struct sockaddr_in); ++ size_t socksize = sizeof(struct sockaddr_in); + + struct sockaddr_in newsession; + struct sockaddr_in sockname; +@@ -509,7 +510,7 @@ + if(getsockname(localsock, (struct sockaddr *)&sockname, &socksize) < 0) { + perror("getsockname"); + if (dosyslog) +- syslog(LOG_ERR, "getsockname failed: %m"); ++ syslog(LOG_ERR, "getsockname failed: %s",strerror(errno)); + exit(1); + } + +@@ -562,7 +563,7 @@ + switch(fork()) + { + case -1: /* Error */ +- syslog(LOG_ERR, "Couldn't fork: %m"); ++ syslog(LOG_ERR, "Couldn't fork: %s",strerror(errno)); + _exit(1); + case 0: /* Child */ + { +@@ -723,7 +724,7 @@ + int clisock; + int targetsock; + struct sockaddr_in client; +- int clientlen = sizeof(client); ++ size_t clientlen = sizeof(client); + int accept_errno; + + debug("top of accept loop\n"); +@@ -734,7 +735,7 @@ + perror("server: accept"); + + if (dosyslog) +- syslog(LOG_ERR, "accept failed: %m"); ++ syslog(LOG_ERR, "accept failed: %s",strerror(errno)); + + /* determine if this error is fatal */ + switch(accept_errno) { +@@ -768,7 +769,7 @@ + perror("(server) fork"); + + if (dosyslog) +- syslog(LOG_ERR, "(server) fork failed: %m"); ++ syslog(LOG_ERR, "(server) fork failed: %s",strerror(errno)); + + _exit(1); + case 0: /* Child */ +@@ -795,7 +796,7 @@ + perror("(child) fork"); + + if (dosyslog) +- syslog(LOG_ERR, "(child) fork failed: %m"); ++ syslog(LOG_ERR, "(child) fork failed: %s",strerror(errno)); + + _exit(1); + case 0: /* Child */ +@@ -826,7 +827,7 @@ + perror("target: socket"); + + if (dosyslog) +- syslog(LOG_ERR, "socket failed: %m"); ++ syslog(LOG_ERR, "socket failed: %s",strerror(errno)); + + _exit(1); + } +@@ -850,7 +851,7 @@ + only be different if the input value is 0 (let the system pick a + port) */ + if (dosyslog) +- syslog(LOG_ERR, "bind failed: %m"); ++ syslog(LOG_ERR, "bind failed: %s",strerror(errno)); + + _exit(1); + } +@@ -862,7 +863,7 @@ + perror("target: connect"); + + if (dosyslog) +- syslog(LOG_ERR, "bind failed: %m"); ++ syslog(LOG_ERR, "bind failed: %s",strerror(errno)); + + _exit(1); + } +@@ -923,7 +924,7 @@ + perror("server: socket"); + + if (dosyslog) +- syslog(LOG_ERR, "socket failed: %m"); ++ syslog(LOG_ERR, "socket failed: %s",strerror(errno)); + + exit(1); + } +@@ -962,7 +963,7 @@ + perror("server: bind"); + + if (dosyslog) +- syslog(LOG_ERR, "bind failed: %m"); ++ syslog(LOG_ERR, "bind failed: %s",strerror(errno)); + + exit(1); + } +@@ -980,7 +981,7 @@ + perror("server: listen"); + + if (dosyslog) +- syslog(LOG_ERR, "listen failed: %m"); ++ syslog(LOG_ERR, "listen failed: %s",strerror(errno)); + + exit(1); + } +@@ -1059,7 +1060,7 @@ + if (inetd) { + int targetsock; + struct sockaddr_in client; +- int client_size = sizeof(client); ++ size_t client_size = sizeof(client); + + #ifdef USE_TCP_WRAPPERS + request_init(&request, RQ_DAEMON, ident, RQ_FILE, 0, 0); +@@ -1079,7 +1080,7 @@ + perror("target: socket"); + + if (dosyslog) +- syslog(LOG_ERR, "targetsock failed: %m"); ++ syslog(LOG_ERR, "targetsock failed: %s",strerror(errno)); + + exit(1); + } +@@ -1097,7 +1098,7 @@ + perror("bind_addr: cannot bind to forcerd outgoing addr"); + + if (dosyslog) +- syslog(LOG_ERR, "bind failed: %m"); ++ syslog(LOG_ERR, "bind failed: %s",strerror(errno)); + + exit(1); + } +@@ -1109,7 +1110,7 @@ + perror("target: connect"); + + if (dosyslog) +- syslog(LOG_ERR, "connect failed: %m"); ++ syslog(LOG_ERR, "connect failed: %s",strerror(errno)); + + exit(1); + } diff --git a/network/redir/patches/06_fix_shaper_buffer.dpatch b/network/redir/patches/06_fix_shaper_buffer.dpatch new file mode 100644 index 0000000000..47c1e132ea --- /dev/null +++ b/network/redir/patches/06_fix_shaper_buffer.dpatch @@ -0,0 +1,63 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 06_fix_shaper_buffer.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: properly allocate copyloop buffer + +@DPATCH@ +diff -urNad redir-2.2.1~/redir.c redir-2.2.1/redir.c +--- redir-2.2.1~/redir.c 2005-10-22 23:20:05.235901424 -0400 ++++ redir-2.2.1/redir.c 2005-10-22 23:22:20.198384008 -0400 +@@ -260,7 +260,7 @@ + #endif + int *transproxy, + #ifndef NO_SHAPER +- unsigned int * bufsize, ++ unsigned int * bufsizeout, + int * max_bandwidth, + int * random_wait, + int * wait_in_out, +@@ -367,7 +367,7 @@ + + #ifndef NO_SHAPER + case 'z': +- *bufsize = (unsigned int)atol(optarg); ++ *bufsizeout = (unsigned int)atol(optarg); + break; + + case 'm': +@@ -594,7 +594,7 @@ + unsigned long bytes_in = 0; + unsigned long bytes_out = 0; + unsigned int start_time, end_time; +- char buf[bufsize]; ++ char* buf = malloc(bufsize); + + /* Record start time */ + start_time = (unsigned int) time(NULL); +@@ -637,7 +637,7 @@ + } + + if(FD_ISSET(insock, &c_iofds)) { +- if((bytes = read(insock, buf, sizeof(buf))) <= 0) ++ if((bytes = read(insock, buf, bufsize)) <= 0) + break; + #ifndef NO_FTP + if (ftp & FTP_PORT) +@@ -652,7 +652,7 @@ + bytes_out += bytes; + } + if(FD_ISSET(outsock, &c_iofds)) { +- if((bytes = read(outsock, buf, sizeof(buf))) <= 0) ++ if((bytes = read(outsock, buf, bufsize)) <= 0) + break; + /* if we're correcting for PASV on ftp redirections, then + fix buf and bytes to have the new address, among other +@@ -689,6 +689,7 @@ + syslog(LOG_NOTICE, "disconnect %d secs, %ld in %ld out", + (end_time - start_time), bytes_in, bytes_out); + } ++ free(buf); + return; + } + diff --git a/network/redir/patches/07_cosmetics.dpatch b/network/redir/patches/07_cosmetics.dpatch new file mode 100644 index 0000000000..a692c73815 --- /dev/null +++ b/network/redir/patches/07_cosmetics.dpatch @@ -0,0 +1,28 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 07_cosmetics.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Cosmetic fixes which could be applied upstream + +@DPATCH@ +diff -urNad redir-2.2.1~/redir.man redir-2.2.1/redir.man +--- redir-2.2.1~/redir.man 2005-10-22 21:41:51.284918168 -0400 ++++ redir-2.2.1/redir.man 2005-10-22 21:42:42.115190792 -0400 +@@ -73,7 +73,7 @@ + Specify program name to be used for TCP wrapper checks and syslog logging. + .TP + .B --timeout +-Timeout and close the connection after n seconds on inactivity. ++Timeout and close the connection after n seconds of inactivity. + .TP + .B \--syslog + Log information to syslog. +@@ -90,7 +90,7 @@ + undesirable. + .TP + .B \--transproxy +-On a linux system with transparany proxying enables, causes redir to ++On a linux system with transparent proxying enabled, causes redir to + make connections appear as if they had come from their true origin. + (see transproxy.txt in the source archive) + .TP diff --git a/network/redir/patches/08_add_wrappers.dpatch b/network/redir/patches/08_add_wrappers.dpatch new file mode 100644 index 0000000000..57e4e7a875 --- /dev/null +++ b/network/redir/patches/08_add_wrappers.dpatch @@ -0,0 +1,22 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 08_add_wrappers.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Enabling TCP wrapper support + +@DPATCH@ + +--- redir-2.2.1.orig/Makefile ++++ redir-2.2.1/Makefile +@@ -9,8 +9,8 @@ + # if you would like support for TCP wrappers (and have libwrap.a + # installed), remove these comments. + +-WRAP_CFLAGS = # -DUSE_TCP_WRAPPERS +-WRAP_LIBS = # -lwrap ++WRAP_CFLAGS = -DUSE_TCP_WRAPPERS ++WRAP_LIBS = -lwrap + + # if your system needs any additional libraries (solaris, for example, + # needs the ones commented out below), edit this line. + diff --git a/network/redir/patches/09_add_linux_software_map.dpatch b/network/redir/patches/09_add_linux_software_map.dpatch new file mode 100644 index 0000000000..0274957ca7 --- /dev/null +++ b/network/redir/patches/09_add_linux_software_map.dpatch @@ -0,0 +1,23 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 09_add_linux_software_map.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Add linux software map file + +@DPATCH@ + +--- redir-2.2.1.orig/redir-2.2.lsm ++++ redir-2.2.1/redir-2.2.lsm +@@ -0,0 +1,11 @@ ++Begin3 ++Title: redir ++Version: 2.2 ++Entered-date: 15DEC1999 ++Description: TCP Port redirector (for firewalls etc). ++Keywords: tcp port redirector bouncer proxy ++Author: sammy@oh.verio.com ++Primary-site: sunsite.unc.edu /pub/Linux/system/Network/daemons ++ 39936 redir-2.2.tar.gz ++Copying-policy: GPL ++End + diff --git a/network/redir/patches/15_deb_cosmetics.dpatch b/network/redir/patches/15_deb_cosmetics.dpatch new file mode 100644 index 0000000000..840d800125 --- /dev/null +++ b/network/redir/patches/15_deb_cosmetics.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 15_deb_cosmetics.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Cosmetic changes applicable only to debian + +@DPATCH@ +diff -urNad redir-2.2.1~/redir.man redir-2.2.1/redir.man +--- redir-2.2.1~/redir.man 2005-10-22 21:47:44.067287096 -0400 ++++ redir-2.2.1/redir.man 2005-10-22 21:48:34.218662928 -0400 +@@ -92,7 +92,7 @@ + .B \--transproxy + On a linux system with transparent proxying enabled, causes redir to + make connections appear as if they had come from their true origin. +-(see transproxy.txt in the source archive) ++(see /usr/share/doc/redir/transproxy.txt) + .TP + .B \--connect + Redirects connections through an HTTP proxy which supports the CONNECT diff --git a/network/redir/patches/20_do_not_strip.dpatch b/network/redir/patches/20_do_not_strip.dpatch new file mode 100644 index 0000000000..c47e13e1b0 --- /dev/null +++ b/network/redir/patches/20_do_not_strip.dpatch @@ -0,0 +1,19 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 20_do_not_strip.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: don't strip by default. let dh_strip take care of it. + +@DPATCH@ +diff -urNad redir-2.2.1~/Makefile redir-2.2.1/Makefile +--- redir-2.2.1~/Makefile 2007-08-15 14:53:41.908911693 -0400 ++++ redir-2.2.1/Makefile 2007-08-15 14:53:59.409909018 -0400 +@@ -33,7 +33,7 @@ + OBJS = redir.o $(GETOPT_OBJS) + + CFLAGS = -O2 -Wall --pedantic $(STR_CFLAGS) $(WRAP_CFLAGS) $(EXTRA_CFLAGS) +-LDFLAGS = -s ++LDFLAGS = # -s + + # solaris, and others, may also need these libraries to link + # also edit here if you're using the TCP wrappers code diff --git a/network/redir/patches/25_fix_setsockopt.dpatch b/network/redir/patches/25_fix_setsockopt.dpatch new file mode 100644 index 0000000000..0623198f72 --- /dev/null +++ b/network/redir/patches/25_fix_setsockopt.dpatch @@ -0,0 +1,62 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 25_fix_setsockopt.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Ensure that the server socket has SO_REUSEADDR and SO_LINGER set properly. + +@DPATCH@ +diff -urNad redir~/redir.c redir/redir.c +--- redir~/redir.c 2009-03-03 17:35:12.022427586 -0500 ++++ redir/redir.c 2009-03-03 17:45:28.998426896 -0500 +@@ -90,8 +90,8 @@ + /* let's set up some globals... */ + int dodebug = 0; + int dosyslog = 0; +-unsigned char reuse_addr = 1; +-unsigned char linger_opt = 0; ++int reuse_addr = 1; /* allow address reuse */ ++struct linger linger_opt = { 0, 0}; /* do not linger */ + char * bind_addr = NULL; + struct sockaddr_in addr_out; + int timeout = 0; +@@ -906,6 +906,7 @@ + + int servsock; + struct sockaddr_in server; ++ int ret; + + /* + * Get a socket to work with. This socket will +@@ -944,8 +945,30 @@ + server.sin_addr.s_addr = htonl(inet_addr("0.0.0.0")); + } + +- setsockopt(servsock, SOL_SOCKET, SO_REUSEADDR, &reuse_addr, sizeof(reuse_addr)); +- setsockopt(servsock, SOL_SOCKET, SO_LINGER, &linger_opt, sizeof(SO_LINGER)); ++ ret = setsockopt(servsock, SOL_SOCKET, SO_REUSEADDR, &reuse_addr, sizeof(reuse_addr)); ++ if (ret != 0) { ++ if(fail) { ++ return -1; ++ } ++ else { ++ perror("server: setsockopt (SO_REUSEADDR)"); ++ if (dosyslog) ++ syslog(LOG_ERR, "setsockopt failed with SO_REUSEADDR: %s",strerror(errno)); ++ exit(1); ++ } ++ } ++ ret = setsockopt(servsock, SOL_SOCKET, SO_LINGER, &linger_opt, sizeof(linger_opt)); ++ if (ret != 0) { ++ if(fail) { ++ return -1; ++ } ++ else { ++ perror("server: setsockopt (SO_LINGER)"); ++ if (dosyslog) ++ syslog(LOG_ERR, "setsockopt failed with SO_LINGER: %s",strerror(errno)); ++ exit(1); ++ } ++ } + + /* + * Try to bind the address to the socket. diff --git a/network/redir/patches/30_fix_manpage.dpatch b/network/redir/patches/30_fix_manpage.dpatch new file mode 100644 index 0000000000..3a36bc30ea --- /dev/null +++ b/network/redir/patches/30_fix_manpage.dpatch @@ -0,0 +1,183 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 30_fix_manpage.dpatch by Daniel Kahn Gillmor <dkg@fifthhorseman.net> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Clean up questionable formatting in man page. + +@DPATCH@ +diff -urNad redir~/redir.man redir/redir.man +--- redir~/redir.man 2009-03-03 18:55:37.790428922 -0500 ++++ redir/redir.man 2009-03-03 18:58:48.486428715 -0500 +@@ -1,43 +1,42 @@ +-.PU + .TH REDIR 1 local + .SH NAME +-redir \- redirect tcp connections ++redir - redirect tcp connections + .SH SYNOPSIS + .ll +8 + .B redir +-.RB [ \--laddr=incoming.ip.address ] +-.RB [ \--caddr=host ] +-.RB [ \--debug ] +-.RB [ \--syslog +-.RB [ \--name=str ] +-.RB [ \--timeout=n ] +-.RB [ \--bind_addr=my.other.ip.address ] +-.RB [ \--ftp=type ] +-.RB [ \--transproxy ] +-.RB [ \--connect=host:port ] +-.I --lport=port +-.I --cport=port +-.RB [ \--bufsize=n ] +-.RB [ \--max_bandwidth=n ] +-.RB [ \--random_wait=n ] +-.RB [ \--wait_in_out=n ] ++.RB [ \-\-laddr=incoming.ip.address ] ++.RB [ \-\-caddr=host ] ++.RB [ \-\-debug ] ++.RB [ \-\-syslog ] ++.RB [ \-\-name=str ] ++.RB [ \-\-timeout=n ] ++.RB [ \-\-bind_addr=my.other.ip.address ] ++.RB [ \-\-ftp=type ] ++.RB [ \-\-transproxy ] ++.RB [ \-\-connect=host:port ] ++.I \-\-lport=port ++.I \-\-cport=port ++.RB [ \-\-bufsize=n ] ++.RB [ \-\-max_bandwidth=n ] ++.RB [ \-\-random_wait=n ] ++.RB [ \-\-wait_in_out=n ] + .ll -8 + .br + .B redir +-.RB \--inetd +-.RB [ \--caddr=host ] +-.RB [ \--debug ] +-.RB [ \--syslog +-.RB [ \--name=str ] +-.RB [ \--timeout=n ] +-.RB [ \--ftp=type ] +-.RB [ \--transproxy ] +-.RB [ \--connect=host:port ] +-.I --cport=port +-.RB [ \--bufsize=n ] +-.RB [ \--max_bandwidth=n ] +-.RB [ \--random_wait=n ] +-.RB [ \--wait_in_out=n ] ++.RB \-\-inetd ++.RB [ \-\-caddr=host ] ++.RB [ \-\-debug ] ++.RB [ \-\-syslog ] ++.RB [ \-\-name=str ] ++.RB [ \-\-timeout=n ] ++.RB [ \-\-ftp=type ] ++.RB [ \-\-transproxy ] ++.RB [ \-\-connect=host:port ] ++.I \-\-cport=port ++.RB [ \-\-bufsize=n ] ++.RB [ \-\-max_bandwidth=n ] ++.RB [ \-\-random_wait=n ] ++.RB [ \-\-wait_in_out=n ] + .ll -8 + .br + .SH DESCRIPTION +@@ -49,74 +48,73 @@ + Depending on how redir was compiled, not all options may be available. + .SH OPTIONS + .TP +-.B \--lport ++.B \-\-lport + Specifies port to listen for connections on (when not running from inetd) + .TP +-.B \--laddr ++.B \-\-laddr + IP address to bind to when listening for connections (when not + running from inetd) + .TP +-.B \--cport ++.B \-\-cport + Specifies port to connect to. + .TP +-.B \--caddr ++.B \-\-caddr + Specifies remote host to connect to. (localhost if omitted) + .TP +-.B \--inetd ++.B \-\-inetd + Run as a process started from inetd, with the connection passed as stdin + and stdout on startup. + .TP +-.B \--debug ++.B \-\-debug + Write debug output to stderr or syslog. + .TP +-.B \--name ++.B \-\-name + Specify program name to be used for TCP wrapper checks and syslog logging. + .TP +-.B --timeout ++.B \-\-timeout + Timeout and close the connection after n seconds of inactivity. + .TP +-.B \--syslog ++.B \-\-syslog + Log information to syslog. + .TP +-.B \--bind_addr ++.B \-\-bind_addr + Forces redir to pick a specific address/interface to bind to when it listens + for incoming connections. + .TP +-.B \--ftp ++.B \-\-ftp + When using redir for an FTP server, this will cause redir to also + redirect ftp connections. Type should be specified as either "port", + "pasv", or "both", to specify what type of FTP connection to handle. +-Note that --transproxy often makes one or the other (generally port) ++Note that \-\-transproxy often makes one or the other (generally port) + undesirable. + .TP +-.B \--transproxy ++.B \-\-transproxy + On a linux system with transparent proxying enabled, causes redir to + make connections appear as if they had come from their true origin. + (see /usr/share/doc/redir/transproxy.txt) + .TP +-.B \--connect ++.B \-\-connect + Redirects connections through an HTTP proxy which supports the CONNECT +-command. Specify the address and port of the proxy using --caddr and +---cport. --connect requires the hostname and port which the HTTP ++command. Specify the address and port of the proxy using \-\-caddr and ++\-\-cport. \-\-connect requires the hostname and port which the HTTP + proxy will be asked to connect to. + .TP +-.B \--bufsize n ++.B \-\-bufsize n + Set the bufsize (defaut 4096) in bytes. Can be used combined with +---max_bandwidth or --random_wait to simulate a slow connection. ++\-\-max_bandwidth or \-\-random_wait to simulate a slow connection. + .TP +-.B \--max_bandwidth n ++.B \-\-max_bandwidth n + Reduce the bandwidth to be no more than n bits/sec. The algorithme is + basic, the goal is to simulate a slow connection, so there is no pic + acceptance. + .TP +-.B \--random_wait n ++.B \-\-random_wait n + Wait between 0 and 2 x n milliseconds before each "packet". A "packet" is + a bloc of data read in one time by redir. A "packet" size is always less +-than the bufsize (see also --bufsize). ++than the bufsize (see also \-\-bufsize). + .TP +-.B \--wait_in_out n +-Apply --max_bandwidth and --random_wait for input if n=1, output if n=2 and ++.B \-\-wait_in_out n ++Apply \-\-max_bandwidth and \-\-random_wait for input if n=1, output if n=2 and + both if n=3. + .SH "SEE ALSO" + inetd(1) +- diff --git a/network/redir/redir.SlackBuild b/network/redir/redir.SlackBuild new file mode 100644 index 0000000000..74c1345ac0 --- /dev/null +++ b/network/redir/redir.SlackBuild @@ -0,0 +1,97 @@ +#!/bin/sh + +# Slackware build script for redir + +# Copyright 2013 Matteo Bernardini <ponce@slackbuilds.org>, Pisa, Italy +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=redir +VERSION=${VERSION:-2.2.1} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i486 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i486" ]; then + SLKCFLAGS="-O2 -march=i486 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +DOCS="CHANGES COPYING README contrib transproxy.txt" + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.?z* +cd $PRGNAM-$VERSION +chown -R root:root . +find . \ + \( -perm 777 -o -perm 775 -o -perm 711 -o -perm 555 -o -perm 511 \) \ + -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 \) \ + -exec chmod 644 {} \; + +for i in $CWD/patches/* ; do patch -p1 < $i ; done + +sed -i "s|^EXTRA_LIBS.*|EXTRA_LIBS = -lnsl|" Makefile + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +make +install -D -m 0755 $PRGNAM $PKG/usr/bin/$PRGNAM + +find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/man/man1 +gzip -9c $PRGNAM.man > $PKG/usr/man/man1/$PRGNAM.1.gz + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a $DOCS $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/network/redir/redir.info b/network/redir/redir.info new file mode 100644 index 0000000000..3280819247 --- /dev/null +++ b/network/redir/redir.info @@ -0,0 +1,10 @@ +PRGNAM="redir" +VERSION="2.2.1" +HOMEPAGE="http://sammy.net/~sammy/hacks/" +DOWNLOAD="http://sammy.net/~sammy/hacks/redir-2.2.1.tar.gz" +MD5SUM="4342fadac30504c86c8db7beefe01995" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="Matteo Bernardini" +EMAIL="ponce@slackbuilds.org" diff --git a/network/redir/slack-desc b/network/redir/slack-desc new file mode 100644 index 0000000000..b201e42c75 --- /dev/null +++ b/network/redir/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +redir: redir (Redirect TCP connections) +redir: +redir: redir is all you need to redirect traffic across firewalls. +redir: The functionality of inetd/tcpd and "redir" will allow you to +redir: do everything you need without screwy telnet/ftp etc gateways. +redir: +redir: homepage: http://sammy.net/~sammy/hacks/ +redir: +redir: +redir: +redir: |