Commit 5c17d4e
h3: C-035: do not refuse a POST body because the ah is already detached
639cf4778 gated DATA on the stream still holding its ah, to stop a DATA
frame arriving after the body completed (stream back in ESTABLISHED, ah
detached) from reaching lws_read_h1()'s header parser with a NULL ah.
But the ah being gone does not mean the body phase is over: the POLLOUT
handler detaches it as soon as lws_http_action() returns, while a POST
stream is still legitimately in LRS_BODY waiting for its body. So every
h3 POST body was refused with "DATA outside body phase", and the
http-client-multi-post-stag / -stag-h1 ctests timed out.
Keep refusing DATA before the header block, and DATA on an ESTABLISHED
stream whose ah is gone (the body-completed case the original fix was
for), but let the body states through: there lws_read_h1() goes straight
to the body path and needs no ah. The ESTABLISHED-with-ah -> LRS_BODY
mirror of h2 is unchanged.
Bisected with http-client-multi-post-stag; all eight http-client-multi-post
ctests pass again with this.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>1 parent 3c6a860 commit 5c17d4e
1 file changed
Lines changed: 36 additions & 16 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1484 | 1484 | | |
1485 | 1485 | | |
1486 | 1486 | | |
1487 | | - | |
1488 | | - | |
1489 | | - | |
1490 | | - | |
1491 | | - | |
1492 | | - | |
1493 | | - | |
1494 | | - | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
| 1494 | + | |
| 1495 | + | |
| 1496 | + | |
| 1497 | + | |
| 1498 | + | |
| 1499 | + | |
| 1500 | + | |
| 1501 | + | |
| 1502 | + | |
| 1503 | + | |
| 1504 | + | |
| 1505 | + | |
| 1506 | + | |
| 1507 | + | |
| 1508 | + | |
| 1509 | + | |
| 1510 | + | |
1495 | 1511 | | |
1496 | 1512 | | |
1497 | 1513 | | |
1498 | | - | |
1499 | | - | |
1500 | | - | |
1501 | | - | |
1502 | | - | |
| 1514 | + | |
| 1515 | + | |
| 1516 | + | |
| 1517 | + | |
| 1518 | + | |
| 1519 | + | |
| 1520 | + | |
| 1521 | + | |
| 1522 | + | |
| 1523 | + | |
| 1524 | + | |
| 1525 | + | |
1503 | 1526 | | |
1504 | | - | |
1505 | | - | |
1506 | | - | |
1507 | 1527 | | |
1508 | 1528 | | |
1509 | 1529 | | |
| |||
0 commit comments