X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=http_recv.c;h=5aafacb840df1f863536fac1911c8d1caf8eb2b0;hb=HEAD;hp=ac942b4f26e5012b3d92ecf655b6311ad2d9c489;hpb=181beb316afad036ac01a778544c5dec0a8d51c7;p=paraslash.git diff --git a/http_recv.c b/http_recv.c index ac942b4f..8d2add19 100644 --- a/http_recv.c +++ b/http_recv.c @@ -56,17 +56,17 @@ static char *make_request_msg(void) return ret; } -static void http_recv_pre_select(struct sched *s, void *context) +static void http_recv_pre_monitor(struct sched *s, void *context) { struct receiver_node *rn = context; struct private_http_recv_data *phd = rn->private_data; - if (generic_recv_pre_select(s, rn) <= 0) + if (generic_recv_pre_monitor(s, rn) <= 0) return; if (phd->status == HTTP_CONNECTED) - para_fd_set(rn->fd, &s->wfds, &s->max_fileno); + sched_monitor_writefd(rn->fd, s); else - para_fd_set(rn->fd, &s->rfds, &s->max_fileno); + sched_monitor_readfd(rn->fd, s); } /* @@ -74,7 +74,7 @@ static void http_recv_pre_select(struct sched *s, void *context) * area with data read from the socket. In any case, update the state of the * connection if necessary. */ -static int http_recv_post_select(struct sched *s, void *context) +static int http_recv_post_monitor(struct sched *s, void *context) { struct receiver_node *rn = context; struct private_http_recv_data *phd = rn->private_data; @@ -105,7 +105,7 @@ static int http_recv_post_select(struct sched *s, void *context) return 0; } if (phd->status == HTTP_SENT_GET_REQUEST) { - ret = read_pattern(rn->fd, HTTP_OK_MSG, strlen(HTTP_OK_MSG)); + ret = read_and_compare(rn->fd, HTTP_OK_MSG); if (ret < 0) { PARA_ERROR_LOG("did not receive HTTP OK message\n"); goto out; @@ -150,7 +150,7 @@ static int http_recv_open(struct receiver_node *rn) struct lls_parse_result *lpr = rn->lpr; const char *r_i = RECV_CMD_OPT_STRING_VAL(HTTP, HOST, lpr); uint32_t r_p = RECV_CMD_OPT_UINT32_VAL(HTTP, PORT, lpr); - int fd, ret = para_connect_simple(IPPROTO_TCP, r_i, r_p); + int fd, ret = para_connect(IPPROTO_TCP, r_i, r_p); if (ret < 0) return ret; @@ -160,7 +160,7 @@ static int http_recv_open(struct receiver_node *rn) close(fd); return ret; } - rn->private_data = phd = para_calloc(sizeof(struct private_http_recv_data)); + rn->private_data = phd = zalloc(sizeof(struct private_http_recv_data)); rn->fd = fd; phd->status = HTTP_CONNECTED; rn->btrp = btr_pool_new("http_recv", 320 * 1024); @@ -170,6 +170,6 @@ static int http_recv_open(struct receiver_node *rn) const struct receiver lsg_recv_cmd_com_http_user_data = { .open = http_recv_open, .close = http_recv_close, - .pre_select = http_recv_pre_select, - .post_select = http_recv_post_select, + .pre_monitor = http_recv_pre_monitor, + .post_monitor = http_recv_post_monitor, };