Skip to content

Commit

Permalink
fix(FTP Node): Fix issue with connections not closing properly (#8619)
Browse files Browse the repository at this point in the history
  • Loading branch information
Joffcom authored and despairblue committed Feb 16, 2024
1 parent fc01475 commit 1752308
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions packages/nodes-base/nodes/Ftp/Ftp.node.ts
Original file line number Diff line number Diff line change
Expand Up @@ -439,20 +439,22 @@ export class Ftp implements INodeType {
credential: ICredentialsDecrypted,
): Promise<INodeCredentialTestResult> {
const credentials = credential.data as ICredentialDataDecryptedObject;
const ftp = new ftpClient();
try {
const ftp = new ftpClient();
await ftp.connect({
host: credentials.host as string,
port: credentials.port as number,
user: credentials.username as string,
password: credentials.password as string,
});
} catch (error) {
await ftp.end();
return {
status: 'Error',
message: error.message,
};
}
await ftp.end();
return {
status: 'OK',
message: 'Connection successful!',
Expand All @@ -463,8 +465,8 @@ export class Ftp implements INodeType {
credential: ICredentialsDecrypted,
): Promise<INodeCredentialTestResult> {
const credentials = credential.data as ICredentialDataDecryptedObject;
const sftp = new sftpClient();
try {
const sftp = new sftpClient();
if (credentials.privateKey) {
await sftp.connect({
host: credentials.host as string,
Expand All @@ -483,11 +485,13 @@ export class Ftp implements INodeType {
});
}
} catch (error) {
await sftp.end();
return {
status: 'Error',
message: error.message,
};
}
await sftp.end();
return {
status: 'OK',
message: 'Connection successful!',
Expand All @@ -511,10 +515,9 @@ export class Ftp implements INodeType {
} else {
credentials = await this.getCredentials('ftp');
}
let ftp: ftpClient;
let sftp: sftpClient;
try {
let ftp: ftpClient;
let sftp: sftpClient;

if (protocol === 'sftp') {
sftp = new sftpClient();
if (credentials.privateKey) {
Expand Down Expand Up @@ -809,6 +812,11 @@ export class Ftp implements INodeType {
await ftp!.end();
}
} catch (error) {
if (protocol === 'sftp') {
await sftp!.end();
} else {
await ftp!.end();
}
if (this.continueOnFail()) {
return [[{ json: { error: error.message } }]];
}
Expand Down

0 comments on commit 1752308

Please sign in to comment.