diff --git a/config.sample.json b/config.sample.json index 01d0a68..3bbb9cd 100644 --- a/config.sample.json +++ b/config.sample.json @@ -8,7 +8,8 @@ "partner": { "url": "https://PLEASE_CHANGE_ME:6789/", "msisdn": "PLEASE_CHANGE_ME", - "pin": "PLEASE_CHANGE_ME" + "pin": "PLEASE_CHANGE_ME", + "use_sslv3": false }, "remote_products": { "PLEASE_CHANGE_ME": "PLEASE_CHANGE_ME" diff --git a/lib/partner.js b/lib/partner.js index 57ef0b0..39a1748 100644 --- a/lib/partner.js +++ b/lib/partner.js @@ -3,6 +3,7 @@ process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0'; const url = require('url'); +const https = require('https'); const xmlrpc = require('xmlrpc'); const config = require('komodo-sdk/config'); @@ -13,6 +14,10 @@ const pull = require('komodo-sdk/gateway/pull'); const st24 = require('./st24'); const partnerRc = require('./partner-rc.json'); +if (config.partner.use_sslv3) { + https.globalAgent.options.secureProtocol = 'SSLv3_method'; +} + function buy(task) { const partnerUrl = url.parse(config.partner.url); const clientOptions = { @@ -42,10 +47,16 @@ function buy(task) { client.methodCall(xmlrpcMethod, [ params ], function (err, value) { if (err) { - let rc = '68'; + let msg = 'XMLRPC Client Error: ' + err; + let rc = '68'; - if (error.code == 'ECONNREFUSED' || error.code == 'EHOSTUNREACH' || (error.code == 'ETIMEDOUT' && error.syscall == "connect")) { + if ( + err.code === 'ECONNREFUSED' + || err.code === 'EHOSTUNREACH' + || (err.code === 'ETIMEDOUT' && err.syscall === "connect") + || (err.code === 'EPROTO' && err.syscall === "write") + ) { rc = '91'; }