Remove ->shutdown of struct receiver.
[paraslash.git] / dccp_recv.c
index 4d4ac86db31cb28f1d2d1d9f081f13dc8a139dcc..a5a648b98831a435b60745679892430d6269e383 100644 (file)
@@ -87,11 +87,6 @@ err:
        return ret;
 }
 
-static void dccp_shutdown(void)
-{
-       ; /* nothing to do */
-}
-
 static void *dccp_recv_parse_config(int argc, char **argv)
 {
        struct dccp_recv_args_info *tmp = para_calloc(sizeof(struct dccp_recv_args_info));
@@ -136,6 +131,11 @@ static void dccp_recv_post_select(struct sched *s, struct task *t)
                t->error = -E_RECV_EOF;
 }
 
+static void dccp_recv_free_config(void *conf)
+{
+       dccp_recv_cmdline_parser_free(conf);
+}
+
 /**
  * The init function of the dccp receiver.
  *
@@ -148,14 +148,15 @@ void dccp_recv_init(struct receiver *r)
        struct dccp_recv_args_info dummy;
 
        dccp_recv_cmdline_parser_init(&dummy);
-       r->shutdown = dccp_shutdown;
        r->open = dccp_recv_open;
        r->close = dccp_recv_close;
        r->pre_select = dccp_recv_pre_select;
        r->post_select = dccp_recv_post_select;
        r->parse_config = dccp_recv_parse_config;
+       r->free_config = dccp_recv_free_config;
        r->help = (struct ggo_help) {
                .short_help = dccp_recv_args_info_help,
                .detailed_help = dccp_recv_args_info_detailed_help
        };
+       dccp_recv_cmdline_parser_free(&dummy);
 }