network/redir: Added (Redirect TCP connections).
Signed-off-by: Matteo Bernardini <ponce@slackbuilds.org>
This commit is contained in:
parent
15498860e5
commit
9f0af0e072
|
@ -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.
|
|
@ -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)
|
|
@ -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 */
|
|
@ -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);
|
|
@ -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)) {
|
|
@ -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);
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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
|
|
@ -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.
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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
|
|
@ -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.
|
|
@ -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)
|
||||
-
|
|
@ -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}
|
|
@ -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"
|
|
@ -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:
|
Loading…
Reference in New Issue