diff options
Diffstat (limited to 'server/connectionHTTP.c')
-rw-r--r-- | server/connectionHTTP.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/server/connectionHTTP.c b/server/connectionHTTP.c index 922bd04..b139c9b 100644 --- a/server/connectionHTTP.c +++ b/server/connectionHTTP.c @@ -523,8 +523,13 @@ RecPlayer* cConnectionHTTP::RecPlayerFromString(const char *FileBase, const char ino_t inode = (ino_t) strtoull(p + 1, &p, 0); if (*p == 0 && inode > 0) { struct stat st; +#if APIVERSNUM >= 20300 + LOCK_RECORDINGS_READ; + for (const cRecording *rec = Recordings->First(); rec; rec = Recordings->Next(rec)) { +#else cThreadLock RecordingsLock(&Recordings); for (cRecording *rec = Recordings.First(); rec; rec = Recordings.Next(rec)) { +#endif if (stat(rec->FileName(), &st) == 0 && st.st_dev == (dev_t) l && st.st_ino == inode) recPlayer = new RecPlayer(rec->FileName()); } @@ -532,8 +537,13 @@ RecPlayer* cConnectionHTTP::RecPlayerFromString(const char *FileBase, const char } else if (*p == 0) { // get recording by index +#if APIVERSNUM >= 20300 + LOCK_RECORDINGS_READ; + const cRecording *rec = Recordings->Get((int) l - 1); +#else cThreadLock RecordingsLock(&Recordings); cRecording *rec = Recordings.Get((int) l - 1); +#endif if (rec) recPlayer = new RecPlayer(rec->FileName()); } |