Wrap ctx.reject() and catch throws

This commit is contained in:
Bryan Ashby 2018-12-24 15:14:37 -07:00
parent c6e176f5bd
commit 73e8b0454e

View file

@ -49,8 +49,16 @@ function SSHClient(clientConn) {
self.log.trace( { method : ctx.method, username : username, newUser : self.isNewUser }, 'SSH authentication attempt'); self.log.trace( { method : ctx.method, username : username, newUser : self.isNewUser }, 'SSH authentication attempt');
const safeContextReject = (param) => {
try {
return ctx.reject(param);
} catch(e) {
return;
}
};
function terminateConnection() { function terminateConnection() {
ctx.reject(); safeContextReject();
return clientConn.end(); return clientConn.end();
} }
@ -106,19 +114,19 @@ function SSHClient(clientConn) {
return handleSpecialError(err, username); return handleSpecialError(err, username);
} }
return ctx.reject(SSHClient.ValidAuthMethods); return safeContextReject(SSHClient.ValidAuthMethods);
} }
ctx.accept(); ctx.accept();
}); });
} else { } else {
if(-1 === SSHClient.ValidAuthMethods.indexOf(ctx.method)) { if(-1 === SSHClient.ValidAuthMethods.indexOf(ctx.method)) {
return ctx.reject(SSHClient.ValidAuthMethods); return safeContextReject(SSHClient.ValidAuthMethods);
} }
if(0 === username.length) { if(0 === username.length) {
// :TODO: can we display something here? // :TODO: can we display something here?
return ctx.reject(); return safeContextReject();
} }
const interactivePrompt = { prompt : `${ctx.username}'s password: `, echo : false }; const interactivePrompt = { prompt : `${ctx.username}'s password: `, echo : false };