about summary refs log tree commit homepage
DateCommit message (Collapse)
2009-09-09handle bodies that do not respond to :close
Since the wrapped Clogger object always responds to close, we cannot blindly delegate the close method to the body without ensuring it can be closed. So ensure that it can be closed before attempting to close it, all return values and errors are trapped and returned. Reported-by: Iñaki Baz Castillo
2009-09-07README: fix some grammar peculiarities
2009-09-07README: document $status
Hopefully it was obvious before, if not it is now.
2009-09-07Rakefile: preformatted text for history rdoc
escaping issues are too painful to deal with
2009-09-07Rakefile: Fix history with multi-paragraph tag messages
2009-09-07gemspec: license is LGPLv3
Odd, RubyGems doesn't warn about a lack of it and I didn't notice this field until now...
2009-09-07GNUmakefile: cleanup release notes generation
2009-09-07clogger 0.0.6 v0.0.6
"clogger_ext" is no longer a separate gem, but merged into the "clogger" gem itself. The installation should automatically detect compatible versions of Ruby and only build the C extension for MRI 1.8/1.9. Rack::Utils::HeaderHash is now used for $sent_http_* variable lookups instead of a hand-rolled solution. HeaderHash objects should be reusable in Rack soon to avoid the penalty of recreating them repeatedly in middlewares and hopefully more-widely used as a result. Underlying logger objects are sync=true for safety reasons. This has always been the case for the C extension version when writing to regular files. Other small changes include more CGI variables and the :ORS (output record separator) option added (default: "\n").
2009-09-07ext: fix compiler warnings in the cpp "comment"
2009-09-07Don't bother creating HeaderHash unless we need it
It's expensive to create if not needed, and no current released version of Rack has my proposed optimizations for it yet...
2009-09-07README: note that it's multi-instance-safe
2009-09-07README: fix links
2009-09-07enable MRI C extension by default
It was too much confusion to have multiple gems in the mix and I mainly use the C extension anyways. If we're not on a compatible version of Ruby, the extension will just be disabled by generating a dummy no-op Makefile to work around it.
2009-09-07Switch to hand-rolled packaging/distro scripts
Several bikeshed reasons brought me to this point: * I like the README.html layout more than any default index.html even if it's using README content. Having links on the side helps navigation IMHO. * publish_docs preserves timestamps to improve cache hit rate * git is used to maintain the manifest at packaging/release-time so my changesets have less noise in them * git is used to generate history files (from tag messages), this is a more DRY approach to me. * I don't like the ".txt" suffix being translated to "_txt.html" in URLs. I don't like the ".txt" suffix in general. * I don't like Manifest.txt showing up in my RDoc
2009-09-07ext: hack to prevent rdoc from finding Rack* namespace
TODO: find a better way to do this...
2009-09-04ext: only duplicate frozen response arrays
Otherwise modify the response array in place since most frameworks give you a modifiable array for you to play with anyways.
2009-09-04use Rack::Utils::HeaderHash for $sent_http_* lookups
No point in having extra code to do case-insensitive lookups, especially since the HeaderHash implementation is already in wide use and will only get faster as time goes by.
2009-09-04ext: store each response element explicitly
Avoid calling RARRAY_PTR all over the place and make the code easier to read/audit as a result.
2009-09-04ext: more consistent function naming
s/init_bad_response/init_bad_app_response/ The new name matches the variable it initializes more closely.
2009-09-03add support for several more CGI variables
$auth_type, $gateway_interface, $server_software, $path_translated are all supported now.
2009-09-03add output record separator option (:ORS)
This allows overriding the default of "\n". Behavior remains similar to IO#puts, the :ORS (output record separator) is appended iff the format doesn't already end with that string.
2009-09-03CLOGGER_PURE forces the pure version to be loaded
This is useful for testing the pure Ruby version in case clogger_ext is already installed on your system.
2009-09-03Ensure underlying logger objects are sync=true
Userspace buffering defaults are dangerous as the Ruby default IO objects do not do line-aware buffering. This makes the README examples with File.open much safer to use out-of-the-box for users of the pure-Ruby version. For users on the MRI C extension logging to regular files, this should not have any effect as we've optimized those to do unbuffered write(2) syscalls anyways.
2009-09-02clogger 0.0.5 v0.0.5
2009-09-02README: minor updates and clarifications
* link to Clogger::Format when talking about predefined formats * use upper-case for escape chars since that's what we use * clarify $request_time{PRECISION} range
2009-09-02alias $http_content_{length,type} to $content_{length,type}
Since Rack doesn't allow the HTTP_CONTENT_{LENGTH,TYPE} headers, alias attempts to use those to the non-"HTTP_"-prefixed equivalents to avoid confusion on the user side (nginx also does this).
2009-09-02expose the $content_length/$content_type variables
Since the HTTP_CONTENT_LENGTH and HTTP_CONTENT_TYPE variables are not allowed by Rack, we need to allow access to the CGI variables instead.
2009-09-02expose $request_method as documented in the README
Accessing "REQUEST_METHOD" in the Rack env should be doable as a CGI-ish variable. Thanks to Iñaki Baz Castillo for spotting the issue and reporting it to me.
2009-09-02clogger 0.0.4 v0.0.4
2009-09-01correctly rebuild simple HTTP/0.9 GET requests
Back in HTTP/0.9 days (before it was called HTTP/0.9), "GET /uri/goes/here\r\n" was a valid HTTP request. See rfc 1945, section 4.1 for details on this ancient "Simple-Request" scheme used by HTTP/0.9 clients.
2009-09-01README: point to repo.or.cz git mirror setup
The rubyforge one is out-of-date right now, so lets stop referencing it until the issues around it can be fixed.
2009-09-01README: new git repository
I seem to have problems pushing to Rubyforge at the moment, so I'll put the repository on a host I have more control over. Tracking the issue here: http://rubyforge.org/tracker/index.php?func=detail&aid=26185&group_id=5&atid=102
2009-09-01Ensure hex escaping is done in uppercase
The pure variant was using lower-case output instead of upper case, the ext variant was actually fine in this case. This is for nginx output format compatibility.
2009-09-01ext: ensure headers#each in response is valid
We're not Rack::Lint, but we still need to take steps to avoid segfaulting if we host non-Rack::Lint-compliant applications. This also updates the pure variant to fail on bad applications, too.
2009-09-01ext: compiler compatibility fix
Remove trailing "," for enum
2009-09-01GNUmakefile: post_news after release
2009-08-29clogger 0.0.3 v0.0.3
2009-08-29Merge dcvr:clogger
* dcvr:clogger: ext: several cleanups and robustness improvements ext: explicitly gc_mark each struct element
2009-08-29ext: several cleanups and robustness improvements
Add a little more tolerance for bad applications that may not give us string objects. This should only have a minor performance penalty for proper applications but at least ensures we don't segfault on misbehaving apps.
2009-08-29ext: explicitly gc_mark each struct element
rb_gc_mark_locations doesn't seem in common use for structs and there was a fencepost error so the response element didn't seem to be marked at times. This should fix random errors I've been seeing on big/longer response bodies.
2009-08-29GNUmakefile: fix "release" now that I've used it..
* pass correct arguments for changes * correctly generate change log from git * add blank line after description in release notes
2009-08-29clogger 0.0.2 v0.0.2
2009-08-29Log bad/invalid app responses as 500 errors
Some misbehaved apps can do this to us, and we don't want the C extension to segfault when this happens.
2009-08-29support "$request_uri" as a log variable
This was documented in the README but never implemented. Some popular web servers set REQUEST_URI even though it's not required by Rack, so allow this variable to be used if possible. As a side effect, it is also less likely to be modified by certain handlers (*cough*Rails::Rack::Static*cough*).
2009-08-29GNUmakefile: "release" steps
2009-08-28Remove benchmarks from Manifest.txt v0.0.1
We don't care
2009-08-28README: updates and clarifications
2009-08-28initial import