Skip to content

Commit 630d57c

Browse files
committed
Switch to SSL_read_ex for larger reads
1 parent c153620 commit 630d57c

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/ssl.jl

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -536,15 +536,18 @@ function Base.unsafe_read(ssl::SSLStream, buf::Ptr{UInt8}, nbytes::UInt)
536536
nread = 0
537537
while nread < nbytes
538538
(!isopen(ssl) || eof(ssl)) && throw(EOFError())
539-
nread += geterror(ssl) do
539+
readbytes = Ref{Csize_t}()
540+
geterror(ssl) do
540541
ccall(
541-
(:SSL_read, libssl),
542+
(:SSL_read_ex, libssl),
542543
Cint,
543-
(SSL, Ptr{Int8}, Cint),
544+
(SSL, Ptr{Int8}, Csize_t, Ptr{Csize_t}),
544545
ssl.ssl,
545546
buf + nread,
546-
nbytes - nread)
547+
nbytes - nread,
548+
readbytes)
547549
end
550+
nread += readbytes[]
548551
end
549552
return nread
550553
end

0 commit comments

Comments
 (0)