Don't set linger on the Connection sockets until they're closing
Defer creation of the reactor in the handler until it's run
Add extended_reply? predicate to
Mongrel2::Request for cases where it's used as a response too
Fix version of dependency on cztop-reactor
Refactor IO code to use cztop-reactor
Fix use of Gem.datadir for newer Rubygems.
Support (require) Sequel 5
Update libxml-ruby dependency to the latest
Add missing config input file for the bootstrap command
Add missing require to Strelka::Handler.
Pin Sequel to 4.45 to avoid breaking changes.
Randomize the inproc selfpipe socket name (mainly useful for testing).
Fix issues with (and require) Sequel 4.45+
Use the CZTop library instead of rbczmq for ZeroMQ sockets.
Removed explicit versions for .gems local development
Bumped Configurability dependency.
Close spooled request bodies at the end of the request lifecycle.
Pull up config setup/teardown into the spec helper
Cache config mimetype table
Fix the license name in the gemspec.
Fix an order dependency in the specs.
Guard against HTTP requests with a nil body.size.
Mongrel2::Config a proper abstract subclass of Sequel::Model.
Raise ZMQ::Error on nil return from Connection#recv
Mongrel2 spool files are removed after the lifetime of a request.
Add the newly proposed code specific to legal obstacles / censorship.
Remove some duplicated status codes that warn under Ruby 2.2.
Remove some debug logging that errors under Ruby 2.2.
Mongrel2::Request#server_chroot Used to qualify filesystem paths relative to Mongrel's chroot for sendfile, async upload, etc.
Add support for sending extended replies.
Convert back to rbczmq for modern mongrel2s
Config introspection and cleanup.
Use LibXML instead of Nokogiri for XML request type
Move back to the zmq library, as rbczmq was too unstable.
Drop the xrequest table when creating the config DB.
Replace stagnant zmq library with rbczmq.
Add config support for 1.8.1's “X-Requests”
Update dependencies, add Gemfile.
Mongrel2 1.8.1 config schema.
Make explicitly-set 'nil' body also a bodiless response.
Add support for Sequel 4.x
Fixes for Ruby 2.
Fix status line for responses that have an explicit content-length. This is so HEAD responses, for example, don't get reset to '204 No Content' just because their body is empty.
Convert ::for_uuid to a introspection-friendly dataset method.
Only log if wrapping a non-String body in a StringIO
Updated Config model dataset declarations for Sequel versions > 3.42.
Fix the 'start' subcommand of m2sh.rb.
Allow WebSocket frames to be set to reserved opcodes
Allow WebSocket opcodes to be set numerically
Add a socket_id method to all WebSocket frame types.
Mongrel2::WebSocket::Methods mixin with the implementation of the method.
Included the new mixin in WebSocket::Frame, WebSocket::ClientHandshake, and WebSocket::ServerHandshake
Ensure the ZMQ context is closed when run exits.
Fix the multiple-server case in 'm2sh.rb start'
Add support for the new (edge) 'url-scheme' header and add an ssl? predicate build on it.
Try to make examples more tolerant of being run from other directories
Add (1.8.0ish) url-scheme header to the defaults in mongrel2/testing
Remove some more chatty debug logging.
Implement deferred signal-handling for
Update the examples/
Squelch some of the noisier debug logging
Add a settings command for showing “expert” settings to m2sh.rb.
Fix an error message in m2sh.rb.
Improve Server control-socket pathing.
Mongrel2::Config::Server#control_socket will now check for it under the chroot, and relative to the pwd, and will raise an exception if no socket is found instead of just returning a socket that's doomed to block forever.
Documentation and packaging fixes. Switch to sqlite3 until Amalgalite works until MacOS X again.
Add a static index page to the quickstart Dir directory.
Make the failure to find a mongrel2 binary friendlier.
Fix parameter name of ::by_send_ident for auto-mapping by the rest service.
Make m2sh.rb write audit log events for modifying actions
Add a –why option to m2sh.rb to allow reasons for actions to be logged.
Add a convenience delegator to
Mongrel2::Config for logging an action.
Mongrel2::Config::Log method documentation
Remove RDoc sections from
Mongrel2::Config::Server, as they made stuff more difficult to find.
Make stringified Log events only include parens if the event has a 'why' field.
Remove extraneous message from m2sh.rb's quickstart subcommand
Mongrel2::Config::Server pathname methods for the path attributes (#access_log, pid_file, etc.).
Show the server's URL at startup
Finish Config::Server API docs and add a predicate method for use_ssl
Remove shell mode from m2sh.rb.
Adds support for websocket handshake in 'develop' branch.
Adds 'bootstrap' and 'quickstart' commands to m2sh.rb.
Fix the derived path to the async upload body
Add a default async upload handler method that cancels the upload
Convert request and response entity bodies to IOish objects instead of Strings.
Finished implementation of
Mongrel2 async upload API – async-uploaded entity bodies now become File entity bodies of the “X-Mongrel2-Upload-Done” request.
Add a few newer-rfc HTTP error codes.
Add support for Content-type charsets.
Fix a bug when duping a
Mongrel2::Table with immediate objects as values.
Change Config.settings to a Table.
Add support for
Mongrel2 async uploads.
Add a convenience method to
Mongrel2::Handler for fetching its associated config object.
Fix typos in m2sh.rb's exception handler
Bumping dependency on Loggability to 0.2.
Fix loggability dependency version.
Convert to Loggability for logging.
Add an option to bin/m2sh.rb to rewrite the mongrel2 port of a host on the fly at startup.
Rename the defaults for
Mongrel2::Config. This was changed to conform with Configurability's defaults API. The old name was aliased to the new for backward-compatibility.
Mongrel2::HTTPRequest#remote_ip method. This should support both the current Mongrel (1.7.5) and the future plan for appended X-Forwarded-For headers. [mahlon]
Fix a require in mongrel2/testing.
Assume paths passed to configure( :configdb ) should use SQLite.
Move the “other implementations” section to the bottom of the README.
Set API docs to use fivefish if available
Fix dependencies and the spec that fails when you run against the version of Sequel I was trying to fix in the previous release.
Fix the config DB for Sequel 3.34.
Note: This fix includes several API changes
Mongrel2::Config.adapter_method is now .sqlite_adapter, and just returns the name of the appropriate adapter instead of a Method object that returns a Sequel::Database.
Mongrel2::Config.pathname is now .dbname, and returns either a URI or a String, depending on how the database handle was created.
These changes also will make it easier to use alternative configuration databases, e.g., when I get the PostgreSQL config module working, it'll be easier to point the config model at it.
Make HTTPResponse default to a 200 status if there's a body.
Make the 'handler' DSL directive replace any existing handler with its send_ident.
Add a validation to ensure that handler configs have unique send/recv specs and IDs.
Squelch logging of expected SQL errors. Errors are normal during
Mongrel2::Config.db= and .database_initialized?, so add a new .without_sql_logging method for temporarily disabling SQL logging, and wrap that around the methods in quesion.
Fix documentation for WebSocket#validate_control_frame
Add WebSocket (RFC6455) support
Mongrel2::Config::Host deletes cascade to their routes
Init the database outside of the transaction in the “server” DSL method
Remove the SAFE test from the request-dumper example
Correct the line number of errors in configs loaded from m2sh.rb
Log SQL to the logger at DEBUG level
Mongrel2::Config::Server.by_uuid dataset method to return a dataset instead of the instance.
Add an OPTIONS request factory method to the
Fix the ZMQ socket identifier used by Connection.
Add missing slash in the control socket URI
Add an argument so the helloworld handler can use another config DB
Fix handling of NO CONTENT (204) responses.
Don't set a Content-type header
Omit the body even if there is one
Set the content-length to 0
Add bodiless response predicate to
Add put and delete factory methods to the
Flesh out docs for the Filter config class.
Make the DSL declarations replace existing records.
Flesh out the documentation for the DSL
Provide convenience methods for resetting an HTTP request's Content-type and Content-encoding headers.
This release includes updates for Mongrel 1.8 and finishes up the m2sh.rb tool.
New config class:
New DSL directive inside a 'server' section: 'filter'
- #control_socket - #pid_file_path
Added a new Mongrel2::Constants::DEFAULT_CONTROL_SOCKET constant
Finished implementation of the rest of the m2sh commands in the ruby analog
Adding a “sudo” option to m2sh.rb to start the server as root
Enable the json_serializer plugin for the config ORM classes
Backing out the change to HTTPResponse to use the @body ivar: changed the negotiation
Bugfix: dup instead of clone to get rid of frozen status.
Bugfix: use a dup of the default content-type constant instead of the String itself.
Mongrel2::Table not duping/cloning its internal values.
Set a default Content-type header in HTTP responses
Split out the normalization of HTTP response headers into two methods for overriding.
Add an optional request attribute to
Mongrel2::Response and make Response.from_request set it. This is to make things like content- negotiation less of a pain in the ass.
Log request and response both at INFO.
Added body= for rewriting the entity body
Added convenience methods for fetching the Content-type and Content- encoding headers: content_type, content_encoding
Switched the specs to use
Mongrel2::RequestFactory for making request objects
Added support for POST and HEAD requests to
Mongrel2::Config::Server.by_uuid( uuid )
Measure the content-length of HTTPResponse in bytes, not characters.
Log unhandled disconnect notices as INFO instead of WARN
Made a stringified connection show the useful parts of the inspect output
Mongrel2::Client fixes/documentation updates.
Include FileUtils in the 'm2sh.rb load' context so configs loaded by it can create run/log directories, etc.
Mongrel2::Connection: Set SO_LINGER on the sockets so closing the connection doesn't wait for unconsumed events.
Add missing include to
Correct body size in inspected request/response output.
Change the default response status from '200 OK' to '204 No Content'
Add missing HTTP::CONTINUE constant.
Factor out the generically-useful RSpec helper functions into mongrel2/testing.rb and add a RequestFactory.
Fix object ID in inspect output, clean up inspected Request/Response objects.
Tightened up the mongrel2.org DSL example, remove the accidentally- committed adminserver part.
Request dumper now runs under $SAFE = 1
Revert examples back to using examples.sqlite
Added a bit of CSS to the examples
Config DSL: directory: Default the index file to index.html
Fixed some header problems in Mongrel2::HTTPResponse:
Re-calculate content-length and date headers on each render.
Don't clear headers passed to the constructor.
Update dependency to rbzmq-2.1.4 for ZMQ::Error.
Added a shim to work around lack of ZMQ::Error in zmq-2.1.3.