-
Add support for %uXXXX encoding in addition to UTF-8 url encoding
Matt Sanford committedAug 5, 2009
-
Make mongrel_rails drop the PID file *before* loading the rails frame…
ezmobius committedApr 15, 2008 …work... helps monit not freak out git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@1003 19e92222-5c0b-0410-8929-a290d50e31e9
-
Remove fixed port numbers used in tests, make tests more friendly to
luislavena committedMar 31, 2008 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
-
Remove deprecated WIN32 and use Gem::Platform::CURRENT instead.
luislavena committedMar 30, 2008 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@997 19e92222-5c0b-0410-8929-a290d50e31e9
-
http11_parser: accept '"' (double-quote), '<', and '>' characters in …
normalperson committedMar 27, 2008 …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
-
ext/http11: memoize X-Forwarded-For + X-Real-IP headers keys
normalperson committedMar 8, 2008 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
-
ext/http11: remove strchr() and scary comment regarding it
normalperson committedMar 6, 2008 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
-
ext/http11: optimistically optimize setting of common headers
normalperson committedMar 6, 2008 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
-
ext/http11: define "HTTP_" with CPP as a constant instead of a Ruby g…
normalperson committedMar 6, 2008 …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
-
ext/http11: modify the C Ragel parser to upper-snake-case headers in-…
normalperson committedMar 6, 2008 …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
-
http11: ~6% performance increase in header parsing
normalperson committedMar 2, 2008 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
-
mongrel: avoid needless syscall when num_processors limit is reached
normalperson committedMar 2, 2008 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
-
mongrel_rails: support -n/--num-procs command-line option
normalperson committedMar 2, 2008 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
-
Remove trunk/site in preparation for Trac install.
evanweaver committedFeb 12, 2008 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@951 19e92222-5c0b-0410-8929-a290d50e31e9
-
mongrel_service will no longer change it's registration 'space' in ge…
luislavena committedJan 2, 2008 …m_plugin due win32-service pollution. git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@949 19e92222-5c0b-0410-8929-a290d50e31e9
-
Strict gem versions for mongrel_service. Solves most issues reported …
luislavena committedJan 2, 2008 …in relation with win32-service 0.6.0. git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@948 19e92222-5c0b-0410-8929-a290d50e31e9
-
evanweaver committed
Jan 2, 2008 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@945 19e92222-5c0b-0410-8929-a290d50e31e9
-
evanweaver committed
Jan 2, 2008 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@944 19e92222-5c0b-0410-8929-a290d50e31e9
-
copy stable Rakefile changes into trunk
evanweaver committedDec 31, 2007 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@942 19e92222-5c0b-0410-8929-a290d50e31e9
-
evanweaver committed
Dec 29, 2007 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@940 19e92222-5c0b-0410-8929-a290d50e31e9
-
evanweaver committed
Dec 29, 2007 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@939 19e92222-5c0b-0410-8929-a290d50e31e9
-
Applied security patch for trunk too. This patch closes a remote expl…
filipe committedDec 29, 2007 …oit bug. git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@932 19e92222-5c0b-0410-8929-a290d50e31e9
-
eval in ruby1.9 do not accept proc objects anymore, so now we call pr…
filipe committedDec 27, 2007 …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
-
restore Platform::CURRENT on win32
evanweaver committedDec 23, 2007 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@925 19e92222-5c0b-0410-8929-a290d50e31e9
-
evanweaver committed
Dec 23, 2007 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@924 19e92222-5c0b-0410-8929-a290d50e31e9
-
cp rakefile from stable branch
evanweaver committedDec 23, 2007 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@923 19e92222-5c0b-0410-8929-a290d50e31e9
-
fastthread: new 1.0.1 signed gem release for i386-mswin32 platform.
luislavena committedDec 20, 2007 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@922 19e92222-5c0b-0410-8929-a290d50e31e9
-
Removed useless if statement (it was always true)
filipe committedDec 18, 2007 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@921 19e92222-5c0b-0410-8929-a290d50e31e9
-
changed File.exists? (that is deprecated) for File.exist? (that exist…
filipe committedDec 18, 2007 …s in ruby1.9 too) git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@920 19e92222-5c0b-0410-8929-a290d50e31e9
-
* Rakefile: replaced WIN32 with CURRENT as gem platform (paving the p…
luislavena committedDec 18, 2007 …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
-
New logger API is: Mongrel.log(:log_level,"message") or Mongrel.log("…
wayneeseguin committedDec 17, 2007 …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
-
Logger now runs much smoother in mongrel_rails / configurator.
wayneeseguin committedDec 17, 2007 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
-
New Mongrel.log is verified working for Mongrel Handler, Rails and Merb.
wayneeseguin committedDec 16, 2007 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@916 19e92222-5c0b-0410-8929-a290d50e31e9
-
One step in the right direction.
wayneeseguin committedDec 16, 2007 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@915 19e92222-5c0b-0410-8929-a290d50e31e9
-
a TODO about removing the fix dependencies
evanweaver committedDec 15, 2007 git-svn-id: svn://rubyforge.org/var/svn/mongrel/trunk@910 19e92222-5c0b-0410-8929-a290d50e31e9