X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=vss.c;h=d205349370f69a9445ff1db7bb1c269b2d6431a7;hp=1bd74de69f6d83f0f4e2ef2b28fe3c657d107f17;hb=de9a70360fcd3b5285d280ad1f229f679d453603;hpb=e59019f183e080486fda280868cf4669955148c2 diff --git a/vss.c b/vss.c index 1bd74de6..d2053493 100644 --- a/vss.c +++ b/vss.c @@ -65,15 +65,25 @@ enum afs_socket_status { /** The task structure for the virtual streaming system. */ struct vss_task { + /** Copied from the -announce_time command line option. */ struct timeval announce_tv; + /** End of the announcing interval. */ struct timeval data_send_barrier; + /** End of the EOF interval. */ struct timeval eof_barrier; + /** Only used if --autoplay_delay was given. */ struct timeval autoplay_barrier; + /** Used for afs-server communication. */ int afs_socket; + /** The current state of \a afs_socket. */ enum afs_socket_status afsss; + /** The memory mapped audio file. */ char *map; + /** Used by the scheduler. */ struct task task; + /** Pointer to the header of the mapped audio file. */ const char *header_buf; + /** Length of the audio file header. */ size_t header_len; }; @@ -372,8 +382,10 @@ static void recv_afs_result(struct vss_task *vsst) } mmd->size = statbuf.st_size; mmd->mtime = statbuf.st_mtime; - vsst->map = para_mmap(mmd->size, PROT_READ, MAP_PRIVATE, - passed_fd, 0); + ret = para_mmap(mmd->size, PROT_READ, MAP_PRIVATE, passed_fd, + 0, &vsst->map); + if (ret < 0) + goto err; close(passed_fd); mmd->chunks_sent = 0; mmd->current_chunk = 0;