From 1600b0fd82b32ebd8769dacba234a7c65798d2a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Fran=C4=8De=C5=A1kin?= Date: Wed, 31 Jul 2019 15:22:46 +0200 Subject: [PATCH] Mavlink FTP - return ENOENT when directory doesn't exist (#12589) --- src/modules/mavlink/mavlink_ftp.cpp | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/modules/mavlink/mavlink_ftp.cpp b/src/modules/mavlink/mavlink_ftp.cpp index e7d9987e2d..a1042d0783 100644 --- a/src/modules/mavlink/mavlink_ftp.cpp +++ b/src/modules/mavlink/mavlink_ftp.cpp @@ -275,7 +275,6 @@ out: payload->data[0] = errorCode; - if (errorCode == kErrFailErrno) { payload->size = 2; payload->data[1] = r_errno; @@ -353,14 +352,10 @@ MavlinkFTP::_workList(PayloadHeader *payload, bool list_hidden) DIR *dp = opendir(_work_buffer1); if (dp == nullptr) { -#ifdef MAVLINK_FTP_UNIT_TEST PX4_WARN("File open failed %s", _work_buffer1); -#else - _mavlink->send_statustext_critical("FTP: can't open path (file system corrupted?)"); - _mavlink->send_statustext_critical(_work_buffer1); -#endif - // this is not an FTP error, abort directory by simulating eof - return kErrEOF; + // this is not an FTP error, abort directory by setting errno to ENOENT "No such file or directory" + errno = ENOENT; + return kErrFailErrno; } #ifdef MAVLINK_FTP_DEBUG @@ -381,13 +376,7 @@ MavlinkFTP::_workList(PayloadHeader *payload, bool list_hidden) // read the directory entry if (result == nullptr) { if (errno) { -#ifdef MAVLINK_FTP_UNIT_TEST PX4_WARN("readdir failed"); -#else - _mavlink->send_statustext_critical("FTP: list readdir failure"); - _mavlink->send_statustext_critical(_work_buffer1); -#endif - payload->data[offset++] = kDirentSkip; *((char *)&payload->data[offset]) = '\0'; offset++;