Hello Augustin,
I've spent some time investigating the problem and I can tell
you what I've discovered so far.
starting from release 2.13.0 the public API of the nanohttp
module has been deprecated.
note: this does not mean at all that nanohttp is no longer
supported internally, it literally means that the <nanohttp.h>
header is no longer supported.
in practice, when you call the xmlReadFile() API it continues
to accept either a pathname or a URL, and in this case it
continues to use nanohttp internally without raising the
slightest exception.
the only thing that is no longer possible to do is call
the xmlNanoHTTPCleanup() API which is no longer supported;
with the unpleasant consequence that memory leaks are thus
created.
-----------------------------------
Searching the web I was unable to find any more detailed
reference, the only information provided is that meager
note in the release notes of 2.13.0 which announces the
deprecation of the public API of nanohttp.
It is not at all clear to me whether in the future they
intend to radically remove all http support or not.
Practical consequences for SpatiaLite:
1. for now just eliminate the single call to
xmlNanoHTTPD Cleanup(), possibly using conditional
macros like in your patch.
there will definitely be memory leaks but it has
become impossible to avoid them.
2. if instead http support were to be radically
removed sooner or later the consequences would
be decidedly worse.
SpatiaLite uses libxml2 essentially for only
two purposes where the simplest expat support
is not sufficient:
1 - to download and parse the WFS datasets
2 - to carry out the formal validation of
XML documents against their declared
XSD schemata
if libxml2 were to stop supporting http, the
possibility of continuing to support both
would disappear.
but consequently there would also be no reason
to continue using libxml2 because from our point
of view it would no longer have anything useful
to offer us.
bye Sandro