s->req->rto = s->fe->timeout.client;
s->req->wto = s->be->timeout.server;
- if (unlikely(b_alloc(&s->req->buf) == NULL))
- goto out_fail_req_buf; /* no memory */
-
if ((s->rep = pool_alloc2(pool2_channel)) == NULL)
goto out_fail_rep; /* no memory */
s->rep->flags |= CF_READ_DONTWAIT;
+ if (unlikely(b_alloc(&s->req->buf) == NULL))
+ goto out_fail_req_buf; /* no memory */
+
if (unlikely(b_alloc(&s->rep->buf) == NULL))
goto out_fail_rep_buf; /* no memory */
/* Error unrolling */
out_fail_rep_buf:
- pool_free2(pool2_channel, s->rep);
- out_fail_rep:
b_free(&s->req->buf);
out_fail_req_buf:
+ pool_free2(pool2_channel, s->rep);
+ out_fail_rep:
pool_free2(pool2_channel, s->req);
out_fail_req:
conn_free(conn);
s->req->wex = TICK_ETERNITY;
s->req->analyse_exp = TICK_ETERNITY;
- if (unlikely(b_alloc(&s->req->buf) == NULL))
- goto out_free_req; /* no memory */
-
if (unlikely((s->rep = pool_alloc2(pool2_channel)) == NULL))
- goto out_free_req_buf; /* no memory */
+ goto out_free_req; /* no memory */
channel_init(s->rep);
s->rep->prod = &s->si[1];
s->rep->wex = TICK_ETERNITY;
s->rep->analyse_exp = TICK_ETERNITY;
- if (unlikely(b_alloc(&s->rep->buf) == NULL))
+ if (unlikely(b_alloc(&s->req->buf) == NULL))
goto out_free_rep; /* no memory */
+ if (unlikely(b_alloc(&s->rep->buf) == NULL))
+ goto out_free_req_buf; /* no memory */
+
txn = &s->txn;
/* Those variables will be checked and freed if non-NULL in
* session.c:session_free(). It is important that they are
/* Error unrolling */
out_free_rep_buf:
b_free(&s->rep->buf);
- out_free_rep:
- pool_free2(pool2_channel, s->rep);
out_free_req_buf:
b_free(&s->req->buf);
+ out_free_rep:
+ pool_free2(pool2_channel, s->rep);
out_free_req:
pool_free2(pool2_channel, s->req);
out_free_task: