Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Commits on Apr 15, 2008
  1. Make mongrel_rails drop the PID file *before* loading the rails frame…

    ezmobius authored
    …work... helps monit not freak out
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@1003 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Mar 31, 2008
  1. Remove fixed port numbers used in tests, make tests more friendly to

    luislavena authored
    CI tools.
    Use of #process_based_port as port number.
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@998 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Mar 30, 2008
  1. Remove deprecated WIN32 and use Gem::Platform::CURRENT instead.

    luislavena authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@997 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Mar 27, 2008
  1. http11_parser: accept '"' (double-quote), '<', and '>' characters in …

    normalperson authored
    …URLs
    
    Some broken web browsers don't properly escape ", <, and > characters
    in URLs, however these URLs to occasionally legitimate and sometimes
    show up.
    
    This patch was submitted by Eden Li here:
      http://rubyforge.org/pipermail/mongrel-users/2006-October/001845.html
    
    This patch was accepted by Zed Shaw here:
      http://rubyforge.org/pipermail/mongrel-users/2006-October/001847.html
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@996 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Mar 8, 2008
  1. ext/http11: memoize X-Forwarded-For + X-Real-IP headers keys

    normalperson authored
    While these headers are not in RFCs, they are commonly set by
    proxies and having proxies in front of Mongrel is a popular
    deployment configuration.
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@994 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Mar 6, 2008
  1. ext/http11: remove strchr() and scary comment regarding it

    normalperson authored
    Replace it with memchr(3) instead, which works on a buffer
    with a predetermined length, so we don't have to worry about
    strange versions of Ruby which don't null-terminate strings.
    
    memchr() is used several times in the MRI source code itself
    (without compatibility definitions), so it should be portable to
    all platforms MRI runs on.
    
    Additionally, we now tolerate null bytes in the Host header and
    can still parse ports in them correctly if anybody sends
    them :)
    
    If it matters, it is also theoretically faster as it doesn't
    need to check for a '\0' terminator.
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@993 19e92222-5c0b-0410-8929-a290d50e31e9
  2. ext/http11: optimistically optimize setting of common headers

    normalperson authored
    Most HTTP traffic will send a small, common subset of headers.
    For these, we can avoid recreating RString objects and instead
    use predefined, frozen RString objects.
    
    This results in a ~22% speed improvement in header parsing for
    common cases where clients send the headers we have predefined,
    frozen objects for.
    
    Additionally, new parser tests have been added to ensure
    the optimizations work (for MRI).
    
    There is an optional qsort(3) and bsearch(3) dependency to
    improve average lookup time for the frozen strings; but it's not
    enabled due to portability concerns.  The linear search
    performance is acceptable, and can be hand-optimized for the
    most frequently seen headers by putting those first.
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@992 19e92222-5c0b-0410-8929-a290d50e31e9
  3. ext/http11: define "HTTP_" with CPP as a constant instead of a Ruby g…

    normalperson authored
    …lobal
    
    This reduces line-wrapping and makes code easier to read as well
    as slightly improving performance by avoiding variable/pointer
    dereferencing overhead.
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@991 19e92222-5c0b-0410-8929-a290d50e31e9
  4. ext/http11: modify the C Ragel parser to upper-snake-case headers in-…

    normalperson authored
    …place
    
    This is based on Zed's suggestion and helps take complexity out
    of the hand-written C code, allowing memcpy() to be used instead.
    
    Zed Shaw wrote in <20080303044659.5a550c19.zedshaw@zedshaw.com>:
    > * Also, now that I think about it, if you don't care that the original
    > string is modified in place then you can just have ragel do all of this
    > as it goes.  Simply modify the parser to have it do this transform on
    > the header chars using the existing pointer.  That'd probably be
    > alright since people don't usually keep the input headers around when
    > using the mongrel parser.
    
    I don't have a working Java runtime, so I've only made the bare
    minimum modification to the http11_parser.java.rl file which
    allows Ragel to still work with it.  All the other Java parts
    are untouched and whatever upper-casing routine was used before
    continues to be used now.
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@990 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Mar 2, 2008
  1. http11: ~6% performance increase in header parsing

    normalperson authored
    Allocate one string object and avoid appending to it causing it
    to be resized.  Additionally, optimize the string toupper copy
    so that it's done in a single pass.
    
    Also, use an inline, locale-independent toupper() implementation
    which should be more predictable for users with exotic locales
    (HTTP header names are always ASCII).
    
    The following test script was used:
    require 'mongrel'
    include Mongrel
    
    parser = HttpParser.new
    req = "GET /ruby HTTP/1.1\r\n" \
          "User-Agent: curl/7.12.3\r\n" \
          "Host: bogomips.org\r\n" \
          "Accept: */*\r\n" \
          "\r\n".freeze
    hash = Hash.new
    100000.times do
      parser.execute(hash, req, 0)
      parser.reset
      hash.clear
    end
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@989 19e92222-5c0b-0410-8929-a290d50e31e9
  2. mongrel: avoid needless syscall when num_processors limit is reached

    normalperson authored
    Since we're going to close the socket immediately after the
    num_processors limit is reached, there's no point in calling
    setsockopt(2) to enable TCP_CORK on it.  Instead, only enable
    TCP_CORK for connections we are able to handle.
    
    Additionally, avoid calling worker_list.length twice in the
    connection rejected case and instead just set num_workers to
    @workers.list.length once.  I'm assuming the original
    caching of worker_list = @workers.list to avoid having
    the log message display a different number due to a race
    condition; and this preserves that functionality.
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@988 19e92222-5c0b-0410-8929-a290d50e31e9
  3. mongrel_rails: support -n/--num-procs command-line option

    normalperson authored
    Also added "num_procs" support in the config file as
    an alias to "num_processors" to make it easier to
    migrate configs from/to mongrel_cluster.
    
    ref: http://mongrel.rubyforge.org/ticket/14
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@987 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Feb 12, 2008
  1. Remove trunk/site in preparation for Trac install.

    evanweaver authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@951 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Jan 2, 2008
  1. mongrel_service will no longer change it's registration 'space' in ge…

    luislavena authored
    …m_plugin due win32-service pollution.
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@949 19e92222-5c0b-0410-8929-a290d50e31e9
  2. Strict gem versions for mongrel_service. Solves most issues reported …

    luislavena authored
    …in relation with win32-service 0.6.0.
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@948 19e92222-5c0b-0410-8929-a290d50e31e9
  3. so does java

    evanweaver authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@945 19e92222-5c0b-0410-8929-a290d50e31e9
  4. trunk version # targets 1.2

    evanweaver authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@944 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Dec 31, 2007
  1. copy stable Rakefile changes into trunk

    evanweaver authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@942 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Dec 29, 2007
  1. update TODO with 1.9 tasks

    evanweaver authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@940 19e92222-5c0b-0410-8929-a290d50e31e9
  2. copy news updates into trunk

    evanweaver authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@939 19e92222-5c0b-0410-8929-a290d50e31e9
  3. Applied security patch for trunk too. This patch closes a remote expl…

    filipe authored
    …oit bug.
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@932 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Dec 27, 2007
  1. eval in ruby1.9 do not accept proc objects anymore, so now we call pr…

    filipe authored
    …oc {self}.binding . The behavior is the same as before (because in ruby1.8 this was kind of called inside eval anyway), but we have the benefit of run in 1.8 and 1.9.
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@926 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Dec 23, 2007
  1. restore Platform::CURRENT on win32

    evanweaver authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@925 19e92222-5c0b-0410-8929-a290d50e31e9
  2. changelog

    evanweaver authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@924 19e92222-5c0b-0410-8929-a290d50e31e9
  3. cp rakefile from stable branch

    evanweaver authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@923 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Dec 20, 2007
  1. fastthread: new 1.0.1 signed gem release for i386-mswin32 platform.

    luislavena authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@922 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Dec 18, 2007
  1. Removed useless if statement (it was always true)

    filipe authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@921 19e92222-5c0b-0410-8929-a290d50e31e9
  2. changed File.exists? (that is deprecated) for File.exist? (that exist…

    filipe authored
    …s in ruby1.9 too)
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@920 19e92222-5c0b-0410-8929-a290d50e31e9
  3. * Rakefile: replaced WIN32 with CURRENT as gem platform (paving the p…

    luislavena authored
    …ath to RubyGems 0.9.5 and upcoming 1.0).
    
    * projects/fastthread/Rakefile: ditto.
    * projects/mongrel_service/Rakefile: ditto.
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@919 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Dec 17, 2007
  1. New logger API is: Mongrel.log(:log_level,"message") or Mongrel.log("…

    wayneeseguin authored
    …message") so examples:
    
    Mongrel.log(:error, "uh oh...") # :error level logging
    Mongrel.log("hi mom!") # Defaults to :info level logging
    Updated Mongrel codebase for use with this API.
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@918 19e92222-5c0b-0410-8929-a290d50e31e9
  2. Logger now runs much smoother in mongrel_rails / configurator.

    wayneeseguin authored
    Logger also now defaults to :info level if no level is specified.
    
    
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@917 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Dec 16, 2007
  1. New Mongrel.log is verified working for Mongrel Handler, Rails and Merb.

    wayneeseguin authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@916 19e92222-5c0b-0410-8929-a290d50e31e9
  2. One step in the right direction.

    wayneeseguin authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@915 19e92222-5c0b-0410-8929-a290d50e31e9
Commits on Dec 15, 2007
  1. a TODO about removing the fix dependencies

    evanweaver authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@910 19e92222-5c0b-0410-8929-a290d50e31e9
  2. java doesn't depend on cgi_multipart_eof_fix anymore

    evanweaver authored
    git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@909 19e92222-5c0b-0410-8929-a290d50e31e9
Something went wrong with that request. Please try again.