You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.2 KiB

  1. commit 21a796cb83c29ee276feb04649a1b18214bbdee0
  2. Author: Olivier Houchard <ohouchard@haproxy.com>
  3. Date: Fri Jul 26 14:54:34 2019 +0200
  4. BUG/MEDIUM: streams: Don't switch the SI to SI_ST_DIS if we have data to send.
  5. In sess_established(), don't immediately switch the backend stream_interface
  6. to SI_ST_DIS if we only got a SHUTR. We may still have something to send,
  7. ie if the request is a POST, and we should be switched to SI_ST8DIS later
  8. when the shutw will happen.
  9. This should be backported to 2.0 and 1.9.
  10. (cherry picked from commit 7859526fd6ce7ea33e20b7e532b21aa2465cb11d)
  11. Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
  12. diff --git a/src/stream.c b/src/stream.c
  13. index a5c5f45c..64875c80 100644
  14. --- a/src/stream.c
  15. +++ b/src/stream.c
  16. @@ -954,8 +954,9 @@ static void sess_establish(struct stream *s)
  17. si_chk_rcv(si);
  18. }
  19. req->wex = TICK_ETERNITY;
  20. - /* If we managed to get the whole response, switch to SI_ST_DIS now. */
  21. - if (rep->flags & CF_SHUTR)
  22. + /* If we managed to get the whole response, and we don't have anything
  23. + * left to send, or can't, switch to SI_ST_DIS now. */
  24. + if (rep->flags & (CF_SHUTR | CF_SHUTW))
  25. si->state = SI_ST_DIS;
  26. }