Trigger von UPDR auf verbundenen VDRs bei Aufnahmestart auf Server
-
-
mrjoe Sollte sich das nicht über "umask" steuern lassen?
Dazu gab es extra mal einen Patch: https://patchwork.linuxtv.org/…45.4.camel@wopr.deltab.de
Im GIT: http://git.tvdr.de/?p=vdr.git;…e0f1d5e40f0f4a052d1f9d511
-
Man könnte es über umask machen, zur Vereinfachung wäre es super, wenn vdr die Datei bei Bedarf mit den richtigen permissions anlegt. Etwa so in der Art:
Diff
Display More--- tools.c.orig 2024-09-07 17:54:32.728622969 +0200 +++ tools.c 2024-09-07 18:01:29.332622969 +0200 @@ -716,8 +716,18 @@ void TouchFile(const char *FileName) { - if (utime(FileName, NULL) == -1 && errno != ENOENT) - LOG_ERROR_STR(FileName); + if (utime(FileName, NULL) == -1) + if (errno == ENOENT) { + int fd = creat(FileName); + if (fd != -1) { + fchmod(fd, 0666); + close(fd); + } + else + LOG_ERROR_STR(FileName); + } + else + LOG_ERROR_STR(FileName); } time_t LastModifiedTime(const char *FileName)
-
Man könnte es über umask machen, zur Vereinfachung wäre es super, wenn vdr die Datei bei Bedarf mit den richtigen permissions anlegt.
Die Funktion sieht jetzt so aus:
Code
Display Morevoid TouchFile(const char *FileName, bool Create) { if (Create && access(FileName, F_OK) != 0) { // the file does not exist isyslog("creating file '%s'", FileName); int f = open(FileName, O_WRONLY | O_CREAT, DEFFILEMODE); if (f >= 0) close(f); else LOG_ERROR_STR(FileName); } if (utime(FileName, NULL) == -1 && errno != ENOENT) LOG_ERROR_STR(FileName); }
Der neue Parameter "Create" (default = false) war nötig, um rückwärtskompatibel zu sein (falls ein Plugin die Funktion verwendet und sich darauf verlässt, dass die Datei nicht angelegt wird).
Mit umask meinte ich, dass in der aufrufenden Shell die gewünschten Zugriffsrechte als Maske gesetzt werden. VDR selber legt alle Dateien mit DEFFILEMODE an (sys/stat.h):
Allerdings habe ich jetzt mal versuchsweise vor dem Aufruf von VDR ein "umask 0000" gemacht, die Dateien wurden aber dennoch mit -rw-r--r-- angelegt. Warum das so ist, weiß ich leider nicht. Auf alle Fälle macht es wohl keinen Sinn, wenn die .update bzw. .sort mit anderen Rechten angelegt werden als alle anderen Dateien.
Participate now!
Don’t have an account yet? Register yourself now and be a part of our community!