diff --git a/src/apps/codycam/SftpClient.cpp b/src/apps/codycam/SftpClient.cpp index 69b2038640..6bee9c0b7b 100644 --- a/src/apps/codycam/SftpClient.cpp +++ b/src/apps/codycam/SftpClient.cpp @@ -167,10 +167,32 @@ SftpClient::MoveFile(const string& oldPath, const string& newPath) { bool rc = false; int len; - BString cmd("rename"); - cmd << " " << oldPath.c_str() << " " << newPath.c_str() << "\n"; + + // sftpd can't rename to an existing file... + BString cmd("rm"); + cmd << " " << newPath.c_str() << "\n"; SendCommand(cmd.String()); BString reply; + + if ((len = ReadReply(&reply)) < 0) { + fprintf(stderr, "read: %s\n", len); + return false; + } + fprintf(stderr, "reply: '%s'\n", reply.String()); + if (reply.FindFirst("Removing") != 0) + return false; + + if ((len = ReadReply(&reply)) < 0) { + fprintf(stderr, "read: %s\n", len); + return false; + } + fprintf(stderr, "reply: '%s'\n", reply.String()); + if (reply.FindFirst("sftp>") < 0) + return false; + + cmd = "rename"; + cmd << " " << oldPath.c_str() << " " << newPath.c_str() << "\n"; + SendCommand(cmd.String()); if ((len = ReadReply(&reply)) < 0) { fprintf(stderr, "read: %s\n", len); return false; diff --git a/src/apps/codycam/VideoConsumer.cpp b/src/apps/codycam/VideoConsumer.cpp index 436974becd..8cc3705e45 100644 --- a/src/apps/codycam/VideoConsumer.cpp +++ b/src/apps/codycam/VideoConsumer.cpp @@ -707,7 +707,7 @@ VideoConsumer::FtpSave(char* filename) if (ftp->PutFile((string)filename, (string)"temp")) { // send the file to the server - ftp->Chmod((string)filename, (string)"644"); + ftp->Chmod((string)"temp", (string)"644"); // make it world readable UpdateFtpStatus("Renaming ...");