mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-20 12:46:56 +00:00
MINOR: stconn: Set half-close timeout using proxy settings
We now directly use the proxy settings to set the half-close timeout of a stream-connector. The function sc_set_hcto() must be used to do so. This timeout is only set when a shutw is performed. So it is not really a big deal to use a dedicated function to do so.
This commit is contained in:
parent
15315d6c0a
commit
bcdcfad3ff
@ -401,4 +401,19 @@ static inline void sc_check_timeouts(const struct stconn *sc)
|
||||
sc_oc(sc)->flags |= CF_WRITE_TIMEOUT;
|
||||
}
|
||||
|
||||
static inline void sc_set_hcto(struct stconn *sc)
|
||||
{
|
||||
struct stream *strm = __sc_strm(sc);
|
||||
|
||||
if (sc->flags & SC_FL_ISBACK) {
|
||||
if ((strm->flags & SF_BE_ASSIGNED) && tick_isset(strm->be->timeout.serverfin))
|
||||
sc->ioto = strm->be->timeout.serverfin;
|
||||
}
|
||||
else {
|
||||
if (tick_isset(strm_fe(strm)->timeout.clientfin))
|
||||
sc->ioto = strm_fe(strm)->timeout.clientfin;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
#endif /* _HAPROXY_SC_STRM_H */
|
||||
|
12
src/stconn.c
12
src/stconn.c
@ -568,9 +568,7 @@ static void sc_app_shutw(struct stconn *sc)
|
||||
if (oc->flags & CF_SHUTW)
|
||||
return;
|
||||
oc->flags |= CF_SHUTW|CF_WRITE_EVENT;
|
||||
|
||||
if (tick_isset(sc->hcto))
|
||||
sc->ioto = sc->hcto;
|
||||
sc_set_hcto(sc);
|
||||
|
||||
switch (sc->state) {
|
||||
case SC_ST_RDY:
|
||||
@ -701,9 +699,7 @@ static void sc_app_shutw_conn(struct stconn *sc)
|
||||
if (oc->flags & CF_SHUTW)
|
||||
return;
|
||||
oc->flags |= CF_SHUTW|CF_WRITE_EVENT;
|
||||
|
||||
if (tick_isset(sc->hcto))
|
||||
sc->ioto = sc->hcto;
|
||||
sc_set_hcto(sc);
|
||||
|
||||
switch (sc->state) {
|
||||
case SC_ST_RDY:
|
||||
@ -898,9 +894,7 @@ static void sc_app_shutw_applet(struct stconn *sc)
|
||||
if (oc->flags & CF_SHUTW)
|
||||
return;
|
||||
oc->flags |= CF_SHUTW|CF_WRITE_EVENT;
|
||||
|
||||
if (tick_isset(sc->hcto))
|
||||
sc->ioto = sc->hcto;
|
||||
sc_set_hcto(sc);
|
||||
|
||||
/* on shutw we always wake the applet up */
|
||||
appctx_wakeup(__sc_appctx(sc));
|
||||
|
Loading…
Reference in New Issue
Block a user