MCSManager/ftpd/ftpd.min.js

2 lines
46 KiB
JavaScript
Raw Permalink Normal View History

2017-11-13 12:26:31 +08:00
/* eslint-disable */
module.exports=function(modules){var installedModules={};function __webpack_require__(moduleId){if(installedModules[moduleId]){return installedModules[moduleId].exports}var module=installedModules[moduleId]={i:moduleId,l:false,exports:{}};modules[moduleId].call(module.exports,module,module.exports,__webpack_require__);module.l=true;return module.exports}__webpack_require__.m=modules;__webpack_require__.c=installedModules;__webpack_require__.d=function(exports,name,getter){if(!__webpack_require__.o(exports,name)){Object.defineProperty(exports,name,{configurable:false,enumerable:true,get:getter})}};__webpack_require__.n=function(module){var getter=module&&module.__esModule?function getDefault(){return module["default"]}:function getModuleExports(){return module};__webpack_require__.d(getter,"a",getter);return getter};__webpack_require__.o=function(object,property){return Object.prototype.hasOwnProperty.call(object,property)};__webpack_require__.p="";return __webpack_require__(__webpack_require__.s=1)}([function(module,exports){module.exports=require("path")},function(module,exports,__webpack_require__){var net=__webpack_require__(2);var util=__webpack_require__(3);var events=__webpack_require__(4);var pathModule=__webpack_require__(0);var fsModule=__webpack_require__(5);var StatMode=__webpack_require__(6);var dateformat=__webpack_require__(7);var glob=__webpack_require__(8);var starttls=__webpack_require__(9);var LOG_ERROR=0;var LOG_WARN=1;var LOG_INFO=2;var LOG_DEBUG=3;var LOG_TRACE=4;exports.LOG_LEVELS={LOG_ERROR:LOG_ERROR,LOG_WARN:LOG_WARN,LOG_INFO:LOG_INFO,LOG_DEBUG:LOG_DEBUG,LOG_TRACE:LOG_TRACE};var EventEmitter=events.EventEmitter;function pathEscape(text){text=text.replace(/"/g,'""');return text}function withCwd(cwd,path){var firstChar=(path||"").charAt(0);cwd=cwd||pathModule.sep;path=path||"";if(firstChar==="/"||firstChar===pathModule.sep){cwd=pathModule.sep}path=pathModule.join(pathModule.sep,cwd,path);return path}function stripOptions(str){var IN_SPACE=0;var IN_DASH=1;var state=IN_SPACE;for(var i=0;i<str.length;++i){var c=str.charAt(i);if(state===IN_SPACE){if(c===" "||c==="\t"){}else if(c==="-"){state=IN_DASH}else{return str.substr(i)}}else if(state===IN_DASH&&(c===" "||c==="\t")){state=IN_SPACE}}return""}function PassiveListener(){EventEmitter.call(this)}util.inherits(PassiveListener,EventEmitter);function FtpServer(host,options){var self=this;EventEmitter.call(self);self.host=host;self.options=options;if(!self.options.maxStatsAtOnce){self.options.maxStatsAtOnce=5}if(!options.getInitialCwd){throw new Error("'getInitialCwd' option of FtpServer must be set")}if(!options.getRoot){throw new Error("'getRoot' option of FtpServer must be set")}self.getInitialCwd=options.getInitialCwd;self.getRoot=options.getRoot;self.getUsernameFromUid=options.getUsernameFromUid||function(uid,c){c(null,"ftp")};self.getGroupFromGid=options.getGroupFromGid||function(gid,c){c(null,"ftp")};self.debugging=options.logLevel||0;self.useWriteFile=options.useWriteFile;self.useReadFile=options.useReadFile;self.uploadMaxSlurpSize=options.uploadMaxSlurpSize||0;self.server=net.createServer();self.server.on("connection",function(socket){self._onConnection(socket)});self.server.on("error",function(err){self.emit("error",err)});self.server.on("close",function(){self.emit("close")})}util.inherits(FtpServer,EventEmitter);FtpServer.prototype._onConnection=function(socket){var allowedCommands=null;if(this.options.allowedCommands){allowedCommands={};this.options.allowedCommands.forEach(function(c){allowedCommands[c.trim().toUpperCase()]=true})}var conn=new FtpConnection({server:this,socket:socket,pasv:null,allowedCommands:allowedCommands,dataPort:20,dataHost:null,dataListener:null,dataSocket:null,dataConfigured:false,mode:"ascii",filefrom:"",username:null,filename:"",fs:null,cwd:null,root:null,hasQuit:false,secure:false,pbszReceived:false});this.emit("client:connected",conn);socket.setTimeout(0);socket.setNoDelay();this._logIf(LOG_INFO,"Accepted a new client connection");conn.respond("220 FTP server (nodeftpd) ready");socket.on("data",function(buf){conn._o