Date | Commit message (Collapse) |
|
5 changes since 2.0.2:
test_clogger: add test for REMOTE_USER
ext: avoid clobbering existing system functions
pure: remove Rack::Utils.bytesize dependency
loosen rack dependency to allow rack 2.x
doc use HTTPS for URLs and move homepage
Note the new homepage:
homepage: https://bogomips.org/clogger/
code: git clone https://bogomips.org/clogger.git
mail archives: https://bogomips.org/clogger-public/
email us and our archives: clogger-public@bogomips.org
Coming soon:
- hidden service mirrors for the homepage + git host
- POP3 mailing list subscriptions!
|
|
This release fixes a bug discovered in the rarely-used pure Ruby
version in multithreaded Rack servers.
Some folks reported privately that they forgot to upgrade from
clogger 1.0.1 when when upgrading from MRI 1.9.3 to 2.1, so they
were inadvertently using the pure Ruby version instead of the
less-buggy C extension. This also adds support for using the
monotonic clock under Ruby 2.1+ for request timing, matching
what the C extension used all along.
Users of the C extension are unaffected by bugs this release fixes
and do not need to upgrade.
* pure: fix reentrancy of request_time
* pure: use monotonic clock if possible
|
|
Most notably, there's a new mailing list at
clogger-public@bogomips.org
You may (optionally) subscribe to the new mailing list at:
clogger-public+subscribe@bogomips.org
If you're on librelist, you'll need to subscribe manually since
librelist subscribers cannot be imported. Of course, you do not
have to be subscribed to post, either (please Cc: everyone as folks
may not be subscribed).
shortlog:
README: document $env support for reading Rack env
switch docs + website to olddoc
ext: get rid of noisy and unnecessary cast
new mailing list at clogger-public@bogomips.org
gemspec: use SPDX license abbreviation
remove Rubyforge reference in Rakefile
|
|
This updates the documentation to point to the new homepage
at http://clogger.bogomips.org/
There is one API change which removes :to_io support,
as this was never a valid Rack extension.
This also fixes a minor incompatibility which prevented the GVL from
being released on ruby-trunk (2.2.0dev) during disk operations.
The mailing list continues to be hosted at librelist, but that will
probably soon change to a public-inbox + mailing list.
There are also minor code cleanups.
This also relaxes license to LGPLv2.1 or later.
|
|
This updates the documentation to point to the new homepage
at http://clogger.bogomips.org/
This also fixes a minor incompatibility which prevented the GVL from
being released on ruby-trunk (2.2.0dev) during disk operations.
The mailing list continues to be hosted at librelist, but that will
probably soon change to a public-inbox + mailing list.
There are also minor code cleanups.
|
|
This release only affects users of the C extension. Users of
the pure Ruby code are not affected.
* avoid RARRAY_PTR usage for RGenGC in Ruby 2.1.0
I have not benchmarked this, but this is unlikely to be a bottleneck
at all in older Rubies. It results in a smaller binary, too, which
will help with icache bloat. This should also improve performance
under Rubinius, too.
|
|
This release enables the optional C extension on MRI Ruby 2.0.0
(and any other platform that builds C extensions).
For rare setups which do not specify a :logger or :path
parameter for Clogger#initialize, we are now Rack::Lint
compliant and call #write on env["rack.errors"] instead
of "<<"
|
|
This release fixes potential vulnerabilities when escape
sequences are viewed in certain terminals.
The 0x7F-0xFF byte range is escaped to match behavior of nginx
1.0.9+, as some character sets may have escape characters in
that range.
$cookie_* values are now escaped to be consistent with the
behavior of the $http_cookie value. All users of $cookie_* in
their log format must upgrade (of course there may be no
Clogger users other than myself, and I don't use $cookie_*)
|
|
Minor portability fixes noticed on some systems.
There is a minor license change, it is now explicitly LGPLv2.1
and LGPLv3 and later versions at the project leader's
discretion. It is no longer LGPLv2.1+, so it doesn't give a
blank check to the FSF to change the license on us.
|
|
* $time_iso8601 added for nginx compatibility
* $time_local (without strftime-options) is now locale-independent
There's also a minor usability tweak that allows Symbols to be
specified as the :format argument, so config.ru can be shortened:
before (continues to work with 1.0.0):
use Clogger, :format => Clogger::Format::Rack_1_0
after:
use Clogger, :format => :Rack_1_0
|
|
Under 1.9, we always release the GVL for filesystem operations
now to avoid worst case scenarios. This may hurt performance
for some folks with bad locking implementations and extremely
fast filesystems. A couple of minor cleanups, too.
|
|
Clogger now delegates all unknown methods to the response body
in cases where it needs to wrap the response body. This allows
apps that use non-standard Rack extensions to continue working.
Eric Wong (4):
pass along "to_io" calls to the body
delegate method_missing calls to the response body
pure: simpler autoload trigger
switch to pkg.mk for maintenance tasks
|
|
Broken/crazy systems without CLOCK_MONOTONIC (in varying
degrees) and/or clock_gettime() should be supported by
using gettimeofday(). Thanks to Lawrence Pit for reporting
and helping us test.
The Clogger::ToPath proxy class is gone, Clogger itself can
proxy to_path/close calls correctly to the response body.
$time_utc with a default strftime-format is now supported, and
time formats can now be arbitrarily long in the C extension.
|
|
Clogger may now be initialized with a :path instead of :logger
to avoid typing "::File" in config.ru files to avoid conflicting
with the completely-unrelated Rack::File.
$request_time is now uses the monotonic clock, making it immune
to system clock changes. $usec and $msec statements were
completely broken in the pure-Ruby code and now fixed.
Rubinius is supported by the optional C extension as well,
the pure-Ruby code always worked.
|
|
This release allows middleware like Rack::Contrib::Sendfile to
work properly higher up the stack from Clogger.
Certain configurations of the Rainbows! and Zbatery web servers
are able to use the return value of body.to_path to serve static
files efficiently (via IO.copy_stream under 1.9 or
stream_file_data with EventMachine).
There are some small cleanups and documentation improvements
as well.
I've relicensed to LGPLv2.1+ (from LGPLv3-only) to allow
bundling with GPLv2-only applications (I'm currently the sole
copyright holder).
Signed-off-by: Eric Wong <normalperson@yhbt.net>
|
|
Small cleanups and minor enhancements (mainly for the optional
C extension) for this release:
Eric Wong (10):
ext: use FIX macros instead of generic NUM macros if possible
ext: preserve subclasses of Rack::Utils::HeaderHash
test: fix Linux memory usage test
avoid direct require of "rack" to quiet warnings
ext: GC safety fix when throwing an exception
ext: eliminate unused variable
ext: fix signedness and shadow warnings
ext: sparse cleanups
ext: avoid void pointer arithmetic
clogger 0.4.0
|
|
This release fixes a memory leak in the optional C extension due to
misuse of the Ruby C API. Users of the pure Ruby version are
unaffected.
We also misreleased 0.3.1 with this fix, but without bumping the
Clogger::VERSION constant.
|
|
You may now force the :reentrant flag to +true+ or +false+ in
your Rack configuration file:
use Clogger,
:format => Clogger::Format::Combined,
:logger => ::File.open("/path/to/log", "ab"),
:reentrant => true
This is to be compatible with Rack servers that do not use use
events or Fibers for concurrency instead of threads. By
default, reentrancy is enabled if env["rack.multithread"] is
true, but "rack.multithread" cannot indicative of a reentrancy
requirement in a web server.
|
|
The optional C extension no longer tries to preserve the
original response array as it could become subtly broken by
people using non-frozen but constant responses. For the pure
Ruby version, there is a 1.9-encoding bugfix for response
size calculation.
|
|
This release should help ensure compatibility with a
to-be-released version of Rack::Lint that allows subclasses of
the core String and Hash objects for users of the optional C
extension.
Eric Wong (6):
ext: convert non-Hashes #to_hash if possible
ext: ensure all objects we byte_xs are Strings
tests for subclassing
gemspec: disable the license= field for older RubyGems
GNUmakefile: fix grammar FAIL in comment
cleanup packaging and website/rdoc
|
|
|