}
h1c->flags = (h1c->flags & ~(H1C_F_WAIT_NEXT_REQ|H1C_F_ABRT_PENDING)) | H1C_F_ABRTED;
- h1c->state = H1_CS_CLOSING;
+ h1_close(h1c);
out:
TRACE_LEAVE(H1_EV_H1C_ERR, h1c->conn);
return ret;
int ret = 0;
if (!b_data(&h1c->ibuf) && ((h1c->flags & H1C_F_WAIT_NEXT_REQ) || (sess->fe->options & PR_O_IGNORE_PRB))) {
- h1c->state = H1_CS_CLOSING;
h1c->flags = (h1c->flags & ~H1C_F_WAIT_NEXT_REQ) | H1C_F_ABRTED;
+ h1_close(h1c);
goto end;
}
int ret = 0;
if (!b_data(&h1c->ibuf) && ((h1c->flags & H1C_F_WAIT_NEXT_REQ) || (sess->fe->options & PR_O_IGNORE_PRB))) {
- h1c->state = H1_CS_CLOSING;
h1c->flags = (h1c->flags & ~H1C_F_WAIT_NEXT_REQ) | H1C_F_ABRTED;
+ h1_close(h1c);
goto end;
}
int ret = 0;
if (!b_data(&h1c->ibuf) && ((h1c->flags & H1C_F_WAIT_NEXT_REQ) || (sess->fe->options & PR_O_IGNORE_PRB))) {
- h1c->state = H1_CS_CLOSING;
h1c->flags = (h1c->flags & ~H1C_F_WAIT_NEXT_REQ) | H1C_F_ABRTED;
+ h1_close(h1c);
goto end;
}
*/
if (b_data(&h1c->ibuf)) {
h1_release_buf(h1c, &h1c->ibuf);
- h1c->state = H1_CS_CLOSING;
+ h1_close(h1c);
TRACE_DEVEL("remaining data on detach, kill connection", H1_EV_STRM_END|H1_EV_H1C_END);
goto release;
}
}
do_shutw:
- h1c->state = H1_CS_CLOSING;
+ h1_close(h1c);
if (mode != CO_SHW_NORMAL)
h1c->flags |= H1C_F_SILENT_SHUT;