On 8/20/2012 3:36 PM, Gregg Smith wrote:
> Hi Joe,
>
> There seems to be a problem with this commit.
> mod_ssl.c
> .\mod_ssl.c(288) : error C2491: 'modssl_run_npn_advertise_protos_hook' :
> definition of
> dllimport function not allowed
> .\mod_ssl.c(294) : error C2491: 'modssl_run_npn_proto_negotiated_hook' :
> definition of
> dllimport function not allowed
That's because the API design is invalid. As I noted in the 2.2 backport
status file;
* mod_ssl: Add support for Next Protocol Negotiation.
Trunk patch:
http://svn.apache.org/viewvc?view=revision&revision=1332643
2.2.x patch:
http://www.links.org/files/npn-patch-2.2.patch
+1: benl
sf notes: needs the buffer overflow fix from r1345599, too
wrowe notes: also needs correction to
ssl_engine_kernel.c: In function 'ssl_callback_AdvertiseNextProtos':
ssl_engine_kernel.c:2140:5: warning: implicit declaration of function
'modssl_run_npn_advertise_protos_hook'
Including mod_ssl.h after ssl_private.h seems to suffice.
The change introduces hard linkages from modules into
mod_ssl.so (distinct from httpd), AP is the incorrect
namespace, see mod_dav main hooks as an example.
Prior to this patch all calls to mod_ssl were by way of
registered functions through apr bindings. Seems there
aught to be a way to add an npn cooperating module when
mod_ssl is not loaded, but right now it would fail.
An mmn minor bump would also be required for API addition.