diff --git a/src/ftp_server.cpp b/src/ftp_server.cpp index 29eb628888bbbaf5c47c324afa0a12893d8877eb..b1db52289437245d660ea5b5871c42b882ff4f6a 100644 --- a/src/ftp_server.cpp +++ b/src/ftp_server.cpp @@ -92,12 +92,14 @@ FtpServer::read(std::vector<uint8_t>& buffer) const if (!out_) { if (closed_) { closed_ = false; - buffer.resize(4); - buffer[0] = 'N'; buffer[1] = 'G'; buffer[2] = 'O'; buffer[3] = '\n'; - RING_DBG() << "[FTP] sending NGO (cancel) order"; - } else { - buffer.resize(0); + if (rx_ < fileSize_) { + buffer.resize(4); + buffer[0] = 'N'; buffer[1] = 'G'; buffer[2] = 'O'; buffer[3] = '\n'; + RING_DBG() << "[FTP] sending NGO (cancel) order"; + return true; + } } + buffer.resize(0); } else if (go_) { go_ = false; buffer.resize(3);