implement DELE

This commit is contained in:
mtheall 2014-11-23 23:54:12 -06:00
parent 6b901af675
commit 24ec52babb

View File

@ -1612,12 +1612,38 @@ FTP_DECLARE(CWD)
FTP_DECLARE(DELE) FTP_DECLARE(DELE)
{ {
/* TODO */ #ifdef _3DS
Result ret;
#else
int rc;
#endif
console_print("%s %s\n", __func__, args ? args : ""); console_print("%s %s\n", __func__, args ? args : "");
ftp_session_set_state(session, COMMAND_STATE); ftp_session_set_state(session, COMMAND_STATE);
return ftp_send_response(session, 502, "unavailable\r\n"); if(validate_path(args) != 0)
return ftp_send_response(session, 553, "invalid file name\r\n");
build_path(session, args);
#ifdef _3DS
ret = FSUSER_DeleteFile(NULL, sdmcArchive, FS_makePath(PATH_CHAR, session->buffer));
if(ret != 0)
{
console_print("FSUSER_DeleteFile: 0x%08X\n", (unsigned int)ret);
return ftp_send_response(session, 550, "failed to delete file\r\n");
}
#else
rc = unlink(session->buffer);
if(rc != 0)
{
console_print("unlink: %s\n", strerror(errno));
return ftp_send_response(session, 550, "failed to delete file\r\n");
}
#endif
return ftp_send_response(session, 250, "OK\r\n");
} }
FTP_DECLARE(FEAT) FTP_DECLARE(FEAT)
@ -1681,10 +1707,7 @@ FTP_DECLARE(MKD)
ftp_session_set_state(session, COMMAND_STATE); ftp_session_set_state(session, COMMAND_STATE);
if(validate_path(args) != 0) if(validate_path(args) != 0)
{
ftp_session_set_state(session, COMMAND_STATE);
return ftp_send_response(session, 553, "invalid file name\r\n"); return ftp_send_response(session, 553, "invalid file name\r\n");
}
build_path(session, args); build_path(session, args);