<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel">
    <title>gmane.comp.lang.ruby.mongrel.devel</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/162"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/161"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/160"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/159"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/158"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/157"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/156"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/155"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/154"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/152"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/151"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/150"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/162">
    <title>[PATCH 0/2] strip leading/trailing linearwhitespace in headers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/162</link>
    <description>&lt;pre&gt;Hello, I've pushed the following two changes to my git repo,
based on "master" of git://github.com/fauna/mongrel.git

  [PATCH 1/2] ragel.rake: rebuild on http11_parser_common.rl changes
  [PATCH 2/2] strip trailing and leading linear whitespace in headers

The first patch is a trivial rake dependency fix.

I could definitely use a more pairs of eyes to review my second patch
which I've included inline below.  I'm also planning this for the
unicorn and kcar projects.

RFC 2616, section 4.2:
---
  You can pull from my repo here:

    git pull git://bogomips.org/mongrel.git http11-lws

  If you like web browsers (I don't) you can view the changes here:

    http://bogomips.org/mongrel.git?h=http11-lws

 ext/http11/http11_parser.c         |  435 +++++++++++++++++++-----------------
 ext/http11/http11_parser_common.rl |    5 +-
 test/test_http11.rb                |   66 ++++++
 3 files changed, 304 insertions(+), 202 deletions(-)

 (removed ext/http11/http11_parser.c diff for brevity)

diff --git a/ext/http11/ht&lt;/pre&gt;</description>
    <dc:creator>Eric Wong</dc:creator>
    <dc:date>2011-05-18T21:13:49</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/161">
    <title>hi</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/161</link>
    <description>&lt;pre&gt;, as soon as i heard about this I thought of you http://j.mp/koA4P6
&lt;/pre&gt;</description>
    <dc:creator>wyhaines-Re5JQEeQqe8AvxtiuMwx3w&lt; at &gt;public.gmane.org</dc:creator>
    <dc:date>2011-05-17T15:20:11</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/160">
    <title>[ANN] mongrel_service 0.4.beta2 Released</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/160</link>
    <description>&lt;pre&gt;mongrel_service version 0.4.beta2 has been released!

* &amp;lt;http://github.com/fauna/mongrel_service&amp;gt;

This plugin offer native win32 services for rails.
This replace mongrel_rails_service.

Since this is a pre-release gem, you can install it with:

gem install mongrel_service --prerelease

If no bug is found, expect an final release next week.

Changes:

### 0.4.beta2 / 2010-01-01

* Enhancements:
  * Removed win32-service dependency, making mongrel_service more portable
    between Ruby implementations on Windows (One-Click and RubyInstaller)

  * Now mongrel log files are written to the path specified by --log option.
    Contribution by Daniel Gies (BigFix). Closes #44.

* Bugfixes:
  * Wait longer for child process terminate properly (max 20 seconds).
    Imported tests from RubyServices project. Closes #18.

  * Workaround Windows 2008 process detection issues forcing 'service'
    initialization parameter. Closes #54. [papillon]

  * Updated ServiceFB to work with FB &amp;gt; 0.18.


&lt;/pre&gt;</description>
    <dc:creator>Luis Lavena</dc:creator>
    <dc:date>2010-01-01T21:46:50</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/159">
    <title>Re: [ANN] Zbatery - Unicorn+Rainbows! withless Unix</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/159</link>
    <description>&lt;pre&gt;
Due to overwhelming demand based on all the feedback I've received
(nothing), I've decided to just release it for now since I can
probably use it for some low memory machines I have lying around.

http://zbatery.bogomip.org/

gem install zbatery

The Unicorn HTTP parser *should* compile on non-*nix since it's
using rake-compiler as of 0.95.2 now.

&lt;/pre&gt;</description>
    <dc:creator>Eric Wong</dc:creator>
    <dc:date>2009-12-10T09:14:19</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/158">
    <title>Re: [ANN] Zbatery - Unicorn+Rainbows!withless Unix</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/158</link>
    <description>&lt;pre&gt;
It has exactly the same config file format as Rainbows! (which is a
superset of Unicorn's config file).  The before_fork/after_fork hooks
run anyways (in the same process) because some people may rely on them.

Command-line wise, it's like "rainbows" (which is modeled after
"unicorn" (which was modeled after "rackup")).

Basically it's Rainbows! (and in turn, Unicorn) underneath, so it
supports multiple concurrency models but it doesn't fork off any worker
processes at all.

I expect it to work (or easy to get working) on Win32; but I won't be
able to test that myself.  It's good on low-powered *nix boxes without a
lot of RAM and where I intend to use it.

For Unix-only, it actually supports most of the same signals Rainbows!
does.  HUP is just USR2+QUIT (same as Unicorn without a config file),
and TTIN/TTOU are ignored; but it won't barf if it's trying to setup a
signal handler and raise an exception.


Still need to clean that code up a bit...

&lt;/pre&gt;</description>
    <dc:creator>Eric Wong</dc:creator>
    <dc:date>2009-11-28T05:41:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/157">
    <title>[ANN] Zbatery - Unicorn+Rainbows! with lessUnix</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/157</link>
    <description>&lt;pre&gt;Hi all,

Don't have time to really write it up, but maybe we could just rot 13
the name and stick a 2.0 label on it :&amp;gt;

  http://git.bogomips.org/cgit/zbatery.git

If you grab the latest unicorn.git, you can get Rubinius support
for the HTTP parser.

  http://git.bogomips.org/cgit/unicorn.git

Also, in the latest rainbows.git it can work with Rubinius Actors

  http://git.bogomips.org/cgit/rainbows.git

&lt;/pre&gt;</description>
    <dc:creator>Eric Wong</dc:creator>
    <dc:date>2009-11-28T02:08:00</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/156">
    <title>Re: [RFC Mongrel2] simpler response API +updated HTTP parser</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/156</link>
    <description>&lt;pre&gt;
One more that I just pushed out to git://git.bogomips.org/ur-mongrel

From: Eric Wong &amp;lt;normalperson-rMlxZR9MS24&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
Date: Tue, 27 Oct 2009 14:38:51 -0700
Subject: [PATCH] tee_input: avoid IO#sync=true to workaround BSD stdio issue

IO#sync = true causes bad things with Ruby 1.8.x and stdio in
*BSDs.  Since Mongrel 1.x originally didn't use IO#sync=true and
needs to work on slow clients and a wider number of OSes than
Unicorn, it maybe be better to just avoid IO#sync=true instead
of an explicit seek-after-write (like Unicorn does).

This issue was tracked (and fixed) in ruby-core:26300[1], but a
MRI 1.8 release may be a while off and people have a tendency to
upgrade MRI slowly.

[1] http://redmine.ruby-lang.org/issues/show/2267
---
 lib/mongrel/tee_input.rb |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/lib/mongrel/tee_input.rb b/lib/mongrel/tee_input.rb
index 3605e20..cf20613 100644
--- a/lib/mongrel/tee_input.rb
+++ b/lib/mongrel/tee_input.rb
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -134,6 +134,10 &amp;lt; at &amp;gt;&lt;/pre&gt;</description>
    <dc:creator>Eric Wong</dc:creator>
    <dc:date>2009-10-27T21:59:02</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/155">
    <title>Re: [RFC Mongrel2] simpler response API +updated HTTP parser</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/155</link>
    <description>&lt;pre&gt;
We hit one bug/weird-interaction with Rails in Unicorn so here's a fix I
put it.  Unfortunately the test cases for TeeInput in Unicorn currently
rely on fork() + pipe() (it was just more natural for me to write), but
if there's interest I could be persuaded to write a non-*nix version.

This issue that could be arguably considered a bug in Rails:
  https://rails.lighthouseapp.com/projects/8994/tickets/3343

Just in case, I'm also asking for Rack to allow the readpartial method
into the "rack.input" spec here:
   http://groups.google.com/group/rack-devel/browse_thread/thread/3dfccb68172a6ed6

From: Eric Wong &amp;lt;normalperson-rMlxZR9MS24&amp;lt; at &amp;gt;public.gmane.org&amp;gt;
Date: Wed, 7 Oct 2009 18:24:27 -0700
Subject: [PATCH] more-compatible TeeInput#read for POSTs with Content-Length

There are existing applications and libraries that don't check
the return value of env['rack.input'].read(length) (like Rails
:x).  Those applications became broken under the IO#readpartial
semantics of TeeInput#read when handling larger request bo&lt;/pre&gt;</description>
    <dc:creator>Eric Wong</dc:creator>
    <dc:date>2009-10-08T01:35:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/154">
    <title>[RFC Mongrel2] simpler response API + updatedHTTP parser</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/154</link>
    <description>&lt;pre&gt;Hi all,

I've pushed out some changes based on fauna/master[1] to
git://git.bogomips.org/ur-mongrel that includes a good chunk of the
platform-independent stuff found in Unicorn.

The new HTTP parser is named "mongrel_http" to avoid loadtime conflicts
with the old one ("http11") but maintains the same class name
(Mongrel::HttpParser).  This one even supports HTTP/0.9, so "http11"
wasn't an appropriate name for it :)


Problems:

  I'm having some trouble with Rake+Echoe 3.2 with an "uninitialized
  constant Platform" error but everything seems to work by hand without
  Rake+Echoe.

  I'm also getting some test failures under 1.9.1-p243 with the
  semaphore/threading tests.  I haven't looked too hard at this current
  threading model, but my gut feeling is that it's too complicated and a
  "dumber" model in mongrel 1.x *or* a fixed number of worker threads
  doing accept() is sufficient...

  One thing that may be cool is to support multiple
  threading/concurrency models since 1.8/1.9/jruby/rubinius all
  im&lt;/pre&gt;</description>
    <dc:creator>Eric Wong</dc:creator>
    <dc:date>2009-09-12T23:57:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/152">
    <title>teaching Mongrel to inherit sockets (andreplace mongrel_cluster)</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/152</link>
    <description>&lt;pre&gt;This change to Mongrel should be completely harmless for non-UNIX
systems, too (it won't break (or do) anything).

This minimal change let Mongrels inherit listen sockets from a parent
process, so that parent could be a cluster manager.  This means no more
port juggling with mongrel_cluster!  The entire Mongrel pack will all
share one port.

Only the manager script (see below) itself relies on UNIX-isms (but I
think mongrel_cluster did, too).

diff --git a/lib/mongrel.rb b/lib/mongrel.rb
index 0619abe..90e99e7 100644
--- a/lib/mongrel.rb
+++ b/lib/mongrel.rb
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -91,7 +91,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; module Mongrel
     def initialize(host, port, num_processors=950, throttle=0, timeout=60)
       
       tries = 0
-      &amp;lt; at &amp;gt;socket = TCPServer.new(host, port) 
+      &amp;lt; at &amp;gt;socket = if ENV['LISTEN_FD']
+        TCPServer.for_fd(ENV['LISTEN_FD'].to_i)
+      else
+        TCPServer.new(host, port)
+      end
       if defined?(Fcntl::FD_CLOEXEC)
         &amp;lt; at &amp;gt;socket.fcntl(Fcntl::F_SETFD, Fcntl::FD_CLOEXEC)
       end
---

Here's my initial cut o&lt;/pre&gt;</description>
    <dc:creator>Eric Wong</dc:creator>
    <dc:date>2009-08-14T01:18:06</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/151">
    <title>Re: [PATCH] join repeated headers with acomma</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/151</link>
    <description>&lt;pre&gt;
On second thought, we're doing the concatenation _after_ the length
validation.  I don't think this affects things much in practice since we
already have an overall header size limit and anything capable of
running Ruby/Mongrel shouldn't have to worry given about a few tens of
kilobytes...

&lt;/pre&gt;</description>
    <dc:creator>Eric Wong</dc:creator>
    <dc:date>2009-08-10T00:19:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/150">
    <title>[PATCH] join repeated headers with a comma</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.ruby.mongrel.devel/150</link>
    <description>&lt;pre&gt;These are joined in in accordance with rfc2616, section 4.2[1].

This is also ticket #50 in Trac:
   http://mongrel.rubyforge.org/ticket/50

[1] - http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4.2
---

 This applies against c365ba16d12a14bdf1cc50a26f67dd3b45f5a4d8 in Evan's
 fauna repository, I'm completely certain where I should be applying
 this but it should be trivial to port this patch to anything else
 remotely resembling it...

 ext/http11/http11.c           |    9 ++++++++-
 test/unit/test_http_parser.rb |   10 +++++++++-
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/ext/http11/http11.c b/ext/http11/http11.c
index a228019..a770c60 100644
--- a/ext/http11/http11.c
+++ b/ext/http11/http11.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -182,6 +182,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void http_field(void *data, const char *field, size_t flen, const char *value, s
   VALUE req = (VALUE)data;
   VALUE v = Qnil;
   VALUE f = Qnil;
+  VALUE e = Qnil;
 
   VALIDATE_MAX_LENGTH(flen, FIELD_NAME);
   VALIDATE_MAX_LENGTH(vlen, FIELD_VALUE);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -208,7 +209&lt;/pre&gt;</description>
    <dc:creator>Eric Wong</dc:creator>
    <dc:date>2009-08-10T00:10:22</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.lang.ruby.mongrel.devel">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.lang.ruby.mongrel.devel</link>
  </textinput>
</rdf:RDF>

