Skip to content
This repository


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
  • 99 commits
  • 46 files changed
  • 16 contributors
Mar 04, 2011
Adam Thomason Add Throttle plugin 856e7fe
Adam Thomason Refactor some stuff 295a3ef
Adam Thomason Refactor indentation and clean up POD a411136
Adam Thomason Bit more refactoring and pod f939694
Adam Thomason More cleanup; add support for changing log levels at runtime via mgmt 3d3cbd9
Adam Thomason Enum types must start with "enum" in the arrayref. 4ea3896
Adam Thomason More refactoring and documentation. Add default_action tunable. ab30275
Adam Thomason Replace disable_throttling with default_action so throttling of only-…
…blacklistees is possible
Adam Thomason Shorten key name c4e1887
Adam Thomason Group tunables 541c11f
Adam Thomason Rename min_delay => initial_delay be78e1e
Adam Thomason enums require arrayref as second parameter ae684f7
Adam Thomason Refactor store and fix some minor things 6574a18
Adam Thomason Small refactor, comments 6062993
Adam Thomason Add unfinished test 2fa541d
Adam Thomason Add SYNOPSIS with sample configuration 9219355
Mar 10, 2011
Ask Bjørn Hansen Update service-parameters.txt with SSL Client cert items f63dd6c
Ask Bjørn Hansen Support multiple netmasks in trusted_upstream_proxies configuration 72c0e46
Apr 25, 2011
Kiall Mac Innes Updating debian/changelog for 1.78 d08f4bd
Jun 07, 2011
dormando errno is no longer zero coming out of IO::AIO
As of IO::AIO 3.7, you have to actually read the return code.
Jun 15, 2011
Final, heavily tested fix for SSL sock leak.
Of note, the SSL socket handling has been refactored to use a subclassed IO::Socket::SSL Object, called Perlbal::SocketSSL2 (I hate this name, but I don't have a better idea yet, plus it works.) This means that we are no longer overwriting how IO::Socket::SSL works anymore (better compatability)

Also, the intended behavior has finally been reached; perlbal no longer leaks FDs when an SSL socket goes stale before handshake.
dormando Fill in the changelog for next version 0107fd0
dormando Checking in changes prior to tagging of version 1.79.
Changelog diff is:

diff --git a/CHANGES b/CHANGES
index 588132d..033e418 100644
@@ -1,3 +1,5 @@
+1.79: 2011-06-15
     -- Make SSL sockets time out if they go stale, like we claimed was
        fixed two versions ago, but this time we also clean up the FDs too.
        (Jonathan Steinert <>)
Aug 15, 2011
Sawyer X adding server_tokens 8d41bc5
Sawyer X add some tests to server_tokens 88fce8a
Aug 16, 2011
Ask Bjørn Hansen Merge pull request #5 from xsawyerx/feature/server_tokens
Feature/server tokens
Ask Bjørn Hansen Merge pull request #4 from managedit/master
Updating debian/changelog for 1.78
Ask Bjørn Hansen Merge pull request #3 from abh/master
support multiple netmasks for trusted_upstream_proxies
Oct 08, 2011
Mark Smith Add 'DEFAULT' command
This command allows you to set defaults on the service objects you create.  Useful if you have many services and you set the same parameters on each of them.


    DEFAULT persist_client  = true
    DEFAULT persist_backend = true

As with the rest of Perlbal configuration, this functions top down.  The defaults only apply to services created after the default is set.
Oct 10, 2011
Mark Smith Add documentation for DEFAULT
The new DEFAULT command is now documented.
Nov 16, 2011
Yann Kerhervé Fix %ENV substitution failing because of lowercasing
Before ENV variables are substituted, we lowercase the config,
which is counter intuitive as ENV variables are supposed to be uppercase
Nov 18, 2011
Fix for case insensitive filesystems
Just because the 'use' worked, doesn't mean that the package you
wanted was loaded.
Ask Bjørn Hansen Merge pull request #9 from samv/master
Fix for running under MacOS X
Nov 29, 2011
improve bool version, using a static method a8ad641
Perlbal::Fields provide a simple way to override field::new that uses…
… Hash::Util::lock_ref_keys

set env PERLBAL_REMOVE_FIELDS=1 to unactivate fields stuff
fields are fast for reading access, but slow when need to create many objects
provide some tests 148254b
manifest and changes update 503cb1f
Dec 29, 2011
Slaven Rezić Fixed throttle reload command ea57fab
Adam Thomason Merge pull request #1 from eserte/throttle
Fix "reload" command parsing
Jan 05, 2012
Mark Smith Merge pull request #8 from yannk/master
Fix ENV substitution on the left side of configuration options.
Jan 31, 2012
Merge branch 'master' of abb66c2
Tests actually require a newer version of Test::More to complete 061f178
Cleanup CHANGES slightly b7161e0
Gosuke Miyashita Add modify_response_headers hook and prepend_body hook to Perlbal::Ba…
Merge branch 'throttle' of 7e1d4df
Add throttler test to MANIFEST d296bb9
Adam Thomason Call backend_response_received after reproxy reponse
Currently backend_response_received is only called after the primary response
(which contains X-Reproxy-URL).
Adam Thomason Rename new hook to backend_response_received 6e07c35
Feb 01, 2012
Gosuke Miyashita Add a plugin for flv streaming.
This plugin uses new hooks added by the commit ddb49e3.
Gosuke Miyashita Add simple usage. d391a2d
Change perlbal-check to use IO::Socket::INET, not just IO::Socket d8be87a
Switch Devel::Peek to an optional requirement abda9ec
Drop Storable from being loaded (isn't used) 85ffc86
Don't load all of LWP, we don't use all of it all the time. 29fa97e
Silence a redefinition warning during tests c898803
Completely reformat and clean up and update deps list for perlbal e76b76a
We actually depend on IO::Socket::SSL 0.98 for SSL support b316a71
Merge branch 'feature/service-defaults' of ee6bf86
Changelog for DEFAULT command f4a711d
Properly get the maximum age of queues across all Perlbals 2c421b6
Changelog for perlbal-check fix c50fe31
Feb 02, 2012
XFFExtras plugin ef4cc3f
Add FLVStreaming plugin to manifest 9674348
Feb 03, 2012
reject PUTs via Content-MD5 header on corrupt transfers
If a client knows the MD5 checksum of what it is uploading ahead
of time, it may specify the Content-MD5 header and ask Perlbal
to verify it while the file is being read off the socket and
detect corrupted transfers before completion.

This allows to one to avoid rereading the entire file to verify
the MD5 post-upload.  I find this functionality useful because
TCP checksums are weak and I've experienced network corruption
that TCP did not detect several times over the years.

I hope I've implemented this correctly according to section
14.15 of RFC 2616.  I don't know if there are other examples of
other HTTP servers that can reject PUTs based on Content-MD5
(other servers not written by me, I don't trust myself with
this stuff).

Signed-off-by: Eric Wong <>
implement additional Content-MD5 features
* Add "enable_md5" service parameter to toggle Content-MD5
  verification as MD5 verification may use unnecessary CPU

* Do not clobber existing content on disk if Content-MD5
  verification fails.

Signed-off-by: Eric Wong <>
Let's use a big integer instead of a float 3a5319f
Change the behavior of tempfile on PUT to bail request on collision. e37abd7
Change entry for Content-MD5 support 7a6bef6
Override setup_keepalive and force keepalives off when we still have …
…data to be read from the client.

Saves bandwidth, saves cpu time, a good excuse to break keepalives in this case.
Add forgotten information to CHANGES 799d903
Remove the original error handling that I replaced earlier f052db3
Feb 14, 2012
Make the NAME section of Perlbal::Manual::Plugins line up c5f6080
Add link to Perlbal::Plugin::Throttle on manual ec4dc6d
Add enable_md5 to service-parameters.txt ba18e41
Add docs for DEFAULT to manual 383bdff
Adjust IO::Socket::SSL version in Manual 392bcbd
Add documentation for PERLBAL_REMOVE_FIELDS to Manual cc232b9
Add Perlbal::Plugin::FlvStreaming to Manual 730c494
Add Perlbal::Plugin::XFFExtras to Manual a8737be
Whoops, FLVStreaming is included in core 57e572c
Feb 15, 2012
Add doc of enable_md5 to Manual b83d233
Feb 19, 2012
dormando Fix a crash bug due to an AIO race
ClientHTTPBase can close reproxy_fh if its attached client gets closed. This
can cause a crash if aio_readahead was out to lunch in the meantime.

Need to audit the rest of AIO lib for similar situations
Feb 26, 2012
dormando a few more CHANGES entries 395b6ae
dormando Checking in changes prior to tagging of version 1.80.
Changelog diff is:

diff --git a/CHANGES b/CHANGES
index 0e38453..23d21a3 100644
@@ -1,3 +1,5 @@
+1.80: 2012-02-26
     -- FLV streaming plugin (Gosuke Miyashita <>)

     -- New Throttle plugin (Adam Thomason <>)
Mar 04, 2012
Fix (loopback/localhost) connection failures on some BSD machines.
This only affected early detection of backend sockets that attempted to connect to a non-running service on localhost/loopback.

This in turn only affected backends not using verify_backend.

This also affected tests in t/35-reproxy.t
Mar 18, 2012
Jonathan Steinert And fix my BSD fix to work on linux again a4a3c2e
Jonathan Steinert Test::More 0.94 seems to not have implicit done_testing at the end of…
… subtests.
Jun 13, 2012
use 'confess' in a 'this should never happen' error message
It's useful to know how we got to the bad place.
Ask Bjørn Hansen Merge pull request #15 from samv/master
confess me your sins! :)
Oct 27, 2012
add support for ssl_honor_cipher_order 545eee4
Nov 04, 2012
Ask Bjørn Hansen Merge pull request #18 from andk/master
Support ssl_honor_cipher_order
Oct 06, 2013
David Steinbrunner Added repository cpan metadata 88e9bb2
Ask Bjørn Hansen Merge pull request #21 from dsteinbrunner/patch-1
Added repository cpan metadata
Nov 26, 2013
David Steinbrunner typo fixes 95870aa
David Steinbrunner typo fix 4dc80f4
David Steinbrunner typo fix 417a704
David Steinbrunner typo fixes ae19d1d
David Steinbrunner typo fixes 625ce88
Ask Bjørn Hansen Merge pull request #23 from dsteinbrunner/patch-2
typo fixes