WANProxy 0.8.0 release notes.

Juli Mallett juli at clockworksquid.com
Fri Sep 21 14:06:20 PDT 2012

WANProxy 0.8.0 is now available from Subversion and on the web!

Subversion: http://wanproxy.org/svn/releases/wanproxy-0.8.0
WWW: http://wanproxy.org/releases/wanproxy-0.8.0.tar.gz

This release is most obviously a bug-fix release, but also paves the
way for several features that are in the pipeline.

That said, over the last year and a half (since the last release), I
have had very little time to work on WANProxy.  I have been attending
graduate school full-time while working full-time and otherwise
leaving myself very little time to work on my open source projects.  I
expected last year that by now I would have finished work on
persistent caching, and have introduced features involving monitoring,
and support for proxying and deduplicating SSH.

The last is the item I've made the most progress on, and have
repeatedly gotten together parts of a working implementation only to
decide not to commit them.  I've been attempting to use the scraps of
time I have here and there to work on that feature because I think
it's a compelling one as part of an open source ecosystem.  I know
many of us who rely on open source tools rely especially on SSH for
all kinds of infrastructure, including offsite backups and routine
data transfers.  I know exactly what code I need to (re)write to make
WANProxy viable as an SSH proxy including deduplication, but haven't
been able to get more than about a day of work in on it in the main
tree over the past year.  I want to let users of WANProxy know that
there are plans for it that will increase its usefulness and

I should also acknowledge that diegows (Diego Woitasen) has been doing
excellent work on adding features to WANProxy for his customers.  I
know that he's posted about that here previously.  His github tree is
definitely worth a look if you're interested in getting new features
today rather than waiting for the results of my development.  I'm sure
he'll continue to track my changes, and so using his tree may offer
the best of both worlds:


Which is all very strange stuff to include in release notes, but I
think they're relevant, even essential, to putting this release in

There is one important bug fix:
o) A bug in the XCodec has been fixed which could cause assertion
failures, or connection resets in certain race conditions, or when
data at the end of a connection required an ASK to be sent from one
side to the other.  (This is the output_eos_ assertion that has
affected many installations.  This was a genuine bug, and would result
in wrong behavior in the case where the assertion was simply disabled.
 Upgrading is encouraged.)

Here's what else has changed:
o) Incomplete or rudimentary support for HTTP and SSH have been added,
not sufficient to do proxying of those protocols at the moment.
o) Configuration reporting, although no real management or statistics,
is now available over HTTP using a built-in HTTP server.
o) Several internal data structures and abstractions have been cleaned
up.  Notably some things related to callbacks.  A new EventHandler
helper class has been added to simplify writing code which does event
o)  The cryptographic framework has seen non-trivial improvements as a
result of its use in the SSH effort.
o) Logging, particularly with regard to assertion failures, has been improved.
o) Some performance improvements in XCodec hashing.
o) The included tack utility now supports storing its hash database in
a user-specified file.  This makes it very useful for simple,
user-space storage deduplication.
o) More tests and sample programs have been added for performance
evaluation and to ensure correctness.
o) Performance improvements to the Buffer class.
o) Interface extensions to the Buffer class.
o) Added a simple web server, called websplat, to demonstrate HTTP capabilities.
o) Added a diskdup program which makes two block devices match each
other with the minimal number of writes necesary, to demonstrate
several facilities.
o) Added fwdproxy, which is a simple program to do connection forwarding.
o) Fixed a crash when parsing configuration files with only whitespace
on a line.

You can also simply view the diffs between the releases for yourself
with "svn diff", using a command like this:
svn diff http://wanproxy.org/svn/releases/wanproxy-{0.7.2,0.8.0}

More information about the wanproxy mailing list