]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - dccp_recv.c
task_register() conversion: vss task
[paraslash.git] / dccp_recv.c
index 4cf8f5aedfe31c30f3f1ea890bc9569d816e5d15..1c41fd3c0d0d9d09b745bbd48fdabc181c74fec4 100644 (file)
  * (C) 2005 Ian McDonald <imcdnzl@gmail.com>
  */
 
+#include <netinet/in.h>
+#include <sys/socket.h>
 #include <regex.h>
 #include <sys/types.h>
+#include <arpa/inet.h>
+#include <sys/un.h>
+#include <netdb.h>
 
 #include "para.h"
 #include "error.h"
@@ -53,6 +58,7 @@ static int dccp_recv_open(struct receiver_node *rn)
        }
 
        fd = makesock(IPPROTO_DCCP, 0, conf->host_arg, conf->port_arg, fo);
+       flowopt_cleanup(fo);
        free(ccids);
        if (fd < 0)
                return fd;
@@ -115,9 +121,8 @@ static void *dccp_recv_parse_config(int argc, char **argv)
 
 static void dccp_recv_pre_select(struct sched *s, struct task *t)
 {
-       struct receiver_node *rn = container_of(t, struct receiver_node, task);
+       struct receiver_node *rn = task_context(t);
 
-       t->error = 0;
        if (generic_recv_pre_select(s, t) <= 0)
                return;
        para_fd_set(rn->fd, &s->rfds, &s->max_fileno);
@@ -125,7 +130,7 @@ static void dccp_recv_pre_select(struct sched *s, struct task *t)
 
 static int dccp_recv_post_select(struct sched *s, struct task *t)
 {
-       struct receiver_node *rn = container_of(t, struct receiver_node, task);
+       struct receiver_node *rn = task_context(t);
        struct btr_node *btrn = rn->btrn;
        struct iovec iov[2];
        int ret, iovcnt;