X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=udp_send.c;h=ba7163a8dcdbcffcc9f60772a7d34c5f3c0aec28;hp=4957725d5365b8da71cc2016b95633967000be2c;hb=939ece34a0c1ae2f8c32436d31ed18de6b3c24b5;hpb=0eb1ce203c17c920ea9a0f1565f68db20b3edb1f diff --git a/udp_send.c b/udp_send.c index 4957725d..ba7163a8 100644 --- a/udp_send.c +++ b/udp_send.c @@ -57,7 +57,6 @@ static int sender_status; static void udp_close_target(struct sender_client *sc) { if (sc->cq != NULL) { - del_close_on_fork_list(sc->fd); cq_destroy(sc->cq); sc->cq = NULL; } @@ -70,6 +69,7 @@ static void udp_delete_target(struct sender_client *sc, const char *msg) PARA_NOTICE_LOG("deleting %s (%s) from list\n", sc->name, msg); udp_close_target(sc); close(sc->fd); + del_close_on_fork_list(sc->fd); vss_del_fec_client(ut->fc); list_del(&sc->node); free(sc->name); @@ -160,7 +160,6 @@ static void udp_init_session(struct sender_client *sc) { if (sc->cq == NULL) { sc->cq = cq_new(UDP_CQ_BYTES); - add_close_on_fork_list(sc->fd); PARA_NOTICE_LOG("sending to udp %s\n", sc->name); } } @@ -363,6 +362,7 @@ static int udp_com_add(struct sender_command_data *scd) PARA_INFO_LOG("adding to target list (%s)\n", sc->name); ut->fc = vss_add_fec_client(sc, &ut->fcp); para_list_add(&sc->node, &targets); + add_close_on_fork_list(sc->fd); return 1; err: if (sc->fd >= 0)