Socket
Socket
Sign inDemoInstall

ftp

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ftp - npm Package Compare versions

Comparing version 0.3.4 to 0.3.5

80

lib/connection.js

@@ -75,2 +75,3 @@ var fs = require('fs'),

secure: false,
secureOptions: undefined,
connTimeout: undefined,

@@ -94,2 +95,3 @@ pasvTimeout: undefined,

this.options.secure = options.secure || false;
this.options.secureOptions = options.secureOptions;
this.options.connTimeout = options.connTimeout || 10000;

@@ -102,5 +104,9 @@ this.options.pasvTimeout = options.pasvTimeout || 10000;

var debug = this._debug;
var socket = this._socket = new Socket();
var secureOptions,
debug = this._debug,
socket = new Socket();
socket.setTimeout(0);
socket.setKeepAlive(true);
this._parser = new Parser({ debug: debug });

@@ -130,14 +136,17 @@ this._parser.on('response', function(code, text) {

this._socket.setTimeout(0);
if (this.options.secure) {
secureOptions = {};
for (var k in this.options.secureOptions)
secureOptions[k] = this.options.secureOptions[k];
secureOptions.socket = socket;
this.options.secureOptions = secureOptions;
}
if (this.options.secure === 'implicit')
socket = tls.connect({ socket: this._socket }, onconnect);
else
this._socket.once('connect', onconnect);
this._socket = tls.connect(secureOptions, onconnect);
else {
socket.once('connect', onconnect);
this._socket = socket;
}
var timer = setTimeout(function() {
self.emit('error', new Error('Timeout while connecting to server'));
self._socket.destroy();
self._reset();
}, this.options.connTimeout);
var noopreq = {

@@ -188,3 +197,3 @@ cmd: 'NOOP',

self.emit('error', err);
return self._socket.end();
return self._socket && self._socket.end();
}

@@ -196,3 +205,3 @@ if ((cmd === 'AUTH TLS' && code !== 234 && self.options.secure !== true)

self.emit('error', makeError(code, 'Unable to secure connection(s)'));
return self._socket.end();
return self._socket && self._socket.end();
}

@@ -217,3 +226,3 @@

self.emit('error', makeError(code, 'Password required'));
return self._socket.end();
return self._socket && self._socket.end();
}

@@ -252,9 +261,13 @@ cmd = 'PASS';

socket.removeAllListeners('data');
socket.removeAllListeners('error');
socket._decoder = null;
self._curReq = null; // prevent queue from being processed during
// TLS/SSL negotiation
socket = tls.connect({ socket: self._socket }, onconnect);
secureOptions.socket = self._socket;
secureOptions.session = undefined;
socket = tls.connect(secureOptions, onconnect);
socket.setEncoding('binary');
socket.on('data', ondata);
socket.once('end', onend);
socket.on('error', onerror);
}

@@ -271,10 +284,10 @@ }

this._socket.once('error', function(err) {
socket.on('error', onerror);
function onerror(err) {
clearTimeout(timer);
clearTimeout(self._keepalive);
self.emit('error', err);
});
}
var hasReset = false;
this._socket.once('end', onend);
socket.once('end', onend);
function onend() {

@@ -285,3 +298,3 @@ ondone();

this._socket.once('close', function(had_err) {
socket.once('close', function(had_err) {
ondone();

@@ -291,2 +304,3 @@ self.emit('close', had_err);

var hasReset = false;
function ondone() {

@@ -300,2 +314,8 @@ if (!hasReset) {

var timer = setTimeout(function() {
self.emit('error', new Error('Timeout while connecting to server'));
self._socket && self._socket.destroy();
self._reset();
}, this.options.connTimeout);
this._socket.connect(this.options.port, this.options.host);

@@ -662,3 +682,3 @@ };

else {
function nextDir() {
var nextDir = function() {
if (++i === dirslen) {

@@ -692,3 +712,3 @@ // return to original working directory

}
}
};
this.pwd(function(err, cwd) {

@@ -846,6 +866,7 @@ if (err)

if (self.options.secure === true) {
socket = tls.connect({
socket: socket,
session: self._socket.getSession() // re-use existing session
});
self.options.secureOptions.socket = socket;
self.options.secureOptions.session = self._socket.getSession();
//socket.removeAllListeners('error');
socket = tls.connect(self.options.secureOptions);
//socket.once('error', onerror);
socket.setTimeout(0);

@@ -857,5 +878,6 @@ }

});
socket.once('error', function(err) {
socket.once('error', onerror);
function onerror(err) {
sockerr = err;
});
}
socket.once('end', function() {

@@ -862,0 +884,0 @@ clearTimeout(timer);

@@ -1,2 +0,3 @@

var WritableStream = require('readable-stream').Writable,
var WritableStream = require('stream').Writable
|| require('readable-stream').Writable,
inherits = require('util').inherits,

@@ -3,0 +4,0 @@ inspect = require('util').inspect;

{ "name": "ftp",
"version": "0.3.4",
"version": "0.3.5",
"author": "Brian White <mscdex@mscdex.net>",

@@ -9,3 +9,3 @@ "description": "An FTP client module for node.js",

"xregexp": "2.0.0",
"readable-stream": "1.0.2"
"readable-stream": "1.1.x"
},

@@ -12,0 +12,0 @@ "keywords": [ "ftp", "client", "transfer" ],

@@ -107,2 +107,4 @@ Description

* secureOptions - _object_ - Additional options to be passed to `tls.connect()`. **Default:** (none)
* user - _string_ - Username for authentication. **Default:** 'anonymous'

@@ -109,0 +111,0 @@

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