Skip to content

Commit 66e9508

Browse files
committed
Connection#send_message should return bytes sent
1 parent 182b53d commit 66e9508

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

lib/mongo/connection.rb

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ def slave_ok?
376376
# @param [BSON::ByteBuffer] message a message to send to the database.
377377
# @param [String] log_message text version of +message+ for logging.
378378
#
379-
# @return [True]
379+
# @return [Integer] number of bytes sent
380380
def send_message(operation, message, log_message=nil)
381381
@logger.debug(" MONGODB #{log_message || message}") if @logger
382382
begin
@@ -812,12 +812,17 @@ def add_message_headers(operation, message)
812812

813813
# Low-level method for sending a message on a socket.
814814
# Requires a packed message and an available socket,
815+
#
816+
# @return [Integer] number of bytes sent
815817
def send_message_on_socket(packed_message, socket)
816818
begin
819+
total_bytes_sent = 0
817820
while packed_message.size > 0
818821
byte_sent = socket.send(packed_message, 0)
822+
total_bytes_sent += byte_sent
819823
packed_message.slice!(0, byte_sent)
820824
end
825+
total_bytes_sent
821826
rescue => ex
822827
close
823828
raise ConnectionFailure, "Operation failed with the following exception: #{ex}"

test/collection_test.rb

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,11 @@ def test_safe_remove
259259
@test.drop
260260
end
261261

262+
def test_remove_return_value
263+
assert_equal 50, @@test.remove({})
264+
assert_equal 57, @@test.remove({"x" => 1})
265+
end
266+
262267
def test_count
263268
@@test.drop
264269

0 commit comments

Comments
 (0)