X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=http_recv.c;h=096541679ea5ae30116f478436c2303c1aabf567;hp=d2b34c4ba71befb9318d49f20aab662e6ab05703;hb=27638103f249ffbe9768603b9baff199950fd9f6;hpb=c04ac3f234670c8ba990c15605e1f3f6f2bf4780 diff --git a/http_recv.c b/http_recv.c index d2b34c4b..09654167 100644 --- a/http_recv.c +++ b/http_recv.c @@ -185,13 +185,14 @@ static int http_recv_open(struct receiver_node *rn) rn->private_data = para_calloc(sizeof(struct private_http_recv_data)); phd = rn->private_data; PARA_NOTICE_LOG("phd = %p, rn = %p\n", phd, rn); - ret = -E_HOST_INFO; - if (!(he = get_host_info(conf->host_arg))) + ret = get_host_info(conf->host_arg, &he); + if (!ret < 0) goto err_out; /* get new socket */ - ret = -E_SOCKET; - if ((phd->fd = get_socket()) < 0) + ret = get_socket(); + if (ret < 0) goto err_out; + phd->fd = ret; /* init their_addr */ init_sockaddr(&their_addr, conf->port_arg, he); /* connect */ @@ -200,6 +201,7 @@ static int http_recv_open(struct receiver_node *rn) ret = para_connect(phd->fd, &their_addr); if (ret < 0) goto err_out; + mark_fd_nonblock(phd->fd); phd->status = HTTP_CONNECTED; return 1; err_out: