Date | Commit message (Collapse) |
|
Ruby 2.0.0preview1 is out, and we happen to be compatible
(with some harmless linker/build warnings)
|
|
1.8 did not support my preferred way of writing hashes
with symbol keys.
|
|
Rack::Lint::ErrorWrapper forbids the "<<" method. This
fallback only comes into play when no log destination
(via :logger or :path) is specified and is rarely an
issue in real setups.
|
|
It never /not/ worked under 1.9.3, but we should keep the
website up-to-date.
|
|
The use of Rack::BodyProxy#method_missing causes failures
under mainline Ruby 1.9.2 and 1.9.1, but not 1.9.3. This
test case exists to document this (now-fixed) bug for users
stuck on older Rubies.
On a side note, our usage of rb_iterate() should be rewritten
to use rb_block_call() as rb_iterate() is deprecated in 1.9.
A Ruby 1.9.2-p290 user privately reported this issue.
|
|
It's easier-to-read with the concise syntax.
|
|
|
|
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_*)
|
|
These values are untrusted, so if any client sends them to us
we must escape them.
|
|
This matches the behavior of nginx 1.0.9
|
|
It's clearer that we have zero commercial intent
when using a non-profit .org domain for the mailing
list.
|
|
Nothing wrong with the GVL in Ruby 1.9.3; but we'll need
to modify our code if it's removed for C extensions.
|
|
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.
|
|
Some Ruby installs muck up headers/#defines and cause weirdness.
We now explicitly define _BSD_SOURCE and include #stdio.h
|
|
Could be useful for some folks.
|
|
LGPLv4 could be completely different, so we won't give
the FSF a blank check to force it upon 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
|
|
strftime() isn't locale-independent, so it can lead to
inconsistencies in logs.
|
|
This doesn't apply to people that use strftime()-formats,
but that's a minority.
|
|
This appeared in nginx 0.9.6
|
|
Braindamage from back in the day when I didn't understand mkmf
|
|
This allows using:
use Clogger, :format => :Rack_1_0
Instead of:
use Clogger, :format => Clogger::Format::Rack_1_0
|
|
Oops
|
|
|
|
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.
|
|
People shouldn't care, there have been no backwards-incompatible
changes in the UI and we're not a library people write code
against.
|
|
Unlikely, but it may make a difference somewhere...
|
|
While local filesystems are usually very fast, we are
pessimistic and should prepare for worst-case scenarios. This
can use rb_thread_io_blocking_region() under Ruby 1.9.3dev.
|
|
Unlikely, but some app could pass '\0' into us
|
|
|
|
Old git URLs still work, but new ones are shorter
|
|
Rubinius may be pickier about what a VALUE is, so we can't
safely cast any C address into VALUEs.
|
|
|
|
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
|
|
I like make :D
|
|
No need to actually create the hash, just load the constant
|
|
Since we delegated response_to?, we also need to delegate
method_missing to the response body in case there are
non-standard methods defined outside of Rack.
|
|
This optimization is used by Rainbows! to pass IO objects
to the response body.
|
|
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.
|
|
nginx doesn't have this, only time_local, but we do
|
|
In case some folks need to use insanely long time formats,
we'll support them.
|
|
call-seq is needed to make C functions look good
|
|
The Clogger::ToPath proxy struct class is gone and
so is our need to access it.
|
|
We can just make Clogger#respond_to? smarter and forward
everything except :close to the body we're proxying.
|
|
We'll be getting rid of an unnecessary wrapper class
|
|
Fix a reversed typedef and also deal with the case where
CLOCK_MONOTONIC is a function call and not a constant
macro.
|
|
This should also detect cases where CLOCK_MONOTONIC is
available at build but not at runtime.
|
|
clock_gettime() is not available on some systems and/or
CLOCK_MONOTONIC. This is totally broken considering the
POSIX standard was 10 years ago, now.
Nothing in gnulib, either, wtf?!
http://www.gnu.org/software/gnulib/manual/html_node/clock_005fgettime.html
|
|
|
|
It's interactive and sucks less, now.
|