Socket
Socket
Sign inDemoInstall

jsftpd

Package Overview
Dependencies
0
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.0 to 1.0.0

1

lib/jsftpd.js

@@ -226,3 +226,2 @@ /*

main._writeToSocket(socket, '504', ' ', `Unsupported auth type ${arg}`, connectionInfo, SocketStateAfterWrite.Open)
socket.end()
}

@@ -229,0 +228,0 @@ }

2

package.json
{
"name": "jsftpd",
"id": "jsftpd",
"version": "0.1.0",
"version": "1.0.0",
"description": "FTP server in pure javascript",

@@ -6,0 +6,0 @@ "main": "index.js",

@@ -5,5 +5,5 @@ # jsftpd

[![GitHub Workflow - CI](https://github.com/mailsvb/jsftpd/workflows/test/badge.svg)](https://github.com/mailsvb/jsftpd/actions?workflow=test)
[![Coverage Status](https://coveralls.io/repos/github/mailsvb/jsftpd/badge.svg?branch=main)](https://coveralls.io/github/mailsvb/jsftpd?branch=main)
[![Coverage Status](https://coveralls.io/repos/github/mailsvb/jsftpd/badge.svg)](https://coveralls.io/github/mailsvb/jsftpd?branch=main)
[![GitHub release (latest by date)](https://img.shields.io/github/v/release/mailsvb/jsftpd)](https://github.com/mailsvb/jsftpd/releases/latest)
[![Npm package version](https://badgen.net/npm/v/express)](https://npmjs.com/package/jsftpd)
[![Npm package version](https://badgen.net/npm/v/jsftpd)](https://npmjs.com/package/jsftpd)
[![Documentation Status](https://readthedocs.org/projects/jsftpd/badge/?version=latest)](https://jsftpd.readthedocs.io/en/latest/?badge=latest)

@@ -10,0 +10,0 @@ [![GitHub license](https://badgen.net/github/license/Naereen/Strapdown.js)](https://github.com/mailsvb/jsftpd/blob/master/LICENSE)

const { ftpd } = require('../index')
const net = require('net')
const tls = require('tls')
const {PromiseSocket, TimeoutError} = require('promise-socket')

@@ -1453,1 +1454,102 @@

});
test('test AUTH message', async () => {
const users = [
{
username: 'john',
allowLoginWithoutPassword: true,
}
]
server = new ftpd({cnf: {port: 50021, user: users}})
expect(server).toBeInstanceOf(ftpd);
server.start()
let content
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('AUTH NONE')
content = await promiseSocket.read();
expect(content.toString().trim()).toBe('504 Unsupported auth type NONE')
await promiseSocket.write('AUTH TLS')
content = await promiseSocket.read();
expect(content.toString().trim()).toBe('234 Using authentication type TLS')
promiseSocket = new PromiseSocket(new tls.connect({socket: socket, rejectUnauthorized: false}))
await promiseSocket.stream.once('secureConnect', function(){})
await promiseSocket.write('USER john')
content = await promiseSocket.read();
expect(content.toString().trim()).toBe('232 User logged in')
await promiseSocket.end()
});
test('test MLSD message over secure connection', async () => {
const users = [
{
username: 'john',
allowLoginWithoutPassword: true,
}
]
server = new ftpd({cnf: {port: 50021, user: users}})
expect(server).toBeInstanceOf(ftpd);
server.start()
let content
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('AUTH NONE')
content = await promiseSocket.read();
expect(content.toString().trim()).toBe('504 Unsupported auth type NONE')
await promiseSocket.write('AUTH TLS')
content = await promiseSocket.read();
expect(content.toString().trim()).toBe('234 Using authentication type TLS')
promiseSocket = new PromiseSocket(new tls.connect({socket: socket, rejectUnauthorized: false}))
await promiseSocket.stream.once('secureConnect', function(){})
await promiseSocket.write('USER john')
content = await promiseSocket.read();
expect(content.toString().trim()).toBe('232 User logged in')
await promiseSocket.write('PBSZ 0')
content = await promiseSocket.read();
expect(content.toString().trim()).toBe('200 PBSZ=0')
await promiseSocket.write('PROT P')
content = await promiseSocket.read();
expect(content.toString().trim()).toBe('200 Protection level is P')
await promiseSocket.write('EPSV')
content = await promiseSocket.read();
expect(content.toString().trim()).toBe('229 Entering extended passive mode (|||1024|)')
let promiseDataSocket = new PromiseSocket(new tls.connect(1024, 'localhost', {rejectUnauthorized: false}))
let dataSocket = promiseDataSocket.stream
await dataSocket.once('secureConnect', function(){})
await promiseSocket.write('STOR mytestfile')
content = await promiseSocket.read();
expect(content.toString().trim()).toBe('150 Opening data channel')
await promiseDataSocket.write('SOMETESTCONTENT');
dataSocket.end()
await promiseDataSocket.end()
content = await promiseSocket.read();
expect(content.toString().trim()).toBe('226 Successfully transferred "mytestfile"')
await promiseSocket.end()
});

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc