Don't inconditionally remove the SI_FL_ERR code in si_update_both(), which
is called at the end of process_stream(). Doing so was a bug that was there
since the flag was introduced, because we were always setting si->flags to
SI_FL_NONE, however we don't want to lose that one, except if we will retry
connecting, so only remove it in sess_update_st_cer().
This should be backported to 1.9.
si->state = SI_ST_TAR;
si->exp = tick_add(now_ms, MS_TO_TICKS(delay));
}
+ si->flags &= ~SI_FL_ERR;
return 0;
}
return 0;
req->flags &= ~(CF_READ_NULL|CF_READ_PARTIAL|CF_READ_ATTACHED|CF_WRITE_NULL|CF_WRITE_PARTIAL);
res->flags &= ~(CF_READ_NULL|CF_READ_PARTIAL|CF_READ_ATTACHED|CF_WRITE_NULL|CF_WRITE_PARTIAL);
- si_f->flags &= ~(SI_FL_ERR|SI_FL_EXP);
- si_b->flags &= ~(SI_FL_ERR|SI_FL_EXP);
+ si_f->flags &= ~SI_FL_EXP;
+ si_b->flags &= ~SI_FL_EXP;
si_f->prev_state = si_f->state;
si_b->prev_state = si_b->state;