serf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Jung <rainer.j...@kippdata.de>
Subject Re: Serf support in trunk
Date Mon, 20 Nov 2017 13:32:36 GMT
Hi Bert,

Am 20.11.2017 um 13:23 schrieb Bert Huijben:
> 
> 
>> -----Original Message-----
>> From: Stefan Eissing [mailto:stefan.eissing@greenbytes.de]
>> Sent: maandag 20 november 2017 11:40
>> To: dev@httpd.apache.org
>> Subject: Re: Serf support in trunk
>>
>> +1 for pulling it unless someone steps forward.
>>
>>> Am 19.11.2017 um 12:49 schrieb Rainer Jung <rainer.jung@kippdata.de>:
>>>
>>> While testing the 2.5.0 alpha candidate I noticed, that our optional use
> of
>> serf in mod_proxy and mpm_event is pretty outdated (so unmaintained):
>>>
>>> - the serf API we use was only present in serf until version 0.3.1
> (February
>> 2010)
> 
> What serf api are we talking about?
> 
> There shouldn't have been any changes to the public api withing 1.3.x... but
> then around 1.3.0 the project wasn't an ASF project yet.

Not 1.3 but 0.3 to 0.4 (yes, very old times), We are at 0.3 compat, not 
at 0.4 and not even at 1.0.

The change was:

0.3.1:

typedef serf_bucket_t * (*serf_connection_setup_t)(apr_socket_t *skt,
                                                    void *setup_baton,
                                                    apr_pool_t *pool);


0.4.0:

typedef apr_status_t (*serf_connection_setup_t)(apr_socket_t *skt,
                                               serf_bucket_t **read_bkt,
                                               serf_bucket_t **write_bkt,
                                               void *setup_baton,
                                               apr_pool_t *pool);

 From the Changelog (not sure it is that change):

Serf 0.4.0 [2010-05-13, r1353]
...
   Improvements and fixes to SSL support, including connection setup changes
...

Our breaking httpd file is modules/proxy/mod_serf.c:

... This uses the old style arguments ...
static serf_bucket_t* conn_setup(apr_socket_t *sock,
                                  void *setup_baton,
                                  apr_pool_t *pool)
... and is included here as a callback for a serf call ...
     conn = serf_connection_create(serfme, address,
                                   conn_setup, baton,
                                   closed_connection, baton,
                                   pool);
...

>>> - in May 2010 it was changed inside serf and httpd does not support this
>> newer API
>>>
>>> - serf currently is now at version 1.3.9 (August 2016) providing stable
> APIs.
>> There is still some basic maintenance activity in the serf project, for
> instance
>> for supporting newer scons build tool versions or support for OpenSSL
> 1.1.0.
>>>
>>> I do not actually know what the serf support adds to httpd, it seems
>> mostly some "SerfCluster" feature for mod_proxy. There's no docs and some
>> comments in the code indicate the impl is not complete. SVN logs point to
>> the same direction.
> 
> I have no idea why some things were duplicated for different http engines...
> As httpd user I don't see why I want to use different configurations for
> different engines, except for one knob that chooses the engine.
> 
> Mod_pagespeed (another serf consumer) is also trying to become an ASF
> project... Not sure if there would be any interest in that project.

I don't know whether mod_pagespeed also uses an outdated serf.

Regards,

Rainer

Mime
View raw message