http-access.rbのヘビーユーザーです。

同一hostへ連続してrequest_getを送っている時に、0バイトのデータを
get_dataで読み込むと状態遷移がうまくいかず(:DATAのままになってしまう)、
次回のrequest_getの後get_responseで例外 state != :META
(HTTPInvalidState)が発生します。

初回のget_dataで一回目のeof?が成立する場合にも状態遷移させてやらないと
いけないのでしょうか。一応パッチをつけますが、これだと他のデータで二回
eof?時の処理が行われるのでダメっぽいです。どうするのがいいでしょうか?



--- http-access.rb.orig	Mon Nov  1 18:02:00 1999
+++ http-access.rb	Mon Nov  1 18:04:03 1999
@@ -198,7 +198,15 @@
 
   def get_data(maxbytes=nil, &block)
     get_response if @state == :META
-    return nil if eof?
+#    return nil if eof?
+    if eof?
+      if @next_connection
+      	@state = :WAIT
+      else
+      	close
+      end
+      return nil 
+    end
     raise HTTPInvalidState, 'state != DATA' unless @state == :DATA
     data = nil
     if block