We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
2 parents ccc1594 + d4389b4 commit 1bb0ce2Copy full SHA for 1bb0ce2
lib/openssl/buffering.rb
@@ -348,13 +348,18 @@ def do_write(s)
348
@wbuffer << s
349
@wbuffer.force_encoding(Encoding::BINARY)
350
@sync ||= false
351
- if @sync or @wbuffer.size > BLOCK_SIZE
352
- until @wbuffer.empty?
353
- begin
354
- nwrote = syswrite(@wbuffer)
355
- rescue Errno::EAGAIN
356
- retry
+ buffer_size = @wbuffer.size
+ if @sync or buffer_size > BLOCK_SIZE
+ nwrote = 0
+ begin
+ while nwrote < buffer_size do
357
+ nwrote += syswrite(@wbuffer[nwrote, buffer_size - nwrote])
358
+ rescue Errno::EAGAIN
359
+ retry
360
+ end
361
end
362
+ ensure
363
@wbuffer[0, nwrote] = ""
364
365
0 commit comments