Fixed issue with enq link trying on a closed socket

This commit is contained in:
2015-05-01 12:19:47 +02:00
parent 5b02db7598
commit 24aec3073c
2 changed files with 31 additions and 26 deletions
+25 -25
View File
@@ -13,68 +13,68 @@ var log = require('winston'),
* @return obj (returnObj)
*/
function clientSession(sock, options) {
var parent = session(sock);
var returnObj = session(sock);
parent.login = function() {
returnObj.login = function() {
var loginPdu = {
'cmdName': 'bind_transceiver',
'seqNr': parent.ourSeqNr,
'seqNr': returnObj.ourSeqNr,
'params': {
'system_id': options.username,
'password': options.password
}
};
parent.send(loginPdu, function(err, retPduObj) {
returnObj.send(loginPdu, function(err, retPduObj) {
if (err) {
parent.emit('loginFailed');
returnObj.emit('loginFailed');
return;
}
if (retPduObj.cmdStatus === 'ESME_ROK') {
log.info('larvitsmpp: lib/client.js: clientSession() - parent.login() - Successful login!');
parent.loggedIn = true;
parent.emit('loggedIn');
log.info('larvitsmpp: lib/client.js: clientSession() - returnObj.login() - Successful login!');
returnObj.loggedIn = true;
returnObj.emit('loggedIn');
} else {
log.info('larvitsmpp: lib/client.js: clientSession() - parent.login() - Login failed. Status msg: ' + retPduObj.cmdStatus);
parent.emit('loginFailed');
log.info('larvitsmpp: lib/client.js: clientSession() - returnObj.login() - Login failed. Status msg: ' + retPduObj.cmdStatus);
returnObj.emit('loginFailed');
}
});
};
parent.resetEnqLinkTimer = function() {
returnObj.resetEnqLinkTimer = function() {
log.silly('larvitsmpp: lib/client.js: clientSession() - resetEnqLinkTimer() - Resetting the kill timer');
if (parent.enqLinkTimer) {
clearTimeout(parent.enqLinkTimer);
if (returnObj.enqLinkTimer) {
clearTimeout(returnObj.enqLinkTimer);
}
parent.enqLinkTimer = setTimeout(function() {
parent.send({
returnObj.enqLinkTimer = setTimeout(function() {
returnObj.send({
cmdName: 'enquire_link',
seqNr: parent.ourSeqNr
seqNr: returnObj.ourSeqNr
});
}, options.enqLinkTiming);
};
parent.login();
parent.resetEnqLinkTimer();
returnObj.login();
returnObj.resetEnqLinkTimer();
parent.on('incomingPdu', function(pduObj) {
returnObj.on('incomingPdu', function(pduObj) {
if (pduObj.cmdName === 'deliver_sm') {
parent.deliverSm(pduObj);
returnObj.deliverSm(pduObj);
} else if (pduObj.cmdName === 'enquire_link') {
parent.enquireLink();
returnObj.enquireLink();
} else if (pduObj.cmdName === 'submit_sm') {
parent.submitSm(pduObj);
returnObj.submitSm(pduObj);
} else if (pduObj.cmdName === 'unbind') {
parent.sendReturn(pduObj, 'ESME_ROK', true);
returnObj.sendReturn(pduObj, 'ESME_ROK', true);
} else {
// All other commands we do not support
parent.sendReturn(pduObj, 'ESME_RINVCMDID');
returnObj.sendReturn(pduObj, 'ESME_RINVCMDID');
}
});
return parent;
return returnObj;
}
/**