X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=dccp_recv.c;h=943b8283e6a0f135c3b0edbc3cd5de44e250cedb;hp=49024bb07c8addf1bd0297012df889b52b5fb25f;hb=6e1de6469d0595740fd8350f435b0562d23d87fa;hpb=c04ac3f234670c8ba990c15605e1f3f6f2bf4780 diff --git a/dccp_recv.c b/dccp_recv.c index 49024bb0..943b8283 100644 --- a/dccp_recv.c +++ b/dccp_recv.c @@ -98,6 +98,7 @@ static int dccp_recv_open(struct receiver_node *rn) ret = -E_DCCP_CONNECT; if (connect(pdd->fd, ai->ai_addr, ai->ai_addrlen) < 0) goto err_out; + mark_fd_nonblock(pdd->fd); return 1; err_out: dccp_recv_close(rn); @@ -125,8 +126,6 @@ static void dccp_recv_pre_select(struct sched *s, struct task *t) struct private_dccp_recv_data *pdd = rn->private_data; t->ret = 1; - if (!pdd) - return; para_fd_set(pdd->fd, &s->rfds, &s->max_fileno); } @@ -139,7 +138,7 @@ static void dccp_recv_post_select(struct sched *s, struct task *t) if (rn->output_eof && *rn->output_eof) goto out; t->ret = 1; - if (!s->select_ret || !pdd || !FD_ISSET(pdd->fd, &s->rfds)) + if (!s->select_ret || !FD_ISSET(pdd->fd, &s->rfds)) goto out; /* nothing to do */ t->ret = -E_DCCP_OVERRUN; if (rn->loaded >= DCCP_BUFSIZE)