aboutsummaryrefslogtreecommitdiff
path: root/src/library.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-02-04 20:33:33 -0800
committerAlon Zakai <alonzakai@gmail.com>2013-02-04 20:33:33 -0800
commit83fa6b5ca739d3afc4abdf3d602e0f08e0e25307 (patch)
tree57e17a82feb590c6ead58bc2deb97f03758b28e0 /src/library.js
parent27841ea86c6be6f96a2ab777a19d00686c551ed9 (diff)
fix test_websockets_partial
Diffstat (limited to 'src/library.js')
-rw-r--r--src/library.js12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/library.js b/src/library.js
index aa93598e..6c2702ba 100644
--- a/src/library.js
+++ b/src/library.js
@@ -7053,6 +7053,13 @@ LibraryManager.library = {
Module.print('recv: ' + [Array.prototype.slice.call(buffer)]);
#endif
if (len < buffer.length) {
+ if (info.stream) {
+ // This is tcp (reliable), so if not all was read, keep it
+ info.inQueue.unshift(buffer.subarray(len));
+#if SOCKET_DEBUG
+ Module.print('recv: put back: ' + (len - buffer.length));
+#endif
+ }
buffer = buffer.subarray(0, len);
}
HEAPU8.set(buffer, buf);
@@ -7151,7 +7158,10 @@ LibraryManager.library = {
if (info.stream) {
// This is tcp (reliable), so if not all was read, keep it
if (bufferPos < bytes) {
- info.inQueue.unshift(buffer.subArray(bufferPos));
+ info.inQueue.unshift(buffer.subarray(bufferPos));
+#if SOCKET_DEBUG
+ Module.print('recvmsg: put back: ' + (bytes - bufferPos));
+#endif
}
}
return ret;