- if(aborted()) return EINTR;
- D(("rechecking %s", track));
- /* see if the track has evaporated */
- if(check(c->module, c->root, path) == 0) {
- D(("obsoleting %s", track));
- if((err = trackdb_obsolete(track, tid))) return err;
+ if((err = trackdb_getdata(trackdb_tracksdb, t->track, &data, tid)))
+ return err;
+ path = kvp_get(data, "_path");
+ D(("rechecking %s", t->track));
+ /* if we're not checking a specific collection, find the right collection */
+ if(!c) {
+ if(!(c = find_track_collection(t->track))) {
+ D(("obsoleting %s", t->track));
+ if((err = trackdb_obsolete(t->track, tid)))
+ return err;
+ ++cs->nnocollection;
+ return 0;
+ }
+ }
+ /* see if the track has evaporated or no longer has a player */
+ for(n = 0; (n < config->player.n
+ && fnmatch(config->player.s[n].s[0], t->track, 0) != 0); ++n)
+ ;
+ if(n >= config->player.n || check(c->module, c->root, path) == 0) {
+ D(("obsoleting %s", t->track));
+ if((err = trackdb_obsolete(t->track, tid)))
+ return err;