struct receiver_node *rn = t->private_data;
struct private_dccp_recv_data *pdd = rn->private_data;
- t->ret = -E_DCCP_RECV_EOF;
- if (rn->output_eof && *rn->output_eof)
+ if (rn->output_error && *rn->output_error) {
+ t->ret = *rn->output_error;
goto out;
+ }
t->ret = 1;
if (!s->select_ret || !FD_ISSET(pdd->fd, &s->rfds))
goto out; /* nothing to do */
DCCP_BUFSIZE - rn->loaded);
if (t->ret <= 0) {
if (!t->ret)
- t->ret = -E_DCCP_RECV_EOF;
+ t->ret = -E_RECV_EOF;
goto out;
}
rn->loaded += t->ret;
return;
out:
if (t->ret < 0)
- rn->eof = 1;
+ rn->error = t->ret;
}
/**