Some minor refactoring
This commit is contained in:
+31
-31
@@ -14,18 +14,18 @@ var log = require('winston'),
|
||||
* @return obj (returnObj)
|
||||
*/
|
||||
function serverSession(sock, options) {
|
||||
var parent = session(sock);
|
||||
var returnObj = session(sock);
|
||||
|
||||
/**
|
||||
* Try to log a connecting peer in
|
||||
*
|
||||
* @param obj pduObj
|
||||
*/
|
||||
parent.login = function(pduObj) {
|
||||
returnObj.login = function(pduObj) {
|
||||
log.debug('larvitsmpp: lib/server.js: serverSession() - login() - Data received and session is not loggedIn');
|
||||
|
||||
// Pause socket so we do not receive any other commands until we have processed the login
|
||||
parent.sock.pause();
|
||||
returnObj.sock.pause();
|
||||
|
||||
// Only bind_* is accepted when the client is not logged in
|
||||
if (pduObj.cmdName !== 'bind_transceiver' && pduObj.cmdName !== 'bind_receiver' && pduObj.cmdName !== 'bind_transmitter') {
|
||||
@@ -33,12 +33,12 @@ function serverSession(sock, options) {
|
||||
|
||||
smppUtils.pduReturn(pduObj, 'ESME_RINVBNDSTS', function(err, retPdu) {
|
||||
if (err) {
|
||||
parent.closeSocket();
|
||||
returnObj.closeSocket();
|
||||
return;
|
||||
}
|
||||
|
||||
parent.sock.resume();
|
||||
parent.sockWrite(retPdu);
|
||||
returnObj.sock.resume();
|
||||
returnObj.sockWrite(retPdu);
|
||||
});
|
||||
|
||||
return;
|
||||
@@ -48,70 +48,70 @@ function serverSession(sock, options) {
|
||||
if (typeof options.checkuserpass === 'function') {
|
||||
options.checkuserpass(pduObj.params.system_id, pduObj.params.password, function(err, res) {
|
||||
if (err) {
|
||||
parent.closeSocket();
|
||||
returnObj.closeSocket();
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! res) {
|
||||
log.info('larvitsmpp: lib/server.js: serverSession() - login() - Login failed! Connected host: ' + sock.remoteAddress + ':' + sock.remotePort + ' system_id: "' + pduObj.params.system_id + '"');
|
||||
|
||||
parent.sock.resume();
|
||||
parent.sendReturn(pduObj, 'ESME_RBINDFAIL');
|
||||
returnObj.sock.resume();
|
||||
returnObj.sendReturn(pduObj, 'ESME_RBINDFAIL');
|
||||
return;
|
||||
}
|
||||
|
||||
log.verbose('larvitsmpp: lib/server.js: serverSession() - login() - Login successful! Connected host: ' + sock.remoteAddress + ':' + sock.remotePort + ' system_id: "' + pduObj.params.system_id + '"');
|
||||
parent.loggedIn = true;
|
||||
parent.sock.resume();
|
||||
parent.sendReturn(pduObj);
|
||||
returnObj.loggedIn = true;
|
||||
returnObj.sock.resume();
|
||||
returnObj.sendReturn(pduObj);
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// If we arrived here it means we are not logged in and that a bind_* event happened and no checkuserpass() method exists. Lets login!
|
||||
parent.loggedIn = true;
|
||||
parent.sock.resume();
|
||||
parent.sendReturn(pduObj);
|
||||
returnObj.loggedIn = true;
|
||||
returnObj.sock.resume();
|
||||
returnObj.sendReturn(pduObj);
|
||||
};
|
||||
|
||||
/**
|
||||
* Reset the enquire link timer
|
||||
* If this is not ran within options.timeout milliseconds, this session will self terminate
|
||||
*/
|
||||
parent.resetEnqLinkTimer = function() {
|
||||
returnObj.resetEnqLinkTimer = function() {
|
||||
log.silly('larvitsmpp: lib/server.js: serverSession() - resetEnqLinkTimer() - Resetting the kill timer');
|
||||
if (parent.enqLinkTimer) {
|
||||
clearTimeout(parent.enqLinkTimer);
|
||||
if (returnObj.enqLinkTimer) {
|
||||
clearTimeout(returnObj.enqLinkTimer);
|
||||
}
|
||||
|
||||
parent.enqLinkTimer = setTimeout(function() {
|
||||
returnObj.enqLinkTimer = setTimeout(function() {
|
||||
log.info('larvitsmpp: lib/server.js: serverSession() - resetEnqLinkTimer() - Closing session due to timeout');
|
||||
parent.closeSocket();
|
||||
returnObj.closeSocket();
|
||||
}, options.timeout);
|
||||
};
|
||||
|
||||
parent.resetEnqLinkTimer();
|
||||
returnObj.resetEnqLinkTimer();
|
||||
|
||||
parent.on('incomingPdu', function(pduObj) {
|
||||
returnObj.on('incomingPdu', function(pduObj) {
|
||||
if (pduObj.cmdName === 'unbind') {
|
||||
parent.sendReturn(pduObj, 'ESME_ROK', true);
|
||||
} else if (parent.loggedIn === false) {
|
||||
log.debug('larvitsmpp: lib/server.js: serverSession() - parent.handleIncomingPdu() - Not logged in, running login function');
|
||||
parent.login(pduObj);
|
||||
returnObj.sendReturn(pduObj, 'ESME_ROK', true);
|
||||
} else if (returnObj.loggedIn === false) {
|
||||
log.debug('larvitsmpp: lib/server.js: serverSession() - returnObj.handleIncomingPdu() - Not logged in, running login function');
|
||||
returnObj.login(pduObj);
|
||||
} else if (pduObj.cmdName === 'deliver_sm') {
|
||||
parent.deliverSm(pduObj);
|
||||
returnObj.deliverSm(pduObj);
|
||||
} else if (pduObj.cmdName === 'enquire_link') {
|
||||
parent.enquireLink(pduObj);
|
||||
returnObj.enquireLink(pduObj);
|
||||
} else if (pduObj.cmdName === 'submit_sm') {
|
||||
parent.submitSm(pduObj);
|
||||
returnObj.submitSm(pduObj);
|
||||
} else {
|
||||
// All other commands we do not support
|
||||
parent.sendReturn(pduObj, 'ESME_RINVCMDID');
|
||||
returnObj.sendReturn(pduObj, 'ESME_RINVCMDID');
|
||||
}
|
||||
});
|
||||
|
||||
return parent;
|
||||
return returnObj;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user