unxf.git  about / heads / tags
Rack middleware to remove/demangle X-Forwarded-* headers
$ git log --pretty=format:'%h %s (%cs)%d'
97dcfc2 remove optimizations which only made sense in old Rubies (2016-03-17)
	(HEAD -> master)
589fc87 remove librelist info, use public-inbox (2016-03-17)
0a18f04 README: prepare for cgit replacement (2016-03-17)
ef3ac0f doc: switch to olddoc for the website (2015-05-08)
54be3ba test: add test for all-trusted IPs (2015-01-14)
6c7c51e unxf 2.2.1 - dependency bump (2013-08-03)
	(tag: v2.2.1)
124d0e2 unxf 2.2.0 - dependency bump (2013-08-03)
	(tag: v2.2.0)
4a98d66 LICENSE: use GPLv2+, but note GPLv3 is preferred (2013-08-03)
9e913d6 gemspec: bump dependencies, set license (2013-08-03)
fed439b UnXF 2.1.0 - IPv6 support (2011-09-08)
	(tag: v2.1.0)
...

$ git cat-file blob HEAD:README
= UnXF - Un-X-Forward* the Rack environment

Rack middleware to remove "HTTP_X_FORWARDED_FOR" in the Rack environment and
replace "REMOTE_ADDR" with the value of the original client address.

This uses the "rpatricia" RubyGem to filter out spoofed requests from
clients outside your LAN.  The list of trusted address defaults to
private LAN addresses defined RFC 1918 and those belonging to localhost.

This will also read "HTTP_X_FORWARDED_PROTO" and set "rack.url_scheme"
to "https" if the "X-Forwarded-Proto" header is set properly and sent
from a trusted address chain.

== Install

If you use RubyGems:

    gem install unxf

You will need a C compiler and Ruby development headers to install the
"rpatricia" RubyGem if it is not already installed.

=== Hacking

You can get the latest source via git from the following locations:

* git clone git://bogomips.org/unxf.git
* git clone git://repo.or.cz/unxf.git (mirror)

You may browse the code from the web and download the latest snapshot
tarballs here:

* http://bogomips.org/unxf.git
* http://repo.or.cz/w/unxf.git (gitweb)

Inline patches (from "git format-patch" and "git send-email") to the
mailing list at mailto:unxf-public@bogomips.org
are preferred because they allow code review and comments in the reply to
the patch.

We will adhere to mostly the same conventions for patch submissions as
git itself.  See the Documentation/SubmittingPatches document
distributed with git on on patch submission guidelines to follow.  Just
don't email the git mailing list or maintainer with unxf patches.

== Contact

All feedback (bug reports, user/development discussion, patches, pull
requests) go to the mailing list at mailto:unxf-public@bogomips.org
No subscription is necessary to post, but HTML email is never allowed.
All messages to the public-inbox are archived forever at:
http://bogomips.org/unxf-public/

# heads (aka `branches'):
$ git for-each-ref --sort=-creatordate refs/heads \
	--format='%(HEAD) %(refname:short) %(subject) (%(creatordate:short))'
* master       remove optimizations which only made sense in old Rubies (2016-03-17)
  ipv6         stash original headers in env["unxf.{for,proto}"] (2011-08-09)

# tags:
$ git for-each-ref --sort=-creatordate refs/tags \
	--format='%(refname:short) %(subject) (%(creatordate:short))'
v2.2.1       unxf 2.2.1 - dependency bump (2013-08-03) tar.gz
v2.2.0       unxf 2.2.0 - dependency bump (2013-08-03) tar.gz
v2.1.0       UnXF 2.1.0 - IPv6 support (2011-09-08) tar.gz
v2.0.0       UnXF 2.0.0 - saner behavior (2011-05-26) tar.gz
v1.0.0       unxf 1.0.0 - initial release! (2011-05-24) tar.gz

# associated public inboxes:
# (number on the left is used for dev purposes)
            https://yhbt.net/unxf-public/

git clone https://yhbt.net/unxf.git