diff options
author | toyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-25 07:52:55 +0000 |
---|---|---|
committer | toyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-01-25 07:52:55 +0000 |
commit | 32cbd36a062f9b40176dcb848537f60fd3fabce5 (patch) | |
tree | 60cdba5bb613877f4c6351f306d2043c8a4c63d2 /net/base/nss_memio.c | |
parent | b03766fafc23b0777826747dabdfd17d41bd36bf (diff) | |
download | chromium_src-32cbd36a062f9b40176dcb848537f60fd3fabce5.zip chromium_src-32cbd36a062f9b40176dcb848537f60fd3fabce5.tar.gz chromium_src-32cbd36a062f9b40176dcb848537f60fd3fabce5.tar.bz2 |
SSLClientSocket::IsConnected should care for internal buffers
SSLClientSocket::IsConnected() and SSLClientSocket::IsConnectedAndIdle()
may return false though it has buffered data. They should care for internally
processing buffer.
There are various implementation, for NSS, OpenSSL, and platform dependent
system libraries. This CL fix the issue on NSS. Fix for others will follow.
BUG=160033
TEST=browser_tests, net_unittests
Review URL: https://codereview.chromium.org/11366155
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@178775 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/base/nss_memio.c')
-rw-r--r-- | net/base/nss_memio.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/net/base/nss_memio.c b/net/base/nss_memio.c index 4092c17..bd047106 100644 --- a/net/base/nss_memio.c +++ b/net/base/nss_memio.c @@ -402,6 +402,14 @@ int memio_GetReadParams(memio_Private *secret, char **buf) return memio_buffer_unused_contiguous(mb); } +int memio_GetReadableBufferSize(memio_Private *secret) +{ + struct memio_buffer* mb = &((PRFilePrivate *)secret)->readbuf; + PR_ASSERT(mb->bufsize); + + return memio_buffer_used_contiguous(mb); +} + void memio_PutReadResult(memio_Private *secret, int bytes_read) { struct memio_buffer* mb = &((PRFilePrivate *)secret)->readbuf; |