Hello Peter,

On Wed, Jan 3, 2018 at 2:59 PM, Lukas Tribus <lu...@ltri.eu> wrote:
> I will come back later and take a deeper look at both strace and the capture.

So, this is broken since c4134ba8b0 ("BUG/MEDIUM: h2: don't switch the
state to HREM before end of DATA frame").
And indeed Edge sets the ES bit in the last DATA frame of the POST issue.

When moving the affected HREM code above the "return 0" branch, Edge
works fine again.


The attached patch fixes the issue for me, please give it a try.


cheers,
lukas
diff --git a/src/mux_h2.c b/src/mux_h2.c
index c6e15ec..c3fc64e 100644
--- a/src/mux_h2.c
+++ b/src/mux_h2.c
@@ -1693,19 +1693,18 @@ static int h2c_frt_handle_data(struct h2c *h2c, struct 
h2s *h2s)
                h2c->st0 = H2_CS_FRAME_E;
        }
 
-       /* check for completion : the callee will change this to FRAME_A or
-        * FRAME_H once done.
-        */
-       if (h2c->st0 == H2_CS_FRAME_P)
-               return 0;
-
-
        /* last frame */
        if (h2c->dff & H2_F_DATA_END_STREAM) {
                h2s->st = H2_SS_HREM;
                h2s->flags |= H2_SF_ES_RCVD;
        }
 
+       /* check for completion : the callee will change this to FRAME_A or
+        * FRAME_H once done.
+        */
+       if (h2c->st0 == H2_CS_FRAME_P)
+               return 0;
+
        return 1;
 
  conn_err:

Reply via email to