jsftpd
Advanced tools
Comparing version 1.2.1 to 1.2.2
@@ -12,3 +12,3 @@ # Welcome to jsftpd documentation! | ||
```{code-block} javascript | ||
```{code-block} shell | ||
npm install jsftpd | ||
@@ -24,3 +24,3 @@ ``` | ||
const server = new ftpd({cnf: {username: 'john', password: 'doe', basefolder: '/tmp'}) | ||
const server = new ftpd({cnf: {username: 'john', password: 'doe', basefolder: '/tmp'}}) | ||
@@ -27,0 +27,0 @@ server.start() |
@@ -962,2 +962,7 @@ /* | ||
dataChannel.on('secureConnection', (pasvSocket) => { | ||
pasvSocket.on('error', main.ErrorHandler) | ||
pasvSocket.setTimeout(5000) | ||
pasvSocket.on('timeout', () => { | ||
pasvSocket.destroy() | ||
}) | ||
main.DebugHandler(`${connectionInfo} data connection established`) | ||
@@ -972,2 +977,8 @@ dataObj.dataSocket = pasvSocket | ||
dataChannel.on('connection', (pasvSocket) => { | ||
pasvSocket.on('error', main.ErrorHandler) | ||
pasvSocket.setTimeout(5000) | ||
pasvSocket.on('timeout', () => { | ||
pasvSocket.destroy() | ||
}) | ||
pasvSocket.on('close', () => main.DebugHandler(`${connectionInfo} data connection has been closed`)) | ||
if (isSecure === true && protection === true) { | ||
@@ -1009,2 +1020,3 @@ pasvSocket = new tls.TLSSocket(pasvSocket, { isServer: true, secureContext: tls.createSecureContext(main._opt.tls) }) | ||
}) | ||
activeSocket.on('error', main.ErrorHandler) | ||
} else { | ||
@@ -1015,2 +1027,6 @@ obj.dataSocket = client | ||
}) | ||
client.setTimeout(5000) | ||
client.on('timeout', () => { | ||
client.destroy() | ||
}) | ||
client.on('error', main.ErrorHandler) | ||
@@ -1017,0 +1033,0 @@ } else { |
{ | ||
"name": "jsftpd", | ||
"id": "jsftpd", | ||
"version": "1.2.1", | ||
"version": "1.2.2", | ||
"description": "FTP server for node.js", | ||
@@ -6,0 +6,0 @@ "main": "index.js", |
@@ -16,3 +16,3 @@ # jsftpd | ||
``` | ||
```shell | ||
$ npm install jsftpd | ||
@@ -25,6 +25,6 @@ ``` | ||
``` | ||
```js | ||
const { ftpd } = require('jsftpd') | ||
const server = new ftpd({cnf: {username: 'john', password: 'doe', basefolder: '/tmp'}) | ||
const server = new ftpd({cnf: {username: 'john', password: 'doe', basefolder: '/tmp'}}) | ||
@@ -31,0 +31,0 @@ server.start() |
@@ -38,3 +38,3 @@ const { ftpd } = require('../index') | ||
let socket = promiseSocket.stream | ||
await socket.connect(cmdPortTCP, 'localhost') | ||
await socket.connect(cmdPortTCP, '127.0.0.1', 'localhost') | ||
content = await promiseSocket.read() | ||
@@ -41,0 +41,0 @@ expect(content.toString().trim()).toBe('220 Welcome') |
@@ -43,3 +43,3 @@ const { ftpd } = require('../index') | ||
let socket = promiseSocket.stream | ||
await socket.connect(cmdPortTCP, 'localhost') | ||
await socket.connect(cmdPortTCP, '127.0.0.1', 'localhost') | ||
content = await promiseSocket.read() | ||
@@ -46,0 +46,0 @@ expect(content.toString().trim()).toBe('220 Welcome') |
@@ -7,3 +7,3 @@ const { ftpd } = require('../index') | ||
jest.setTimeout(5000) | ||
jest.setTimeout(7500) | ||
let server, content, dataContent = null | ||
@@ -132,3 +132,41 @@ const cmdPortTCP = getCmdPortTCP() | ||
test('test STOR message failes due to socket timeout', async () => { | ||
const users = [ | ||
{ | ||
username: 'john', | ||
allowLoginWithoutPassword: true, | ||
} | ||
] | ||
server = new ftpd({cnf: {port: 50021, user: users, minDataPort: dataPort}}) | ||
expect(server).toBeInstanceOf(ftpd) | ||
server.start() | ||
let promiseSocket = new PromiseSocket(new net.Socket()) | ||
let socket = promiseSocket.stream | ||
await socket.connect(50021, 'localhost') | ||
content = await promiseSocket.read() | ||
expect(content.toString().trim()).toBe('220 Welcome') | ||
await promiseSocket.write('USER john') | ||
content = await promiseSocket.read() | ||
expect(content.toString().trim()).toBe('232 User logged in') | ||
await promiseSocket.write('STOR ../../mytestfile') | ||
content = await promiseSocket.read() | ||
expect(content.toString().trim()).toBe('550 Transfer failed "../../mytestfile"') | ||
await promiseSocket.write('EPSV') | ||
content = await promiseSocket.read() | ||
expect(content.toString().trim()).toBe(`229 Entering extended passive mode (|||${dataPort}|)`) | ||
let promiseDataSocket = new PromiseSocket(new net.Socket()) | ||
let dataSocket = promiseDataSocket.stream | ||
await dataSocket.connect(dataPort, 'localhost') | ||
await sleep(5500) | ||
expect(dataSocket.destroyed).toBe(true) | ||
await promiseSocket.end() | ||
}) | ||
test('test STOR message with ASCII', async () => { | ||
@@ -135,0 +173,0 @@ const users = [ |
188063
3557