なひです.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