X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=vss.c;h=06707d6cfee11a70089db3fd7ef230af454e1516;hp=e643805c340288b45366154fe655d819d80d95a4;hb=820ae21f7a453408dca3faa9ff1d28ca94d60009;hpb=74c88020bd325865fe26ed25ea8ad0ace0924136 diff --git a/vss.c b/vss.c index e643805c..06707d6c 100644 --- a/vss.c +++ b/vss.c @@ -565,8 +565,14 @@ static int setup_next_fec_group(struct fec_client *fc, struct vss_task *vsst) if (payload_size < g->slice_bytes) memset(fc->extra_header_buf + payload_size, 0, g->slice_bytes - payload_size); - fc->src_data[i] = fc->extra_header_buf; - assert(i == g->num_header_slices - 1); + /* + * There might be more than one header slice to fill although + * only the first one will be used. Set all header slices to + * our extra buffer. + */ + while (i < g->num_header_slices) + fc->src_data[i++] = fc->extra_header_buf; + break; /* we don't want i to be increased. */ } /* @@ -1174,7 +1180,7 @@ void init_vss_task(int afs_socket, struct sched *s) vsst->header_interval.tv_sec = 5; /* should this be configurable? */ vsst->afs_socket = afs_socket; vsst->task.pre_select = vss_pre_select; - vsst->task.new_post_select = vss_post_select; + vsst->task.post_select = vss_post_select; ms2tv(announce_time, &vsst->announce_tv); PARA_INFO_LOG("announce timeval: %lums\n", tv2ms(&vsst->announce_tv)); INIT_LIST_HEAD(&fec_client_list);