File tree 3 files changed +12
-1
lines changed
3 files changed +12
-1
lines changed Original file line number Diff line number Diff line change
1
+ Fixed messages being reported as upgraded without an Upgrade header in Python parser. -- by :user:`Dreamsorcerer`
Original file line number Diff line number Diff line change @@ -510,7 +510,8 @@ def parse_headers(
510
510
close_conn = True
511
511
elif v == "keep-alive" :
512
512
close_conn = False
513
- elif v == "upgrade" :
513
+ # https://www.rfc-editor.org/rfc/rfc9110.html#name-101-switching-protocols
514
+ elif v == "upgrade" and headers .get (hdrs .UPGRADE ):
514
515
upgrade = True
515
516
516
517
# encoding
Original file line number Diff line number Diff line change @@ -474,6 +474,15 @@ def test_conn_upgrade(parser: Any) -> None:
474
474
assert upgrade
475
475
476
476
477
+ def test_bad_upgrade (parser ) -> None :
478
+ """Test not upgraded if missing Upgrade header."""
479
+ text = b"GET /test HTTP/1.1\r \n connection: upgrade\r \n \r \n "
480
+ messages , upgrade , tail = parser .feed_data (text )
481
+ msg = messages [0 ][0 ]
482
+ assert not msg .upgrade
483
+ assert not upgrade
484
+
485
+
477
486
def test_compression_empty (parser ) -> None :
478
487
text = b"GET /test HTTP/1.1\r \n " b"content-encoding: \r \n \r \n "
479
488
messages , upgrade , tail = parser .feed_data (text )
You can’t perform that action at this time.
0 commit comments