diff options
author | Alon Zakai <alonzakai@gmail.com> | 2012-10-01 16:35:27 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2012-10-01 16:35:27 -0700 |
commit | 6c8ac389060b685dec87faade39841c2799c4d0a (patch) | |
tree | 497941020c5863a2a0052ad1088b47c2b0b39424 /src | |
parent | 2a4599a92a570a461a60b1eb79df03908a047711 (diff) |
add socket send(), and almost working test
Diffstat (limited to 'src')
-rw-r--r-- | src/library.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/library.js b/src/library.js index 938a3c92..a41887bd 100644 --- a/src/library.js +++ b/src/library.js @@ -6391,6 +6391,29 @@ LibraryManager.library = { console.log('binary!'); } } + info.sendQueue = []; + info.senderWaiting = false; + info.sender = function(data) { + if (data) { + info.sendQueue.push(data); + } else if (info.sendQueue.length == 0) { + return; + } + if (info.socket.readyState != info.socket.OPEN) { + if (!info.senderWaiting) { + console.log('waiting for socket in order to send'); + setTimeout(info.sender, 100); + info.senderWaiting = true; + } + return; + } + for (var i = 0; i < info.sendQueue.length; i++) { + console.log('sending ' + info.sendQueue[i]); + info.socket.send(window.btoa(info.sendQueue[i])); + } + info.sendQueue = []; + info.senderWaiting = false; + } return 0; }, @@ -6413,6 +6436,13 @@ LibraryManager.library = { return ret; }, + send__deps: ['$Sockets'], + send: function(fd, buf, len, flags) { + var info = Sockets.fds[fd]; + if (!info) return -1; + info.sender(Pointer_stringify(buf, len)); + }, + shutdown: function(fd, how) { var info = Sockets.fds[fd]; if (!info) return -1; |