1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Fixed deleting recordings that have been removed externally when running out of disk space

This commit is contained in:
Klaus Schmidinger 2006-03-19 14:36:43 +01:00
parent cf1941ca01
commit 7bba79ef0a
3 changed files with 15 additions and 4 deletions

View File

@ -1781,3 +1781,7 @@ Pekka Mauno <pekka.mauno@iki.fi>
Alexander Wenzel <hondansx@gmx.de> Alexander Wenzel <hondansx@gmx.de>
for fixing the shutdown timeout for fixing the shutdown timeout
Jan Lenz <email@JanLenz.de>
for reporting a bug in deleting recordings that have been removed externally when
running out of disk space

View File

@ -4432,3 +4432,5 @@ Video Disk Recorder Revision History
- Fixed the shutdown timeout (thanks to Alexander Wenzel). - Fixed the shutdown timeout (thanks to Alexander Wenzel).
- Only calling RemoveEmptyVideoDirectories() once in case a recording has been - Only calling RemoveEmptyVideoDirectories() once in case a recording has been
deleted (reported by Hardy Flor). deleted (reported by Hardy Flor).
- Fixed deleting recordings that have been removed externally when running out of
disk space (reported by Jan Lenz).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and * See the main source file 'vdr.c' for copyright information and
* how to reach the author. * how to reach the author.
* *
* $Id: recording.c 1.141 2006/03/19 14:08:58 kls Exp $ * $Id: recording.c 1.142 2006/03/19 14:33:18 kls Exp $
*/ */
#include "recording.h" #include "recording.h"
@ -804,11 +804,16 @@ bool cRecording::Delete(void)
strncpy(ext, DELEXT, strlen(ext)); strncpy(ext, DELEXT, strlen(ext));
if (access(NewName, F_OK) == 0) { if (access(NewName, F_OK) == 0) {
// the new name already exists, so let's remove that one first: // the new name already exists, so let's remove that one first:
isyslog("removing recording %s", NewName); isyslog("removing recording '%s'", NewName);
RemoveVideoFile(NewName); RemoveVideoFile(NewName);
} }
isyslog("deleting recording %s", FileName()); isyslog("deleting recording '%s'", FileName());
result = RenameVideoFile(FileName(), NewName); if (access(FileName(), F_OK) == 0)
result = RenameVideoFile(FileName(), NewName);
else {
isyslog("recording '%s' vanished", FileName());
result = true; // well, we were going to delete it, anyway
}
} }
free(NewName); free(NewName);
return result; return result;