From 3a6e0463fb35eec40f49d28ec7eefb927dac18e2 Mon Sep 17 00:00:00 2001 From: Felix Hammerl Date: Wed, 15 Oct 2014 19:58:26 +0200 Subject: [PATCH] [WO-567] fix TLS worker handling --- Gruntfile.js | 24 ++++++++++++++++-------- package.json | 4 ++-- src/js/app-controller.js | 4 ++-- src/js/util/connection-doctor.js | 8 +++++--- test/unit/connection-doctor-test.js | 14 +++++++++----- 5 files changed, 34 insertions(+), 20 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 58f6223..9e66d74 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -126,6 +126,12 @@ module.exports = function(grunt) { }, options: browserifyOpt }, + tlsWorker: { + files: { + 'dist/js/tcp-socket-tls-worker.browserified.js': ['node_modules/tcp-socket/src/tcp-socket-tls-worker.js'] + }, + options: browserifyOpt + }, unitTest: { files: { 'test/unit/index.browserified.js': [ @@ -249,6 +255,15 @@ module.exports = function(grunt) { sourceMapName: 'dist/js/mailreader-parser-worker.min.js.map' } }, + tlsWorker: { + files: { + 'dist/js/tcp-socket-tls-worker.min.js': ['dist/js/tcp-socket-tls-worker.browserified.js'] + }, + options: { + sourceMap: true, + sourceMapName: 'dist/js/tcp-socket-tls-worker.min.js.map' + } + }, unitTest: { files: { 'test/unit/index.js': [ @@ -321,13 +336,6 @@ module.exports = function(grunt) { src: ['openpgp/openpgp.js', 'openpgp/openpgp.worker.js', 'forge/forge.min.js'], dest: 'dist/js/' }, - tls: { - expand: true, - flatten: true, - cwd: 'node_modules/tcp-socket/src/', - src: ['tcp-socket-tls-worker.js', 'tcp-socket-tls.js'], - dest: 'dist/js/' - }, font: { expand: true, cwd: 'src/font/', @@ -489,4 +497,4 @@ module.exports = function(grunt) { grunt.registerTask('release-stable', ['dist', 'manifest-stable', 'compress']); grunt.registerTask('default', ['release-dev']); -}; \ No newline at end of file +}; diff --git a/package.json b/package.json index bae2b3c..a1c7156 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "pgpbuilder": "~0.4.0", "pgpmailer": "~0.4.0", "socket.io": "^1.0.6", - "tcp-socket": "https://github.com/whiteout-io/tcp-socket/tarball/dev/WO-567", + "tcp-socket": "~0.3.13", "wo-smtpclient": "^0.3.8" }, "devDependencies": { @@ -70,4 +70,4 @@ "sinon": "~1.7.3", "time-grunt": "^1.0.0" } -} \ No newline at end of file +} diff --git a/src/js/app-controller.js b/src/js/app-controller.js index e768105..96bf770 100644 --- a/src/js/app-controller.js +++ b/src/js/app-controller.js @@ -227,7 +227,7 @@ ctrl.onConnect = function(callback) { credentials.imap.maxUpdateSize = config.imapUpdateBatchSize; // tls socket worker path for multithreaded tls in non-native tls environments - credentials.imap.tlsWorkerPath = credentials.smtp.tlsWorkerPath = config.workerPath + '/tcp-socket-tls-worker.js'; + credentials.imap.tlsWorkerPath = credentials.smtp.tlsWorkerPath = config.workerPath + '/tcp-socket-tls-worker.min.js'; var pgpMailer = new PgpMailer(credentials.smtp, ctrl._pgpbuilder); var imapClient = new ImapClient(credentials.imap); @@ -268,4 +268,4 @@ ctrl.onConnect = function(callback) { } }; -module.exports = ctrl; \ No newline at end of file +module.exports = ctrl; diff --git a/src/js/util/connection-doctor.js b/src/js/util/connection-doctor.js index 4556f4c..eeeccb5 100644 --- a/src/js/util/connection-doctor.js +++ b/src/js/util/connection-doctor.js @@ -30,6 +30,8 @@ var NO_INBOX = ConnectionDoctor.NO_INBOX = 47; var GENERIC_ERROR = ConnectionDoctor.GENERIC_ERROR = 48; +var WORKER_PATH = cfg.workerPath + '/tcp-socket-tls-worker.min.js'; + // // Public API // @@ -52,7 +54,7 @@ ConnectionDoctor.prototype.configure = function(credentials) { secure: this.credentials.imap.secure, ignoreTLS: this.credentials.imap.ignoreTLS, ca: this.credentials.imap.ca, - tlsWorkerPath: cfg.workerPath + '/tcp-socket-tls-worker.js', + tlsWorkerPath: WORKER_PATH, auth: { user: this.credentials.username, pass: this.credentials.password, @@ -64,7 +66,7 @@ ConnectionDoctor.prototype.configure = function(credentials) { useSecureTransport: this.credentials.smtp.secure, ignoreTLS: this.credentials.smtp.ignoreTLS, ca: this.credentials.smtp.ca, - tlsWorkerPath: cfg.workerPath + '/tcp-socket-tls-worker.js', + tlsWorkerPath: WORKER_PATH, auth: { user: this.credentials.username, pass: this.credentials.password, @@ -159,7 +161,7 @@ ConnectionDoctor.prototype._checkReachable = function(options, callback) { binaryType: 'arraybuffer', useSecureTransport: options.secure, ca: options.ca, - tlsWorkerPath: cfg.workerPath + '/tcp-socket-tls-worker.js' + tlsWorkerPath: WORKER_PATH }); socket.ondata = function() {}; // we don't actually care about the data diff --git a/test/unit/connection-doctor-test.js b/test/unit/connection-doctor-test.js index 7a50499..8a431d5 100644 --- a/test/unit/connection-doctor-test.js +++ b/test/unit/connection-doctor-test.js @@ -8,7 +8,7 @@ var TCPSocket = require('tcp-socket'), describe('Connection Doctor', function() { var doctor; - var socketStub, imapStub, smtpStub, credentials; + var socketStub, imapStub, smtpStub, credentials, workerPath; beforeEach(function() { // @@ -22,6 +22,7 @@ describe('Connection Doctor', function() { } }; + workerPath = 'js/tcp-socket-tls-worker.min.js'; imapStub = sinon.createStubInstance(ImapClient); smtpStub = sinon.createStubInstance(SmtpClient); @@ -84,7 +85,8 @@ describe('Connection Doctor', function() { expect(TCPSocket.open.calledWith(credentials.imap.host, credentials.imap.port, { binaryType: 'arraybuffer', useSecureTransport: credentials.imap.secure, - ca: credentials.imap.ca + ca: credentials.imap.ca, + tlsWorkerPath: workerPath })).to.be.true; done(); @@ -108,7 +110,8 @@ describe('Connection Doctor', function() { expect(TCPSocket.open.calledWith(credentials.imap.host, credentials.imap.port, { binaryType: 'arraybuffer', useSecureTransport: credentials.imap.secure, - ca: credentials.imap.ca + ca: credentials.imap.ca, + tlsWorkerPath: workerPath })).to.be.true; done(); @@ -125,7 +128,8 @@ describe('Connection Doctor', function() { expect(TCPSocket.open.calledWith(credentials.imap.host, credentials.imap.port, { binaryType: 'arraybuffer', useSecureTransport: credentials.imap.secure, - ca: credentials.imap.ca + ca: credentials.imap.ca, + tlsWorkerPath: workerPath })).to.be.true; done(); @@ -408,4 +412,4 @@ describe('Connection Doctor', function() { }); }); }); -}); \ No newline at end of file +});