Socket
Socket
Sign inDemoInstall

ssh2-sftp-client

Package Overview
Dependencies
Maintainers
2
Versions
74
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ssh2-sftp-client - npm Package Compare versions

Comparing version 5.1.0 to 5.1.1

2

package.json
{
"name": "ssh2-sftp-client",
"version": "5.1.0",
"version": "5.1.1",
"description": "ssh2 sftp client for node",

@@ -5,0 +5,0 @@ "main": "src/index.js",

@@ -80,3 +80,3 @@ /**

const connectErrorListener = err => {
this.removeListener('error', connectErrorListener);
this.client.removeListener('ready', onceReady);
if (operation.retry(err)) {

@@ -98,35 +98,28 @@ // failed to connect, but not yet reached max attempt count

const onceReady = () => {
this.client.sftp((err, sftp) => {
this.client.removeListener('error', connectErrorListener);
if (err) {
if (operation.retry(err)) {
// failed to connect, but not yet reached max attempt count
// remove the listeners and try again
return;
}
// exhausted retries - do callback with error
callback(
utils.formatError(err, 'connect', err.code, attemptCount),
null
);
return;
}
this.debugMsg('SFTP connection established');
this.sftp = sftp;
callback(null, sftp);
return;
});
};
this.client
.on('ready', () => {
this.client.sftp((err, sftp) => {
if (err) {
this.client.removeListener('error', connectErrorListener);
if (operation.retry(err)) {
// failed to connect, but not yet reached max attempt count
// remove the listeners and try again
return;
}
// exhausted retries - do callback with error
callback(
utils.formatError(err, 'connect', err.code, attemptCount),
null
);
}
this.debugMsg('SFTP connection established');
this.sftp = sftp;
// remove retry error listener and add generic error listener
this.client.removeListener('error', connectErrorListener);
this.client.on('close', utils.makeCloseListener(this));
this.client.on('error', err => {
if (!this.errorHandled) {
// error not already handled. Log it.
console.error(`Error event: ${err.message}`);
}
//need to set to false in case another error raised
this.errorHandled = false;
});
callback(null, sftp);
});
})
.on('error', connectErrorListener)
.once('ready', onceReady)
.once('error', connectErrorListener)
.connect(config);

@@ -200,30 +193,28 @@ });

return new Promise((resolve, reject) => {
let errorListener;
try {
this.debugMsg(`realPath -> ${remotePath}`);
errorListener = utils.makeErrorListener(reject, this, 'realPath');
this.client.prependListener('error', errorListener);
if (utils.haveConnection(this, 'realPath', reject)) {
this.sftp.realpath(remotePath, (err, absPath) => {
if (err) {
this.debugMsg(`realPath Error: ${err.message} Code: ${err.code}`);
if (err.code === 2) {
resolve('');
} else {
reject(
utils.formatError(
`${err.message} ${remotePath}`,
'realPath',
err.code
)
);
}
this.debugMsg(`realPath -> ${remotePath}`);
let closeListener = utils.makeCloseListener(this, reject, 'realPath');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'realPath');
this.client.prependListener('error', errorListener);
if (utils.haveConnection(this, 'realPath', reject)) {
this.sftp.realpath(remotePath, (err, absPath) => {
if (err) {
this.debugMsg(`realPath Error: ${err.message} Code: ${err.code}`);
if (err.code === 2) {
resolve('');
} else {
reject(
utils.formatError(
`${err.message} ${remotePath}`,
'realPath',
err.code
)
);
}
this.debugMsg(`realPath <- ${absPath}`);
resolve(absPath);
});
}
} finally {
this.removeListener('error', errorListener);
}
this.debugMsg(`realPath <- ${absPath}`);
resolve(absPath);
this.removeListener('error', errorListener);
this.removeListener('close', closeListener);
});
}

@@ -246,45 +237,44 @@ });

return new Promise((resolve, reject) => {
let errorListener;
try {
this.debugMsg(`stat -> ${aPath}`);
errorListener = utils.makeErrorListener(reject, this, 'stat');
this.client.prependListener('error', errorListener);
this.sftp.stat(aPath, (err, stats) => {
if (err) {
this.debugMsg(`stat error ${err.message} code: ${err.code}`);
if (err.code === 2) {
reject(
utils.formatError(
`No such file: ${remotePath}`,
'_stat',
errorCode.notexist
)
);
} else {
reject(
utils.formatError(`${err.message} ${remotePath}`, '_stat')
);
}
this.debugMsg(`stat -> ${aPath}`);
let closeListener = utils.makeCloseListener(this, reject, 'stat');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'stat');
this.client.prependListener('error', errorListener);
this.sftp.stat(aPath, (err, stats) => {
if (err) {
this.debugMsg(`stat error ${err.message} code: ${err.code}`);
if (err.code === 2) {
reject(
utils.formatError(
`No such file: ${remotePath}`,
'_stat',
errorCode.notexist
)
);
} else {
this.debugMsg('stats <- ', stats);
resolve({
mode: stats.mode,
uid: stats.uid,
gid: stats.gid,
size: stats.size,
accessTime: stats.atime * 1000,
modifyTime: stats.mtime * 1000,
isDirectory: stats.isDirectory(),
isFile: stats.isFile(),
isBlockDevice: stats.isBlockDevice(),
isCharacterDevice: stats.isCharacterDevice(),
isSymbolicLink: stats.isSymbolicLink(),
isFIFO: stats.isFIFO(),
isSocket: stats.isSocket()
});
reject(
utils.formatError(`${err.message} ${remotePath}`, '_stat')
);
}
});
} finally {
} else {
this.debugMsg('stats <- ', stats);
resolve({
mode: stats.mode,
uid: stats.uid,
gid: stats.gid,
size: stats.size,
accessTime: stats.atime * 1000,
modifyTime: stats.mtime * 1000,
isDirectory: stats.isDirectory(),
isFile: stats.isFile(),
isBlockDevice: stats.isBlockDevice(),
isCharacterDevice: stats.isCharacterDevice(),
isSymbolicLink: stats.isSymbolicLink(),
isFIFO: stats.isFIFO(),
isSocket: stats.isSocket()
});
}
this.removeListener('error', errorListener);
}
this.removeListener('close', closeListener);
});
});

@@ -366,48 +356,46 @@ };

const reg = /-/gi;
let errorListener;
try {
this.debugMsg(`list -> ${aPath} filter -> ${filter}`);
errorListener = utils.makeErrorListener(reject, this, 'list');
this.client.prependListener('error', errorListener);
this.sftp.readdir(aPath, (err, fileList) => {
if (err) {
this.debugMsg(`list error ${err.message} code: ${err.code}`);
reject(utils.formatError(`${err.message} ${aPath}`, '_list'));
this.debugMsg(`list -> ${aPath} filter -> ${filter}`);
let closeListener = utils.makeCloseListener(this, reject, 'list');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'list');
this.client.prependListener('error', errorListener);
this.sftp.readdir(aPath, (err, fileList) => {
if (err) {
this.debugMsg(`list error ${err.message} code: ${err.code}`);
reject(utils.formatError(`${err.message} ${aPath}`, '_list'));
} else {
this.debugMsg('list <- ', fileList);
let newList = [];
// reset file info
if (fileList) {
newList = fileList.map(item => {
return {
type: item.longname.substr(0, 1),
name: item.filename,
size: item.attrs.size,
modifyTime: item.attrs.mtime * 1000,
accessTime: item.attrs.atime * 1000,
rights: {
user: item.longname.substr(1, 3).replace(reg, ''),
group: item.longname.substr(4, 3).replace(reg, ''),
other: item.longname.substr(7, 3).replace(reg, '')
},
owner: item.attrs.uid,
group: item.attrs.gid
};
});
}
// provide some compatibility for auxList
let regex;
if (filter instanceof RegExp) {
regex = filter;
} else {
this.debugMsg('list <- ', fileList);
let newList = [];
// reset file info
if (fileList) {
newList = fileList.map(item => {
return {
type: item.longname.substr(0, 1),
name: item.filename,
size: item.attrs.size,
modifyTime: item.attrs.mtime * 1000,
accessTime: item.attrs.atime * 1000,
rights: {
user: item.longname.substr(1, 3).replace(reg, ''),
group: item.longname.substr(4, 3).replace(reg, ''),
other: item.longname.substr(7, 3).replace(reg, '')
},
owner: item.attrs.uid,
group: item.attrs.gid
};
});
}
// provide some compatibility for auxList
let regex;
if (filter instanceof RegExp) {
regex = filter;
} else {
let newPattern = filter.replace(/\*([^*])*?/gi, '.*');
regex = new RegExp(newPattern);
}
resolve(newList.filter(item => regex.test(item.name)));
let newPattern = filter.replace(/\*([^*])*?/gi, '.*');
regex = new RegExp(newPattern);
}
});
} finally {
resolve(newList.filter(item => regex.test(item.name)));
}
this.removeListener('error', errorListener);
}
this.removeListener('close', closeListener);
});
});

@@ -450,51 +438,56 @@ };

return new Promise((resolve, reject) => {
let errorListener;
try {
this.debugMsg(`get -> ${sftpPath} `, options);
errorListener = utils.makeErrorListener(reject, this, 'get');
this.client.prependListener('error', errorListener);
let rdr = this.sftp.createReadStream(sftpPath, options);
rdr.once('error', err => {
this.debugMsg(`get -> ${sftpPath} `, options);
let closeListener = utils.makeCloseListener(this, reject, 'get');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'get');
this.client.prependListener('error', errorListener);
let rdr = this.sftp.createReadStream(sftpPath, options);
rdr.once('error', err => {
utils.removeListeners(rdr);
reject(utils.formatError(`${err.message} ${sftpPath}`, '_get'));
this.removeListener('error', errorListener);
this.removeListener('close', closeListener);
});
if (localDst === undefined) {
// no dst specified, return buffer of data
this.debugMsg('get returning buffer of data');
let concatStream = concat(buff => {
rdr.removeAllListeners('error');
resolve(buff);
this.removeListener('error', errorListener);
this.removeListener('close', closeListener);
});
rdr.pipe(concatStream);
} else {
let wtr;
if (typeof localDst === 'string') {
// dst local file path
this.debugMsg('get returning local file');
wtr = fs.createWriteStream(localDst);
} else {
this.debugMsg('get returning data into supplied stream');
wtr = localDst;
}
wtr.once('error', err => {
utils.removeListeners(rdr);
reject(utils.formatError(`${err.message} ${sftpPath}`, '_get'));
reject(
utils.formatError(
`${err.message} ${typeof dst === 'string' ? localDst : ''}`,
'_get'
)
);
this.removeListener('error', errorListener);
this.removeListener('close', closeListener);
});
if (localDst === undefined) {
// no dst specified, return buffer of data
this.debugMsg('get returning buffer of data');
let concatStream = concat(buff => {
rdr.removeAllListeners('error');
resolve(buff);
});
rdr.pipe(concatStream);
} else {
let wtr;
wtr.once('finish', () => {
utils.removeListeners(rdr);
if (typeof localDst === 'string') {
// dst local file path
this.debugMsg('get returning local file');
wtr = fs.createWriteStream(localDst);
resolve(localDst);
} else {
this.debugMsg('get returning data into supplied stream');
wtr = localDst;
resolve(wtr);
}
wtr.once('error', err => {
utils.removeListeners(rdr);
reject(
utils.formatError(
`${err.message} ${typeof dst === 'string' ? localDst : ''}`,
'_get'
)
);
});
wtr.once('finish', () => {
utils.removeListeners(rdr);
if (typeof localDst === 'string') {
resolve(localDst);
} else {
resolve(wtr);
}
});
rdr.pipe(wtr);
}
} finally {
this.removeListener('error', errorListener);
this.removeListener('error', errorListener);
this.removeListener('close', closeListener);
});
rdr.pipe(wtr);
}

@@ -548,22 +541,21 @@ });

return new Promise((resolve, reject) => {
let errorListener;
try {
this.debugMsg(`fastGet -> ${from} ${to} `, opts);
errorListener = utils.makeErrorListener(reject, this, 'fastGet');
this.client.prependListener('error', errorListener);
this.sftp.fastGet(from, to, opts, err => {
if (err) {
this.debugMsg(`fastGet error ${err.message} code: ${err.code}`);
reject(
utils.formatError(
`${err.message} src: ${from} dst: ${to}`,
'fastGet'
)
);
}
resolve(`${from} was successfully download to ${to}!`);
});
} finally {
this.debugMsg(`fastGet -> ${from} ${to} `, opts);
let closeListener = utils.makeCloseListener(this, reject, 'fastGet');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'fastGet');
this.client.prependListener('error', errorListener);
this.sftp.fastGet(from, to, opts, err => {
if (err) {
this.debugMsg(`fastGet error ${err.message} code: ${err.code}`);
reject(
utils.formatError(
`${err.message} src: ${from} dst: ${to}`,
'fastGet'
)
);
}
resolve(`${from} was successfully download to ${to}!`);
this.removeListener('error', errorListener);
}
this.removeListener('close', closeListener);
});
});

@@ -619,22 +611,21 @@ };

return new Promise((resolve, reject) => {
let errorListener;
try {
this.debugMsg(`fastPut -> ${localPath} ${remotePath} `, opts);
errorListener = utils.makeErrorListener(reject, this, 'fastPut');
this.client.prependListener('error', errorListener);
this.sftp.fastPut(from, to, opts, err => {
if (err) {
this.debugMsg(`fastPut error ${err.message} ${err.code}`);
reject(
utils.formatError(
`${err.message} Local: ${from} Remote: ${to}`,
'_fastPut'
)
);
}
resolve(`${from} was successfully uploaded to ${to}!`);
});
} finally {
this.debugMsg(`fastPut -> ${localPath} ${remotePath} `, opts);
let closeListener = utils.makeCloseListener(this, reject, 'fastPut');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'fastPut');
this.client.prependListener('error', errorListener);
this.sftp.fastPut(from, to, opts, err => {
if (err) {
this.debugMsg(`fastPut error ${err.message} ${err.code}`);
reject(
utils.formatError(
`${err.message} Local: ${from} Remote: ${to}`,
'_fastPut'
)
);
}
resolve(`${from} was successfully uploaded to ${to}!`);
this.removeListener('error', errorListener);
}
this.removeListener('close', closeListener);
});
});

@@ -681,42 +672,45 @@ };

return new Promise((resolve, reject) => {
let errorListener;
try {
this.debugMsg(`put -> ${dst} `, opts);
errorListener = utils.makeErrorListener(reject, this, 'put');
this.client.prependListener('error', errorListener);
let stream = this.sftp.createWriteStream(dst, opts);
stream.once('error', err => {
reject(utils.formatError(`${err.message} ${dst}`, 'put'));
});
stream.once('finish', () => {
this.debugMsg(`put -> ${dst} `, opts);
let closeListener = utils.makeCloseListener(this, reject, 'put');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'put');
this.client.prependListener('error', errorListener);
let stream = this.sftp.createWriteStream(dst, opts);
stream.once('error', err => {
reject(utils.formatError(`${err.message} ${dst}`, 'put'));
this.removeListener('error', errorListener);
this.removeListener('close', closeListener);
});
stream.once('finish', () => {
utils.removeListeners(stream);
resolve(`Uploaded data stream to ${dst}`);
this.removeListener('error', errorListener);
this.removeListener('close', closeListener);
});
if (src instanceof Buffer) {
this.debugMsg('put source is a buffer');
stream.end(src);
} else {
let rdr;
if (typeof src === 'string') {
this.debugMsg(`put source is a file path: ${src}`);
rdr = fs.createReadStream(src);
} else {
this.debugMsg('put source is a stream');
rdr = src;
}
rdr.once('error', err => {
utils.removeListeners(stream);
resolve(`Uploaded data stream to ${dst}`);
reject(
utils.formatError(
`${err.message} ${
typeof localSrc === 'string' ? localSrc : ''
}`,
'put'
)
);
this.removeListener('error', errorListener);
this.removeListener('close', closeListener);
});
if (src instanceof Buffer) {
this.debugMsg('put source is a buffer');
stream.end(src);
} else {
let rdr;
if (typeof src === 'string') {
this.debugMsg(`put source is a file path: ${src}`);
rdr = fs.createReadStream(src);
} else {
this.debugMsg('put source is a stream');
rdr = src;
}
rdr.once('error', err => {
utils.removeListeners(stream);
reject(
utils.formatError(
`${err.message} ${
typeof localSrc === 'string' ? localSrc : ''
}`,
'put'
)
);
});
rdr.pipe(stream);
}
} finally {
this.removeListener('error', errorListener);
rdr.pipe(stream);
}

@@ -764,32 +758,33 @@ });

return new Promise((resolve, reject) => {
let errorListener;
try {
this.debugMsg(`append -> ${aPath} `, opts);
errorListener = utils.makeErrorListener(reject, this, 'append');
this.client.prependListener('error', errorListener);
let writerOptions;
if (opts) {
writerOptions = opts;
writerOptions.flags = 'a';
} else {
writerOptions = {
flags: 'a'
};
}
let stream = this.sftp.createWriteStream(aPath, writerOptions);
stream.once('error', err => {
utils.removeListeners(stream);
reject(utils.formatError(`${err.message} ${aPath}`, '_append'));
});
stream.once('finish', () => {
utils.removeListeners(stream);
resolve(`Uploaded data stream to ${aPath}`);
});
if (data instanceof Buffer) {
stream.end(data);
} else {
data.pipe(stream);
}
} finally {
this.debugMsg(`append -> ${aPath} `, opts);
let closeListener = utils.makeCloseListener(this, reject, 'append');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'append');
this.client.prependListener('error', errorListener);
let writerOptions;
if (opts) {
writerOptions = opts;
writerOptions.flags = 'a';
} else {
writerOptions = {
flags: 'a'
};
}
let stream = this.sftp.createWriteStream(aPath, writerOptions);
stream.once('error', err => {
utils.removeListeners(stream);
reject(utils.formatError(`${err.message} ${aPath}`, '_append'));
this.removeListener('error', errorListener);
this.removeListener('close', closeListener);
});
stream.once('finish', () => {
utils.removeListeners(stream);
resolve(`Uploaded data stream to ${aPath}`);
this.removeListener('error', errorListener);
this.removeListener('close', closeListener);
});
if (data instanceof Buffer) {
stream.end(data);
} else {
data.pipe(stream);
}

@@ -846,19 +841,18 @@ });

return new Promise((resolve, reject) => {
let errorListener;
try {
this.debugMsg(`mkdir -> ${p}`);
errorListener = utils.makeErrorListener(reject, this, 'mkdir');
this.client.prependListener('error', errorListener);
this.sftp.mkdir(p, err => {
if (err) {
this.debugMsg(`mkdir error ${err.message} code: ${err.code}`);
reject(
utils.formatError(`${err.message} ${p}`, '_mkdir', err.code)
);
}
resolve(`${p} directory created`);
});
} finally {
this.debugMsg(`mkdir -> ${p}`);
let closeListener = utils.makeCloseListener(this, reject, 'mkdir');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'mkdir');
this.client.prependListener('error', errorListener);
this.sftp.mkdir(p, err => {
if (err) {
this.debugMsg(`mkdir error ${err.message} code: ${err.code}`);
reject(
utils.formatError(`${err.message} ${p}`, '_mkdir', err.code)
);
}
resolve(`${p} directory created`);
this.removeListener('error', errorListener);
}
this.removeListener('close', closeListener);
});
});

@@ -909,19 +903,18 @@ };

return new Promise((resolve, reject) => {
let errorListener;
try {
this.debugMsg(`rmdir -> ${p}`);
errorListener = utils.makeErrorListener(reject, this, 'rmdir');
this.client.prependListener('error', errorListener);
this.sftp.rmdir(p, err => {
if (err) {
this.debugMsg(`rmdir error ${err.message} code: ${err.code}`);
reject(
utils.formatError(`${err.message} ${p}`, '_rmdir', err.code)
);
}
resolve('Successfully removed directory');
});
} finally {
this.debugMsg(`rmdir -> ${p}`);
let closeListener = utils.makeCloseListener(this, reject, 'rmdir');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'rmdir');
this.client.prependListener('error', errorListener);
this.sftp.rmdir(p, err => {
if (err) {
this.debugMsg(`rmdir error ${err.message} code: ${err.code}`);
reject(
utils.formatError(`${err.message} ${p}`, '_rmdir', err.code)
);
}
resolve('Successfully removed directory');
this.removeListener('error', errorListener);
}
this.removeListener('close', closeListener);
});
});

@@ -976,19 +969,18 @@ };

return new Promise((resolve, reject) => {
let errorListener;
try {
this.debugMsg(`delete -> ${p}`);
errorListener = utils.makeErrorListener(reject, this, 'delete');
this.client.prependListener('error', errorListener);
this.sftp.unlink(p, err => {
if (err) {
this.debugMsg(`delete error ${err.message} code: ${err.code}`);
reject(
utils.formatError(`${err.message} ${p}`, '_delete', err.code)
);
}
resolve('Successfully deleted file');
});
} finally {
this.debugMsg(`delete -> ${p}`);
let closeListener = utils.makeCloseListener(this, reject, 'delete');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'delete');
this.client.prependListener('error', errorListener);
this.sftp.unlink(p, err => {
if (err) {
this.debugMsg(`delete error ${err.message} code: ${err.code}`);
reject(
utils.formatError(`${err.message} ${p}`, '_delete', err.code)
);
}
resolve('Successfully deleted file');
this.removeListener('error', errorListener);
}
this.removeListener('close', closeListener);
});
});

@@ -1029,22 +1021,21 @@ };

return new Promise((resolve, reject) => {
let errorListener;
try {
this.debugMsg(`rename -> ${from} ${to}`);
errorListener = utils.makeErrorListener(reject, this, 'rename');
this.client.prependListener('error', errorListener);
this.sftp.rename(from, to, err => {
if (err) {
this.debugMsg(`rename error ${err.message} code: ${err.code}`);
reject(
utils.formatError(
`${err.message} From: ${from} To: ${to}`,
'_rename'
)
);
}
resolve(`Successfully renamed ${from} to ${to}`);
});
} finally {
this.debugMsg(`rename -> ${from} ${to}`);
let closeListener = utils.makeCloseListener(this, reject, 'rename');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'rename');
this.client.prependListener('error', errorListener);
this.sftp.rename(from, to, err => {
if (err) {
this.debugMsg(`rename error ${err.message} code: ${err.code}`);
reject(
utils.formatError(
`${err.message} From: ${from} To: ${to}`,
'_rename'
)
);
}
resolve(`Successfully renamed ${from} to ${to}`);
this.removeListener('error', errorListener);
}
this.removeListener('close', closeListener);
});
});

@@ -1106,16 +1097,15 @@ };

return new Promise((resolve, reject) => {
let errorListener;
try {
this.debugMsg(`chmod -> ${p} ${m}`);
errorListener = utils.makeErrorListener(reject, this, 'chmod');
this.client.prependListener('error', errorListener);
this.sftp.chmod(p, m, err => {
if (err) {
reject(utils.formatError(`${err.message} ${p}`, '_chmod'));
}
resolve('Successfully change file mode');
});
} finally {
this.debugMsg(`chmod -> ${p} ${m}`);
let closeListener = utils.makeCloseListener(this, reject, 'chmod');
this.client.prependListener('close', closeListener);
let errorListener = utils.makeErrorListener(reject, this, 'chmod');
this.client.prependListener('error', errorListener);
this.sftp.chmod(p, m, err => {
if (err) {
reject(utils.formatError(`${err.message} ${p}`, '_chmod'));
}
resolve('Successfully change file mode');
this.removeListener('error', errorListener);
}
this.removeListener('close', closeListener);
});
});

@@ -1122,0 +1112,0 @@ };

@@ -116,3 +116,2 @@ 'use strict';

self.errorHandled = true;
console.debug('Error event caught by method error handler');
reject(formatError(err, name));

@@ -125,3 +124,5 @@ };

if (!client.endCalled) {
console.error(`${client.clientName} Connection ended unexpectedly`);
console.error(
`${client.clientName} End Listener: Connection ended unexpectedly`
);
}

@@ -131,6 +132,10 @@ };

function makeCloseListener(client) {
function makeCloseListener(client, reject, name) {
return function() {
if (!client.endCalled) {
console.error(`${client.clientName}: Connection closed unexpectedly`);
if (reject) {
reject(formatError('Connection closed unepectedly', name));
} else {
console.error(`${client.clientName}: Connection closed unexpectedly`);
}
}

@@ -137,0 +142,0 @@ client.sftp = undefined;

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc