free(pcd);
}
+/* connect to para_server and register the client task */
static int client_connect(struct private_client_data *pcd)
{
int ret;
para_fd_set(pcd->fd, &s->wfds, &s->max_fileno);
pcd->check_w = 1;
} else {
- if (*pcd->in_eof) {
- t->ret = -E_INPUT_EOF;
+ if (*pcd->in_error) {
+ t->ret = *pcd->in_error;
s->timeout.tv_sec = 0;
s->timeout.tv_usec = 1;
}
t->ret = send_bin_buffer(pcd->fd, pcd->inbuf, *pcd->in_loaded);
if (t->ret < 0)
return;
- *pcd->in_loaded = 0; /* FIXME: short writes */
+ *pcd->in_loaded = 0;
return;
case CL_RECEIVING:
t->ret = client_recv_buffer(pcd);