• 
      

    Fix duplicate headers when dispatching WebHooks.

    Review Request #11613 — Created May 24, 2021 and submitted

    Information

    Review Board
    release-4.0.x

    Reviewers

    When building a request during WebHook dispatch, we were using legacy
    byte strings for headers. This almost sort of worked on Python 3, except
    that duplicate Content-Type and Content-Length headers would appear,
    and this would generally break request handling on the target server.

    We needed to use native strings instead, to get the right behavior on
    Python 2 and 3. This change updates request building to do this
    correctly, and to updates tests to properly check the headers against
    the right types.

    Unit tests pass on Python 2.7 and 3.x.

    Confirmed the bug against a WebHook endpoint on requestbin.net, and
    confirmed the fix worked against the same endpoint, without any
    duplicate headers.

    Summary ID
    Fix duplicate headers when dispatching WebHooks.
    When building a request during WebHook dispatch, we were using legacy byte strings for headers. This almost sort of worked on Python 3, except that duplicate `Content-Type` and `Content-Length` headers would appear, and this would generally break request handling on the target server. We needed to use native strings instead, to get the right behavior on Python 2 and 3. This change updates request building to do this correctly, and to updates tests to properly check the headers against the right types. Fixes bug #4923.
    04e0cec766df623f52326c20d5a69d2512fc80c2
    david
    1. Ship It!
    2. 
        
    chipx86
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:
    Pushed to release-4.0.x (66edba4)