Some restructuring etc

This commit is contained in:
2015-05-10 18:23:38 +02:00
parent 8c6c50e8d0
commit 2307800d22
3 changed files with 60 additions and 34 deletions
+34 -18
View File
@@ -135,9 +135,6 @@ function session(sock) {
log.debug('larvitsmpp: lib/session.js: session() - returnObj.send() - returnObj.on(incomingPduObj) - cmdName: ' + incPduObj.cmdName + ' seqNr: ' + incPduObj.seqNr + ' cmdStatus: ' + incPduObj.cmdStatus);
// Clean up by removing this listener or else it will lurk along forever
returnObj.removeAllListeners('incomingPdu' + pduObj.seqNr);
// Make sure this is the actual response to the sent PDU
if (incPduObj.isResponse() && incPduObj.seqNr === pduObj.seqNr) {
callback(null, incPduObj);
@@ -377,8 +374,12 @@ function session(sock) {
});
};
// Handle incomming commands.
// This is intended to be extended
returnObj.handleCmd = {};
// Handle incoming deliver_sm
returnObj.deliverSm = function(pduObj) {
returnObj.handleCmd.deliver_sm = function(pduObj) {
var dlrObj;
// TLV message_state must exists
@@ -415,16 +416,23 @@ function session(sock) {
returnObj.sendReturn(pduObj);
};
// Enquire link
returnObj.handleCmd.enquire_link = function(pduObj) {
log.silly('larvitsmpp: lib/session.js: session() - enquireLink() - Enquiring link');
returnObj.resetEnqLinkTimer();
returnObj.sendReturn(pduObj);
};
// Handle incoming submit_sm
returnObj.submitSm = function(pduObj) {
returnObj.handleCmd.submit_sm = function(pduObj) {
var smsObj = {};
smsObj = {
'from': pduObj.params.source_addr,
'to': pduObj.params.destination_addr,
'submitTime': new Date(),
'message': pduObj.params.short_message,
'dlr': Boolean(pduObj.params.registered_delivery)
'from': pduObj.params.source_addr,
'to': pduObj.params.destination_addr,
'submitTime': new Date(),
'message': pduObj.params.short_message,
'dlr': Boolean(pduObj.params.registered_delivery)
};
function smsReceived(smsData) {
@@ -440,6 +448,11 @@ function session(sock) {
returnObj.emit('sms', smsObj, smsReceived);
};
// Handle incoming unbind
returnObj.handleCmd.unbind = function(pduObj) {
returnObj.sendReturn(pduObj, 'ESME_ROK', undefined, true);
};
// Dummy, should be extended by serverSession or clientSession
returnObj.login = function() {
log.info('larvitsmpp: lib/session.js: session() - login() - Dummy login function ran, this might be a mistake');
@@ -451,12 +464,7 @@ function session(sock) {
log.silly('larvitsmpp: lib/session.js: session() - resetEnqLinkTimer() - Resetting the kill timer');
};
returnObj.enquireLink = function(pduObj) {
log.silly('larvitsmpp: lib/session.js: session() - enquireLink() - Enquiring link');
returnObj.resetEnqLinkTimer();
returnObj.sendReturn(pduObj);
};
// Unbind this session
returnObj.unbind = function() {
returnObj.send({
'cmdName': 'unbind'
@@ -502,15 +510,21 @@ function session(sock) {
returnObj.emit('incomingPdu', pdu);
}
if (returnObj.dataQueue.length === 0) {
log.silly('larvitsmpp: lib/session.js: session() - sock.on(data) - All queue hanlded, breaking while loop.');
break;
}
// If the command length is larger than the queue, we need to wait for more data. Stop processing!
if (cmdLength > returnObj.dataQueue) {
log.debug('larvitsmpp: lib/session.js: session() - sock.on(data) - Incomplete PDU found in dataQueue, waiting for more data to continue.');
log.debug('larvitsmpp: lib/session.js: session() - sock.on(data) - Incomplete PDU found in dataQueue, waiting for more data to continue. Current cmdLength: ' + cmdLength + ' current queue: ' + returnObj.dataQueue.toString('hex'));
break;
}
}
});
// Handle incoming Pdu Buffers
returnObj.on('incomingPdu', function(pdu) {
utils.pduToObj(pdu, function(err, pduObj) {
if (err) {
@@ -523,6 +537,9 @@ function session(sock) {
if (pduObj.isResponse()) {
// We do this so we can remove the dynamic event listeners to not have a memory leak
returnObj.emit('incomingPduObj' + pduObj.seqNr, pduObj);
// Clean up by removing this listener or else it will lurk along forever
returnObj.removeAllListeners('incomingPduObj' + pduObj.seqNr);
} else {
returnObj.emit('incomingPduObj', pduObj);
}
@@ -530,7 +547,6 @@ function session(sock) {
});
});
// Add a 'close' event handler to this instance of socket
sock.on('close', function() {
returnObj.emit('close');