なひです.mod_rubyネタはruby-listでよいでしょうか?

> From: NAKAMURA, Hiroshi [mailto:nakahiro / sarion.co.jp]
> Sent: Saturday, July 03, 1999 5:58 PM

> なひです.mod_rubyと格闘中です.
> うーん,mod_rubyのdebugって,どうやりゃいいんだろう.^^;

降参です.とりあえず現象のご報告をして,
どなたかが直してくれるといいなー,なんてムシのいい.^^;

Apache/1.3.3 (Unix) mod_ruby/0.1.0 Ruby/1.3.1(1999-03-11)

を使ってるんですが,ある程度の長さの文字列をPOSTすると,
mod_ruby経由で動いているスクリプトのお返事がなくなるようです.

cat.rbがmod_rubyサーバで動くスクリプトです.おうむ返しします.
req.rbがmod_rubyサーバにGET/POSTするスクリプトです.

	/	/	/

% cat cat.rb
CRLF = "\r\n"
header = []
header.push( 'HTTP/1.0 200 OK' )
header.push( 'Content-type: text/plain' )
header.push( CRLF )
msg = header.join( CRLF )
if ENV.has_key?( 'QUERY_STRING' )
  msg << 'QUERY_STRING: ' << ENV['QUERY_STRING'] << "\n"
end
while STDIN.gets
  msg << $_
end
print msg

	/	/	/

% cat req.rb
#!/usr/local/bin/ruby

hostName = 'www.foo.bar.jp'
portNo = 80
absPath = '/cat.rb'
method = ARGV.shift
postSize = ARGV.shift

if ( method == 'GET' )
  absPath << '?' << 'x' * postSize.to_i
end

require 'socket'
CRLF = "\r\n"
header = []
header.push( "POST #{absPath} HTTP/1.0" ) 
header.push( 'User-agent: NaHi original agent/19990703' )
header.push( 'Content-Length: ' << postSize ) if ( method != 'GET' )
header.push( CRLF )
msg = header.join( CRLF )
msg << 'x' * postSize.to_i if ( method != 'GET' )
socket = TCPsocket.open( hostName, portNo )
socket.write( msg )
while ( !socket.eof? )
  print socket.read
end

print "\n"

	/	/	/

で,以下動作結果です.

  4000 bytesをPOST→OK
  4100 bytesをPOST→返事がないのでC-c
  4100 bytesをGET→OK

4000/4100というのは,環境に依存するのかもしれませんね...
これだけで,どなたかなんとかわかりませんでしょうか.^^;

	/	/	/

% ./req.rb POST 4000
HTTP/1.0 200 OK
Content-type: text/plain

xxxx[省略; 4000個]xxxx


% ./req.rb POST 4100
^C./req.rb:24:in `eof?': Interrupt
	from ./req.rb:24


% ./req.rb GET 4100
HTTP/1.0 200 OK
Content-type: text/plain

QUERY_STRING: xxxx[省略; 4000個]xxxx