X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=vss.c;h=235219c1148aac2412b1b41879bf045d0b571af8;hb=f56e7627e5fbde3705f9241e6bcaeafe8c123674;hp=101fdb8818b4fe8ca794bda2cd71a385b093df02;hpb=6428bef6e3c172851dc97c3e126f438c7aaf0695;p=paraslash.git diff --git a/vss.c b/vss.c index 101fdb88..235219c1 100644 --- a/vss.c +++ b/vss.c @@ -845,7 +845,6 @@ static void vss_compute_timeout(struct sched *s, struct vss_task *vsst) static void vss_eof(struct vss_task *vsst) { - if (!vsst->map) return; if (mmd->new_vss_status_flags & VSS_NOMORE) @@ -856,8 +855,8 @@ static void vss_eof(struct vss_task *vsst) para_munmap(vsst->map, vsst->mapsize); vsst->map = NULL; mmd->chunks_sent = 0; - //mmd->offset = 0; mmd->afd.afhi.seconds_total = 0; + mmd->afd.afhi.chunks_total = 0; mmd->afd.afhi.chunk_tv.tv_sec = 0; mmd->afd.afhi.chunk_tv.tv_usec = 0; free(mmd->afd.afhi.chunk_table); @@ -965,6 +964,11 @@ static void recv_afs_result(struct vss_task *vsst, fd_set *rfds) if (ret < 0) goto err; vsst->afsss = AFS_SOCKET_READY; + if (afs_code == NO_ADMISSIBLE_FILES) { + PARA_NOTICE_LOG("no admissible files\n"); + ret = 0; + goto err; + } ret = -E_NOFD; if (afs_code != NEXT_AUDIO_FILE) { PARA_ERROR_LOG("afs code: %u, expected: %d\n", afs_code, @@ -1001,9 +1005,11 @@ static void recv_afs_result(struct vss_task *vsst, fd_set *rfds) return; err: free(mmd->afd.afhi.chunk_table); + mmd->afd.afhi.chunk_table = NULL; if (passed_fd >= 0) close(passed_fd); - PARA_ERROR_LOG("%s\n", para_strerror(-ret)); + if (ret < 0) + PARA_ERROR_LOG("%s\n", para_strerror(-ret)); mmd->new_vss_status_flags = VSS_NEXT; }