All relevant changes to the project are documented in this file.
v3.3 - 2019-03-23
- Fix #5: Use
stdout
, notstderr
, for--version
and--usage
- Fix #6: Minor typo in man page
- Fix #8: Update build instructions in README
- Fix #9: Major timing bug fix in
--max-bandwidth
and--random-wait
. Delays below one second are off by a factor 1000!
v3.2 - 2018-03-10
Minor bug fixes.
- Add missing
transproxy.txt
file to distribution - Update usage text and man page for
--bind
option, w.r.t. transproxy
- Issue #4: Service names from
/etc/services
not recognized for compat syntax,--lport
or--cport
v3.1 - 2017-01-22
Restored support for some command line options on behalf of Debian.
- New
--enable-compat
option added to configure script. Enables support for command line options from v2.x used byvagrant-lxc
, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=824698#15--laddr=SRC
--lport=PORT
--caddr=SRC
--cport=PORT
- Portability fixes for musl libc
v3.0 - 2016-05-06
This version changes the command line syntax! You are going to have to
change how you call redir
in order to upgrade.
- Convert
SRC:PORT
andDST:PORT
from options to arguments, using a UNIX syntax that is pretty much standard by now. - Rename
-n,--name=STR
-->-I,--ident=NAME
- Simplify argument parsing, move more data to global variables
- Simplify
debug()
statements, usesyslog()
- Daemonize by default, like a proper UNIX daemon, unless
-n, --foreground
is given - Replace
perror()
and other log messages going tostderr
in favor ofsyslog()
for everything, unless running in foreground, in which case we useLOG_PERROR
for log message output tostderr
as well ... unless-s, --syslog
is given - Replace
-d, --debug
with-l, --loglevel=LEVEL
to control thesyslog()
default log level. The default log level isLOG_NOTICE
- Convert to GNU Configure & Build System. With configure switches like
--disable-ftp
,--disable-shaping
, and--with-libwrap
- Change distribution to use
.tar.xz
rather than.tar.gz
from now on - Convert to Markdown, clean up and simplify
README
- Remove local versions of
getopt()
andgetopt_long()
. All relevant UNIX distributions should have them by now. - Massive code cleanup and (Linux KNF) coding style fixes
- Add Coverity Scan support for Travis-CI runs
- Complete rewrite of man page
- Overhaul of
--help
usage help - Refactor to reduce code duplication:
verify_request()
for TCP wrapper handlingtarget_init()
for initializing astruct sockaddr_in
target_connect()
to handle creating and connecting a target socket
- Refactor to harmonize function and variable names
- Cleanup
redir.c
heading and use proper GNU GPL blurb - Make sure to credit all known major contributors in
AUTHORS
file - Removed
redir.lsm
file
- Fix socket leaks found by Coverity Scan
- Fix unterminated strings returned by
read()
, found by Coverity Scan - Fix ordering bug(s) found by Coverity Scan
- Fix
strcpy()
into fixed size buffer found by Coverity Scan - Fix uninitialized
struct sockaddr_in
, found by Coverity Scan - Check
malloc()
return value - Do
gethostbyname()
before everyconnect()
, DNS names may change at runtime
v2.3 - 2016-05-01
This is a checkpoint release by the new maintainer, Joachim Wiberg, integrating all (most) of Debian's patches.
- Rename man page
redir.man
-->redir.1
- Rename
CHANGES
-->ChangeLog.md
- Update Linux Software Map, v0.7 --> v2.2
- Don't strip binaries by default. Thanks to Julien Danjou.
Closes Debian bug #437898, by Daniel Kahn Gillmor - Clean up questionable formatting in man page, by Daniel Kahn Gillmor
- Remove overrides in Makefile to enable hardening, by Tobias Frost
- Debian fixes to man page and
--help
text for--max_bandwidth
by Daniel Kahn Gilmor - Use
ntohs()
to generate comprehensibledebug()
s andsyslog()
s,
by Bernd Eckenfels - Fix calls to TCP wrappers, by Daniel Kahn Gillmor
- Fix timeouts to only happen after full duration of inactivity, rather than absolute. This patch is a close approximation of Robert de Bath's patch for Debian bug #142382, by Daniel Kahn Gillmor
- Build without any warnings from
gcc
, even with--pedantic
, patch by Daniel Kahn Gillmor - Fix problem with buffer allocation introduced by bandwidth throttling. Closes Debian bug #335288, by Daniel Kahn Gillmor
- Cosmetic fixes to man page which could be applied upstream.
by Daniel Kahn Gillmor - Ensure that the server socket has
SO_REUSEADDR
andSO_LINGER
set properly. Closes Debian bug #508140, by Daniel Kahn Gillmor - Handle type casting of variables. Change
size_t
variables to instead usesocklen_t
, warning fromgcc
. Fix by Lucas Kanashiro
v2.2.1 - 1999-12-26
Bug fix relase by Sam Creasey.
- Support for traffic shaping by Emmanuel Chantréau. Interesting stuff. I've not tested this in detail personally.
- Adds the ability to compile
redir
with lesser functionality for speed. This is documented in the README.
- Fix bug in
do_accept()
where non-fatal error codes returned byaccept()
would causeredir
to terminate entirely. I had recieved reports of this behavior but was unable to find it until sammy.net had to handle the load of theredir
2.2 update usingredir
:)
All non-fatal error codes might not be covered. But it "got better".
v2.2 - 1999-12-15
- Support for redirecting PORT mode FTP connections in addition to PASV
mode FTP redirection. Thus
--ftp
is now--ftp={port,pasv,both}
to determine what should be redirected. The original version of this patch was submitted by Harald Holzer - Adds the
--connect
option, which is useful if you're bouncing your connections through an HTTP proxy server. Use as--connect=host:port
and this will be the CONNECT line sent to the proxy.
v2.1 - 1999-06-22
Bugfix release
- Fix a problem with FTP redirection
- Fix (and add) various logging messages
- Fix for some of the TCP wrappers code
v2.0 - 1999-02-11
This version changes the command line syntax! You're going to have to
change how you call redir
in order to upgrade, but not by all that
much. We now use --options
for everything, instead of having the
rather wonky "if you've got this thing here, something happens" method
used before. We apologize for the inconvenience, but this is really a
lot less brain damaged.
- Support for TCP wrappers, thanks to Damien Miller
- The
--name
option now sets the TCP wrapper service name as well as the syslog program name, making it possible to run multiple instances of redir with different access controls. Edit the Makefile to enable TCP wrappers. - Actually implement
--transproxy
when running frominetd
. - Cleaned up
--ftp
support, at least a little. There are probably still improvements to be made here, but, alas.
Like v0.5, this release was not possible to locate on the Internet anymore. Even using excellent help from http://www.archive.org. Restoring this change set was not possible, all we have is this change log entry. If you know the release date, please contact me --Joachim
- Adds the option
--transproxy
, which, when run as super-user on a Linux system which has had transparent proxying compiled into it's kernel, will make connections seem as if they had come from their true origin. Seetransproxy.txt
for further discussion of this option
redir
should now compile and run correctly on systems which lackgetopt_long()
v1.1 - 1998-10-31
- Add the option
--ftp
, which, when redirecting a port to an FTP server, will, when the server wants to initiate a passive connection, redirect another port for that connection
v1.0 - 1998-08-08
This is the first release by Sam Creasey after picking up from v0.7 by Nigel Metheringham.
- Add the option
--bind-addr
, which can forceredir
to bind to a specific address or interface when making outgoing connections
A cleanup and bug fix release by Nigel Metheringham after the initial v0.5 release by Sam Creasey.
This release was not possible to locate on the Internet anymore, but is the initial release by Sam Creasey. In his own words:
Redir is actually a horrible hack of my other cool network utility, daemon, which is actually a horrible hack of ora's using C sample code, 12.2.c. But, hey, they do something. (and that's the key.)