From 2aac81b7e7b5879a0fbcf2bab8c544dc1fa5f92e Mon Sep 17 00:00:00 2001 From: Lennart Kats Date: Fri, 3 Jul 2015 16:59:18 +0200 Subject: [PATCH] Revert "Escape only invalid character sequences in reliable socket" --- .../connect.render.ejs/render-ejs.js | 2 +- node_modules/kaefer/lib/reliable_socket.js | 18 +++--------------- node_modules/kaefer/lib/version.js | 2 +- 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/node_modules/connect-architect/connect.render.ejs/render-ejs.js b/node_modules/connect-architect/connect.render.ejs/render-ejs.js index 5c25e970..9a544416 100644 --- a/node_modules/connect-architect/connect.render.ejs/render-ejs.js +++ b/node_modules/connect-architect/connect.render.ejs/render-ejs.js @@ -7,7 +7,7 @@ module.exports = function(options, imports, register) { imports["connect.render"].registerEngine("ejs", createView); ejs.filters.JSONToJS = function(obj, indent) { - return JSON.stringify(obj, null, indent).replace(/<\/?script|[\u2028\u2029\ud800-\uDFFF\ufeff]/ig, function(a) { + return JSON.stringify(obj, null, indent).replace(/<\/?script|[\u2028\u2029]/ig, function(a) { var h = a.charCodeAt(0).toString(16); return (h.length == 2 ? "\\x" : "\\u") + h + a.substr(1); }); diff --git a/node_modules/kaefer/lib/reliable_socket.js b/node_modules/kaefer/lib/reliable_socket.js index ddb2f1f9..9747de00 100644 --- a/node_modules/kaefer/lib/reliable_socket.js +++ b/node_modules/kaefer/lib/reliable_socket.js @@ -64,22 +64,10 @@ Object.defineProperty(ReliableSocket.prototype, "readyState", { } }); -function utf8escape(str) { - return str.replace(/[\ud799-\uDFFF]/g, function(x) { - return "\ud799" + String.fromCharCode(x.charCodeAt(0) - 0xd700); - }); -} - -function utf8unescape(str) { - return str.replace(/\ud799./g, function(x) { - return String.fromCharCode(x.charCodeAt(1) + 0xd700); - }); -} - ReliableSocket.prototype.onMessage = function(msg) { if (typeof msg == "string") { try { - msg = JSON.parse(utf8unescape(msg)); + msg = JSON.parse(unescape(msg)); } catch(e) {} } this.debug && console.log("on message", msg, this.seq); @@ -240,7 +228,7 @@ ReliableSocket.prototype._cancelDelayedAck = function() { ReliableSocket.prototype._ack = function() { if (this.socket.readyState == "open") { this.debug && console.log("send ack", this.recId); - this.socket.send(utf8escape(JSON.stringify({ + this.socket.send(encodeURI(JSON.stringify({ ack: this.recId }))); } @@ -336,7 +324,7 @@ ReliableSocket.prototype._sendMessage = function(data, type) { that._updateRetransmissionTimeout(Date.now() - msg.ts); }, serialize: function() { - return utf8escape(JSON.stringify({ + return escape(JSON.stringify({ ack: that.recId, seq: msg.seq, d: data, diff --git a/node_modules/kaefer/lib/version.js b/node_modules/kaefer/lib/version.js index 9659ae0f..0b3793ea 100644 --- a/node_modules/kaefer/lib/version.js +++ b/node_modules/kaefer/lib/version.js @@ -2,6 +2,6 @@ define(function(require, exports, module) { // on each backwards incompatible protocol change the version number must be // increased -exports.protocol = 10; +exports.protocol = 9; }); \ No newline at end of file