調べてみました。どうやら環境変数SERVER_PORTは80なのに対して@cgi.server_portが0の模様。
問題のサーバは ruby-1.8.1 (2003-12-25) を用いており、@cgi.server_port の定義は
%w[ CONTENT_LENGTH SERVER_PORT ].each do |env| define_method(env.sub(/^HTTP_/n, '').downcase) do val = env_table[env] && Integer(val) end end
となっているのに対し、手元にある ruby-1.8.2 (2004-07-29) では
%w[ CONTENT_LENGTH SERVER_PORT ].each do |env| define_method(env.sub(/^HTTP_/n, '').downcase) do (val = env_table[env]) && Integer(val) end end
となっていたので、このように変更したところ、@cgi.server_port も80となった。
しばらくは cgi.rb の変更でしのぐことに。そのうち Ruby のバージョンを上げたほうがいいんだろうな。
*Messages* の更新情報取得には、antenna.lirs もしくは index.rdfをご利用ください。 豪傑アンテナ の LIRSからも取得可能です。