On 07/20/2018 02:49 PM, Yann Ylavic wrote:
> Ping, any objection if I commit this and add it to the backport proposal?

Hmm. Looks like MODSSL_ERROR_BAD_GATEWAY is only used when the proxy connects 
to the backend.
So the patch should be fine.

Regards

Rüdiger

> 
> On Tue, Jul 3, 2018 at 10:36 AM, Yann Ylavic <ylavic....@gmail.com> wrote:
>> On Tue, Jul 3, 2018 at 8:58 AM,  <rpl...@apache.org> wrote:
>>>
>>> +++ httpd/httpd/branches/2.4.x/STATUS Tue Jul  3 06:58:55 2018
>>> @@ -179,7 +179,11 @@ PATCHES PROPOSED TO BACKPORT FROM TRUNK:
>>>       2.4.x patch: svn merge -c 1645529 ^/httpd/httpd/trunk .
>>>       +1: ylavic, druggeri
>>>       druggeri: Why no +1, jallietc36?
>>> -
>>> +     rpluem: I think the patch is wrong here and in trunk. This causes
>>> +     ap_pass_brigade to return APR_SUCCESS in ap_proxy_pass_brigade. The 
>>> error
>>> +     bucket inserted by ssl_io_filter_error IMHO makes no sense because it
>>> +     would be sent to the origin server (the proxy backend) and not to our
>>> +     client. Further discussion should possibly happen on dev@.
>>
>> Agreed, but r1645529 looks right to me, I'd rather fix
>> ssl_io_filter_error() to return EGENERAL (and no error brigade) in
>> this case.
>>
>> Something like this:
>> Index: modules/ssl/ssl_engine_io.c
>> ===================================================================
>> --- modules/ssl/ssl_engine_io.c    (revision 1834106)
>> +++ modules/ssl/ssl_engine_io.c    (working copy)
>> @@ -1008,14 +1008,10 @@ static apr_status_t ssl_io_filter_error(bio_filter
>>              break;
>>
>>      case MODSSL_ERROR_BAD_GATEWAY:
>> -        /* Send an error bucket, though the proxy currently has no
>> -         * special handling for error buckets and ignores this. */
>> -        bucket = ap_bucket_error_create(HTTP_BAD_GATEWAY, NULL,
>> -                                        f->c->pool,
>> -                                        f->c->bucket_alloc);
>>          ap_log_cerror(APLOG_MARK, APLOG_INFO, 0, f->c, APLOGNO(01997)
>>                        "SSL handshake failed: sending 502");
>> -        break;
>> +        f->c->aborted = 1;
>> +        return APR_EGENERAL;
>>
>>      default:
>>          return status;
>> ?
> 

Reply via email to