if (conf->buffer_tree_given) {
char *buf;
+ if (btr_no_children(rn->btrn)) {
+ t->error = -E_HTTP_RECV_NO_CHILD;
+ goto err;
+ }
if (btr_bytes_pending(rn->btrn) > HTTP_RECV_MAX_PENDING) {
t->error = -E_HTTP_RECV_OVERRUN;
goto err;
return;
err:
if (conf->buffer_tree_given) {
- btr_del_node(rn->btrn);
+ btr_remove_node(rn->btrn);
rn->btrn = NULL;
}
}
static void http_recv_close(struct receiver_node *rn)
{
struct private_http_recv_data *phd = rn->private_data;
- struct http_recv_args_info *conf = rn->conf;
- if (conf->buffer_tree_given)
- btr_del_node(rn->btrn);
close(phd->fd);
free(rn->buf);
free(rn->private_data);
phd->fd = fd;
phd->status = HTTP_CONNECTED;
if (conf->buffer_tree_given)
- rn->btrn = btr_new_node("receiver", NULL);
+ rn->btrn = btr_new_node("receiver", NULL, NULL, NULL);
return 1;
}