transformation error for directory index

Elmar Klausmeier
3 September 2018, 12:30
I get below kind of errors (URL is not important) when working within company firewall/proxy setting:|Mon 03 Sep 2018 10:56:50 +0200|/srv/http/D/|transformation error|Mon 03 Sep 2018 11:41:25 +0200|/srv/http/D/|transformation error

Corresponding access.log for 1st record from above:|Mon 03 Sep 2018 10:56:50 +0200|200|129|GET /D/ HTTP/1.1||Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko|Host:|Accept: text/html, application/xhtml+xml, */*|Accept-Language: de-DE|UA-CPU: AMD64|Accept-Encoding: gzip, deflate|DNT: 1|Cache-Control: max-stale=0|X-BlueCoat-Via: 709eb18486c6a6ed|Connection: keep-alive|X-BlueCoat-Via: a1a22f938a801f59

It is working fine outside of company proxy/firewall with Chromium.

Elmar Klausmeier
3 September 2018, 12:32
Same error with Hiawatha 10.8.2 and 10.8.1 on Arch Linux.
Hugo Leisink
6 September 2018, 15:39
Looks like there is an XML error in the index.xslt or error.xslt file. By default, those files are in /etc/hiawatha (or wherever your Hiawatha config is located). It's also possible that some site uses a specific file set via ShowIndex or ErrorXSLTfile.
Elmar Klausmeier
8 September 2018, 20:22
I haven't changed those *.xlst files under /etc/hiawatha in any way. Here are the checksums:
$ /etc/hiawatha: md5sum *.xsl*
ca83c61dad19456743bf9d20afdd9b91 error.xslt
9686c05533bc73417f6122edf2933b2b index.xslt

What is puzzling is that it works with curl, Chromium, etc. outside of company settings.
Hugo Leisink
10 September 2018, 08:55
What is shown if you used 'ShowIndex = xml'? It will show the XML that is used with the stylesheet.
Elmar Klausmeier
12 September 2018, 09:12
In that case it will show the XML including all the files which are present in that directory.
Hugo Leisink
16 September 2018, 10:30
Could it be that it XML contains any special character that might corrupt the XSLT process?
Elmar Klausmeier
23 September 2018, 15:35
No, all characters returned are either isprint() or isspace().

I downloaded the output with curl, and checked with
while ((c = getchar()) != EOF)
if (!isspace(c) && !isprint(c)) printf("%02x",c);

As mentioned, problem occurs in company/firewall context in a reproducible way.
This topic has been closed.