* Fix issues with album art linking if the link target is in a different directory than the previous file.
This commit is contained in:
parent
68f7448c0c
commit
6fc880a25d
11
albumart.c
11
albumart.c
@ -23,6 +23,7 @@
|
||||
#include <sys/stat.h>
|
||||
#include <libgen.h>
|
||||
#include <setjmp.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <jpeglib.h>
|
||||
|
||||
@ -119,7 +120,15 @@ check_embedded_art(const char * path, const char * image_data, int image_size)
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINTF(E_WARN, L_METADATA, "Linking %s to %s failed\n", art_path, last_path);
|
||||
if( errno == ENOENT )
|
||||
{
|
||||
cache_dir = strdup(art_path);
|
||||
make_dir(dirname(cache_dir), S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH);
|
||||
free(cache_dir);
|
||||
if( link(last_path, art_path) == 0 )
|
||||
return(art_path);
|
||||
}
|
||||
DPRINTF(E_WARN, L_METADATA, "Linking %s to %s failed [%s]\n", art_path, last_path, strerror(errno));
|
||||
free(art_path);
|
||||
art_path = NULL;
|
||||
}
|
||||
|
14
minidlna.c
14
minidlna.c
@ -594,19 +594,23 @@ main(int argc, char * * argv)
|
||||
struct timeval timeout, timeofday, lasttimeofday = {0, 0}, lastupdatetime = {0, 0};
|
||||
int max_fd = -1;
|
||||
int last_changecnt = 0;
|
||||
#ifdef TIVO_SUPPORT
|
||||
unsigned short int loop_cnt = 0;
|
||||
int sbeacon = -1;
|
||||
struct sockaddr_in tivo_bcast;
|
||||
#endif
|
||||
char * sql;
|
||||
short int new_db = 0;
|
||||
pthread_t thread[2];
|
||||
#ifdef TIVO_SUPPORT
|
||||
unsigned short int loop_cnt = 0;
|
||||
int sbeacon = -1;
|
||||
struct sockaddr_in tivo_bcast;
|
||||
#endif
|
||||
|
||||
if(init(argc, argv) != 0)
|
||||
return 1;
|
||||
|
||||
#ifdef READYNAS
|
||||
DPRINTF(E_WARN, L_GENERAL, "Starting ReadyDLNA...\n");
|
||||
#else
|
||||
DPRINTF(E_WARN, L_GENERAL, "Starting MiniDLNA...\n");
|
||||
#endif
|
||||
LIST_INIT(&upnphttphead);
|
||||
|
||||
if( access(DB_PATH, F_OK) != 0 )
|
||||
|
@ -75,7 +75,7 @@ _get_mp3tags(char *file, struct song_metadata *psong)
|
||||
if(!strcmp(pid3frame->id, "YTCP")) /* for id3v2.2 */
|
||||
{
|
||||
psong->compilation = 1;
|
||||
DPRINTF(E_DEBUG, L_SCANNER, "Compilation: %d\n", psong->compilation);
|
||||
DPRINTF(E_DEBUG, L_SCANNER, "Compilation: %d [%s]\n", psong->compilation, basename(file));
|
||||
}
|
||||
else if(!strcmp(pid3frame->id, "APIC") && !image_size)
|
||||
{
|
||||
@ -580,11 +580,11 @@ _get_mp3fileinfo(char *file, struct song_metadata *psong)
|
||||
{
|
||||
if(ferror(infile))
|
||||
{
|
||||
DPRINTF(E_ERROR, L_SCANNER, "Error reading: %s\n", strerror(errno));
|
||||
DPRINTF(E_ERROR, L_SCANNER, "Error reading: %s [%s]\n", strerror(errno), file);
|
||||
}
|
||||
else
|
||||
{
|
||||
DPRINTF(E_ERROR, L_SCANNER, "File too small. Probably corrupted.\n");
|
||||
DPRINTF(E_WARN, L_SCANNER, "File too small. Probably corrupted. [%s]\n", file);
|
||||
}
|
||||
fclose(infile);
|
||||
return -1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user