summaryrefslogtreecommitdiffstats
path: root/net/base/nss_memio.c
diff options
context:
space:
mode:
authortoyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-25 07:52:55 +0000
committertoyoshim@chromium.org <toyoshim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-01-25 07:52:55 +0000
commit32cbd36a062f9b40176dcb848537f60fd3fabce5 (patch)
tree60cdba5bb613877f4c6351f306d2043c8a4c63d2 /net/base/nss_memio.c
parentb03766fafc23b0777826747dabdfd17d41bd36bf (diff)
downloadchromium_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.c8
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;