build: Replace $extras by per-executable variable.
[paraslash.git] / vss.c
diff --git a/vss.c b/vss.c
index e643805c340288b45366154fe655d819d80d95a4..06707d6cfee11a70089db3fd7ef230af454e1516 100644 (file)
--- 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);