Hi Bert,

Am 20.11.2017 um 13:23 schrieb Bert Huijben:


-----Original Message-----
From: Stefan Eissing [mailto:stefan.eiss...@greenbytes.de]
Sent: maandag 20 november 2017 11:40
To: d...@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.j...@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

Reply via email to