Skip to content

Commit

Permalink
fa_scanner: Keep metadata_t in fde so we can make better analysis of …
Browse files Browse the repository at this point in the history
…the content
  • Loading branch information
andoma committed Oct 17, 2011
1 parent 9f433db commit e3ac9de
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 16 deletions.
29 changes: 13 additions & 16 deletions src/fileaccess/fa_scanner.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,35 +225,32 @@ deep_probe(fa_dir_entry_t *fde, scanner_t *s)

prop_t *meta = prop_ref_inc(prop_create(fde->fde_prop, "metadata"));

metadata_t *md = NULL;

if(fde->fde_md != NULL) {
md = fde->fde_md;
fde->fde_md = NULL;
if(!fde->fde_ignore_cache && !fa_dir_entry_stat(fde)) {
if(fde->fde_md != NULL)
metadata_destroy(fde->fde_md);
fde->fde_md = metadb_metadata_get(getdb(s), fde->fde_url,
fde->fde_stat.fs_mtime);
}

if(md == NULL && !fde->fde_ignore_cache && !fa_dir_entry_stat(fde))
md = metadb_metadata_get(getdb(s), fde->fde_url, fde->fde_stat.fs_mtime);

if(md == NULL) {
if(fde->fde_md == NULL) {

if(fde->fde_type == CONTENT_DIR)
md = fa_probe_dir(fde->fde_url);
fde->fde_md = fa_probe_dir(fde->fde_url);
else
md = fa_probe_metadata(fde->fde_url, NULL, 0);
fde->fde_md = fa_probe_metadata(fde->fde_url, NULL, 0);
}

if(md != NULL) {
fde->fde_type = md->md_contenttype;
if(fde->fde_md != NULL) {
fde->fde_type = fde->fde_md->md_contenttype;
fde->fde_ignore_cache = 0;
metadata_to_proptree(md, meta, 1);
metadata_to_proptree(fde->fde_md, meta, 1);

if(md->md_cached == 0) {
if(fde->fde_md->md_cached == 0) {
metadb_metadata_write(getdb(s), fde->fde_url,
fde->fde_stat.fs_mtime,
md, s->s_url, s->s_mtime);
fde->fde_md, s->s_url, s->s_mtime);
}
metadata_destroy(md);
}
prop_ref_dec(meta);

Expand Down
3 changes: 3 additions & 0 deletions src/fileaccess/fileaccess.c
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,9 @@ fa_dir_entry_free(fa_dir_t *fd, fa_dir_entry_t *fde)
if(fde->fde_metadata != NULL)
prop_destroy(fde->fde_metadata);

if(fde->fde_md != NULL)
metadata_destroy(fde->fde_md);

fd->fd_count--;
TAILQ_REMOVE(&fd->fd_entries, fde, fde_link);
free(fde->fde_filename);
Expand Down

0 comments on commit e3ac9de

Please sign in to comment.