diff --git a/lib/em-mongo/connection.rb b/lib/em-mongo/connection.rb index 58cdb02..931620a 100644 --- a/lib/em-mongo/connection.rb +++ b/lib/em-mongo/connection.rb @@ -154,7 +154,7 @@ def peek_size(buffer) def receive_data(data) - @buffer.append!(BSON::ByteBuffer.new(data.unpack('C*'))) + @buffer.append!(data) @buffer.rewind while message_received?(@buffer) @@ -165,7 +165,7 @@ def receive_data(data) if @buffer.more? remaining_bytes= @buffer.size-@buffer.position - @buffer = BSON::ByteBuffer.new(@buffer.get(remaining_bytes)) + @buffer = BSON::ByteBuffer.new(@buffer.to_s[@buffer.position,remaining_bytes]) @buffer.rewind else @buffer.clear