]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - vss.c
server: Introduce server_command_task.
[paraslash.git] / vss.c
diff --git a/vss.c b/vss.c
index 704c39300e569d9da65fe2a043880e7966c4f8c2..7b84dcf5db24dcf3128be1e5453a45f01913f94f 100644 (file)
--- a/vss.c
+++ b/vss.c
@@ -36,7 +36,33 @@ static struct timeval eof_barrier;
 static struct timeval autoplay_barrier;
 
 extern struct misc_meta_data *mmd;
 static struct timeval autoplay_barrier;
 
 extern struct misc_meta_data *mmd;
-extern struct sender senders[];
+
+extern void dccp_send_init(struct sender *);
+extern void http_send_init(struct sender *);
+extern void ortp_send_init(struct sender *);
+
+/** the list of supported senders */
+struct sender senders[] = {
+       {
+               .name = "http",
+               .init = http_send_init,
+       },
+       {
+               .name = "dccp",
+               .init = dccp_send_init,
+       },
+#ifdef HAVE_ORTP
+       {
+               .name = "ortp",
+               .init = ortp_send_init,
+       },
+#endif
+       {
+               .name = NULL,
+       }
+};
+
+
 
 static char *map;
 
 
 static char *map;
 
@@ -138,6 +164,7 @@ void vss_init(void)
        }
        free(hn);
        free(home);
        }
        free(hn);
        free(home);
+       mmd->sender_cmd_data.cmd_num = -1;
        if (conf.autoplay_given) {
                struct timeval now, tmp;
                mmd->vss_status_flags |= VSS_PLAYING;
        if (conf.autoplay_given) {
                struct timeval now, tmp;
                mmd->vss_status_flags |= VSS_PLAYING;
@@ -203,11 +230,13 @@ static void vss_eof(void)
        struct timeval now;
        char *tmp;
 
        struct timeval now;
        char *tmp;
 
+       if (!map)
+               return;
        if (mmd->new_vss_status_flags & VSS_NOMORE)
                mmd->new_vss_status_flags = VSS_NEXT;
        gettimeofday(&now, NULL);
        tv_add(&mmd->afd.afhi.eof_tv, &now, &eof_barrier);
        if (mmd->new_vss_status_flags & VSS_NOMORE)
                mmd->new_vss_status_flags = VSS_NEXT;
        gettimeofday(&now, NULL);
        tv_add(&mmd->afd.afhi.eof_tv, &now, &eof_barrier);
-       munmap(map, mmd->size);
+       para_munmap(map, mmd->size);
        map = NULL;
        mmd->chunks_sent = 0;
        mmd->offset = 0;
        map = NULL;
        mmd->chunks_sent = 0;
        mmd->offset = 0;