Parameterize FTP ports #283

This commit is contained in:
fvanroie 2022-02-01 07:50:15 +01:00
parent 4929286ebe
commit 6c8376c97d

View File

@ -20,14 +20,15 @@
extern hasp_http_config_t http_config; extern hasp_http_config_t http_config;
#endif #endif
FtpServer ftpSrv; // set #define FTP_DEBUG in ESP8266FtpServer.h to see ftp verbose on serial FtpServer* ftpSrv; // set #define FTP_DEBUG in ESP8266FtpServer.h to see ftp verbose on serial
uint16_t ftpPort = 23; uint16_t ftpCtrlPort = 21;
uint8_t ftpEnabled = true; // Enable telnet debug output uint16_t ftpDataPort = 50009;
uint8_t ftpEnabled = true;
size_t transferSize = 0; size_t transferSize = 0;
const char* transferName = NULL; const char* transferName = NULL;
void _callback(FtpOperation ftpOperation, unsigned int freeSpace, unsigned int totalSpace) void ftp_callback(FtpOperation ftpOperation, unsigned int freeSpace, unsigned int totalSpace)
{ {
switch(ftpOperation) { switch(ftpOperation) {
case FTP_CONNECT: case FTP_CONNECT:
@ -43,7 +44,7 @@ void _callback(FtpOperation ftpOperation, unsigned int freeSpace, unsigned int t
break; break;
} }
}; };
void _transferCallback(FtpTransferOperation ftpOperation, const char* name, unsigned int transferredSize) void ftp_transfer_callback(FtpTransferOperation ftpOperation, const char* name, unsigned int transferredSize)
{ {
transferName = name; transferName = name;
transferSize = transferredSize; transferSize = transferredSize;
@ -98,19 +99,33 @@ void _transferCallback(FtpTransferOperation ftpOperation, const char* name, unsi
void ftpStop(void) void ftpStop(void)
{ {
// LOG_WARNING(TAG_FTP, F("Service cannot be stopped")); if(ftpSrv) {
ftpSrv.end(); ftpSrv->end();
delete(ftpSrv);
ftpSrv = NULL;
}
transferSize = 0;
transferName = NULL;
LOG_INFO(TAG_FTP, F(D_SERVICE_STOPPED)); LOG_INFO(TAG_FTP, F(D_SERVICE_STOPPED));
} }
void ftpStart() void ftpStart()
{ {
LOG_TRACE(TAG_FTP, F(D_SERVICE_STARTING)); LOG_TRACE(TAG_FTP, F(D_SERVICE_STARTING));
ftpSrv.setCallback(_callback);
ftpSrv.setTransferCallback(_transferCallback); ftpSrv = new FtpServer(ftpCtrlPort, ftpDataPort);
if(!ftpSrv) {
LOG_INFO(TAG_FTP, F(D_SERVICE_START_FAILED));
return;
}
ftpSrv->setCallback(ftp_callback);
ftpSrv->setTransferCallback(ftp_transfer_callback);
#if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0 #if HASP_USE_HTTP > 0 || HASP_USE_HTTP_ASYNC > 0
ftpSrv.begin(http_config.username, http_config.password); // Password must be non-empty ftpSrv->begin(http_config.username, http_config.password, D_MANUFACTURER); // Password must be non-empty
#else #else
ftpSrv.begin("ftpuser", "haspadmin"); // username, password for ftp. (default 21, 50009 for PASV) ftpSrv.begin("ftpuser", "haspadmin"); // username, password for ftp. (default 21, 50009 for PASV)
#endif #endif
@ -128,7 +143,7 @@ void ftpSetup()
IRAM_ATTR void ftpLoop() IRAM_ATTR void ftpLoop()
{ {
ftpSrv.handleFTP(); // make sure in loop you call handleFTP()!! if(ftpSrv) ftpSrv->handleFTP(); // make sure in loop you call handleFTP()!!
} }
void ftpEverySecond(void) void ftpEverySecond(void)