• Show log

    Commit

  • Hash : 75b20458
    Author : Edward Thomson
    Date : 2019-03-07T16:34:55

    http: always consume body on auth failure
    
    When we get an authentication failure, we must consume the entire body
    of the response.  If we only read half of the body (on the assumption
    that we can ignore the rest) then we will never complete the parsing of
    the message.  This means that we will never set the complete flag, and
    our replay must actually tear down the connection and try again.
    
    This is particularly problematic for stateful authentication mechanisms
    (SPNEGO, NTLM) that require that we keep the connection alive.
    
    Note that the prior code is only a problem when the 401 that we are
    parsing is too large to be read in a single chunked read from the http
    parser.
    
    But now we will continue to invoke the http parser until we've got a
    complete message in the authentication failed scenario.  Note that we
    need not do anything with the message, so when we get an authentication
    failed, we'll stop adding data to our buffer, we'll simply loop in the
    parser and let it advance its internal state.