diff --git a/src/main.js b/src/main.js index 72eac7c..0e9c786 100755 --- a/src/main.js +++ b/src/main.js @@ -66,6 +66,7 @@ var App = { this.compressFile = this.getEnv('TEMP') +'\\'+ this.module +'.7z'; this.mdbFile = this.moduleDir +'\\'+ this.module +'.mdb'; this.lockFile = this.moduleDir +'\\'+ this.module +'.ldb'; + this.certFile = this.appDir +'\\cacert.pem'; // Creates the necessary registry entries @@ -96,7 +97,7 @@ var App = { 'DESCRIPTION' : Conf.appName, 'SERVER' : Conf.dbHost, 'DATABASE' : Conf.dbName, - 'SSLCA' : this.appDir +'\\cacert.pem', + 'SSLCA' : this.certFile, 'SSLVERIFY' : 1, 'AUTO_RECONNECT' : 1 }; @@ -261,11 +262,19 @@ var App = { */ fetchVersion: function() { // Gets the last version number using the MySQL ODBC connection - - var mysqlConn = new ActiveXObject('ADODB.Connection'); + + var mysqlConn; try { - mysqlConn.open(Conf.dsName); + mysqlConn = this.openOdbc({ + 'Driver': '{MySQL ODBC 5.1 Driver}', + 'Server': Conf.dbHost, + 'Database': Conf.dbName, + 'User': this.$('user').value, + 'Password': this.$('password').value, + 'SslVerify': 1, + 'SslCa': this.certFile + }); } catch (err) { var dbErrors = mysqlConn.errors; @@ -337,8 +346,10 @@ var App = { var localVersion; try { - var mdbConn = new ActiveXObject('ADODB.Connection'); - mdbConn.open('Provider=Microsoft.Jet.OLEDB.4.0; Data Source='+ this.mdbFile +';'); + var mdbConn = this.openOdbc({ + 'Provider': 'Microsoft.Jet.OLEDB.4.0', + 'Data Source': this.mdbFile + }); var oRs = new ActiveXObject('ADODB.Recordset'); oRs.Open('SELECT Version FROM tblVariables', mdbConn); @@ -354,6 +365,15 @@ var App = { ? version : null; }, + + openOdbc(options) { + var optionsArray = []; + for (var option of options) + optionsArray.push(option +'='+ options[option]); + + var conn = new ActiveXObject('ADODB.Connection'); + return conn.open(optionsArray.join(';')); + }, onRequestReady: function(request) { if (request.readyState !== 4)