From f949b66c69176d11467ae68fb97028283ea2f13a Mon Sep 17 00:00:00 2001 From: Patrick Collison Date: Tue, 3 May 2011 14:36:08 -0700 Subject: [PATCH] I think this logic makes more sense. (It also fixed a hang problem we were having.) --- lib/bertrem/server.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/bertrem/server.rb b/lib/bertrem/server.rb index 99b1cea..9c2864e 100644 --- a/lib/bertrem/server.rb +++ b/lib/bertrem/server.rb @@ -117,11 +117,11 @@ def receive_data(bert_request) while @receive_buf.length > 0 do unless @more begin - if @receive_buf.length > 4 + if @receive_buf.length >= 4 @receive_len = @receive_buf.slice!(0..3).unpack('N').first if @receive_len == 0 raise BERTRPC::ProtocolError.new(BERTRPC::ProtocolError::NO_DATA) unless @receive_buf.length > 0 else - raise BERTRPC::ProtocolError.new(BERTRPC::ProtocolError::NO_HEADER) + break end rescue Exception => e Server.log.error("Bad BERT message: #{e.message}")