enum obj_type obj_type; /* differentiates connection from applet context */
/* 3 bytes hole here */
unsigned int flags; /* CS_FL_* */
+ unsigned int hcto; /* half-closed timeout (0 = unset) */
struct cs_endpoint *endp; /* points to the end point (MUX stream or appctx) */
enum obj_type *app; /* points to the applicative point (stream or check) */
struct stream_interface *si;
/* struct members below are the "remote" part, as seen from the buffer side */
unsigned int err_type; /* first error detected, one of SI_ET_* */
- unsigned int hcto; /* half-closed timeout (0 = unset) */
struct wait_event wait_event; /* We're in a wait list */
};
s->res.rex = TICK_ETERNITY;
s->res.wex = TICK_ETERNITY;
s->res.analyse_exp = TICK_ETERNITY;
- cs_si(s->csb)->hcto = TICK_ETERNITY;
+ s->csb->hcto = TICK_ETERNITY;
/* we're removing the analysers, we MUST re-enable events detection.
* We don't enable close on the response channel since it's either
cs->obj_type = OBJ_TYPE_CS;
cs->flags = CS_FL_NONE;
+ cs->hcto = TICK_ETERNITY;
cs->app = NULL;
cs->si = NULL;
cs->data_cb = NULL;
cs_si(s->csb)->flags |= SI_FL_INDEP_STR;
if (tick_isset(be->timeout.serverfin))
- cs_si(s->csb)->hcto = be->timeout.serverfin;
+ s->csb->hcto = be->timeout.serverfin;
/* We want to enable the backend-specific analysers except those which
* were already run as part of the frontend/listener. Note that it would
goto out_fail_alloc_csb;
si_set_state(cs_si(s->csf), SI_ST_EST);
- cs_si(s->csf)->hcto = sess->fe->timeout.clientfin;
+ s->csf->hcto = sess->fe->timeout.clientfin;
if (likely(sess->fe->options2 & PR_O2_INDEPSTR))
cs_si(s->csf)->flags |= SI_FL_INDEP_STR;
cs_si(s->csb)->flags = SI_FL_ISBACK;
- cs_si(s->csb)->hcto = TICK_ETERNITY;
+ s->csb->hcto = TICK_ETERNITY;
if (likely(sess->fe->options2 & PR_O2_INDEPSTR))
cs_si(s->csb)->flags |= SI_FL_INDEP_STR;
oc->wex = TICK_ETERNITY;
si_done_get(si);
- if (tick_isset(si->hcto)) {
- ic->rto = si->hcto;
+ if (tick_isset(si->cs->hcto)) {
+ ic->rto = si->cs->hcto;
ic->rex = tick_add(now_ms, ic->rto);
}
oc->wex = TICK_ETERNITY;
si_done_get(si);
- if (tick_isset(si->hcto)) {
- ic->rto = si->hcto;
+ if (tick_isset(si->cs->hcto)) {
+ ic->rto = si->cs->hcto;
ic->rex = tick_add(now_ms, ic->rto);
}
oc->wex = TICK_ETERNITY;
si_done_get(si);
- if (tick_isset(si->hcto)) {
- ic->rto = si->hcto;
+ if (tick_isset(si->cs->hcto)) {
+ ic->rto = si->cs->hcto;
ic->rex = tick_add(now_ms, ic->rto);
}