summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Mitchell <jack.mitchell@dbbroadcast.co.uk>2012-12-04 12:12:51 +0000
committerEric BĂ©nard <eric@eukrea.com>2013-02-01 09:57:29 +0100
commit12609b18ad51f2e0068b8a22ff804a7ae00e581e (patch)
tree2c902f39926c84d6588b80ec031998675dc60808
parentc5f4259852b0e90906b9b661af50a2212fcee9f1 (diff)
downloadmeta-openembedded-12609b18ad51f2e0068b8a22ff804a7ae00e581e.tar.gz
hiawatha: add new patch to fix xslt implementation
Signed-off-by: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk>
-rw-r--r--meta-webserver/recipes-httpd/hiawatha/files/xslt-fix.patch71
-rw-r--r--meta-webserver/recipes-httpd/hiawatha/hiawatha_8.6.bb5
2 files changed, 74 insertions, 2 deletions
diff --git a/meta-webserver/recipes-httpd/hiawatha/files/xslt-fix.patch b/meta-webserver/recipes-httpd/hiawatha/files/xslt-fix.patch
new file mode 100644
index 000000000..41bf4cc1d
--- /dev/null
+++ b/meta-webserver/recipes-httpd/hiawatha/files/xslt-fix.patch
@@ -0,0 +1,71 @@
1Upstream Status: Backport
2Signed-off-by: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk>
3---
4 src/xslt.c | 19 +++++++------------
5 1 file changed, 7 insertions(+), 12 deletions(-)
6
7diff --git a/src/xslt.c b/src/xslt.c
8index 9d8d31a..58ca52d 100644
9--- a/src/xslt.c
10+++ b/src/xslt.c
11@@ -23,6 +23,7 @@
12 #include <libxslt/transform.h>
13 #include <libxslt/xsltutils.h>
14 #include "libstr.h"
15+#include "liblist.h"
16 #include "send.h"
17 #include "log.h"
18 #ifdef ENABLE_TOMAHAWK
19@@ -343,10 +344,10 @@ bool can_transform_with_xslt(t_session *session) {
20 static int apply_xslt_sheet(t_session *session, xmlDocPtr data_xml) {
21 xmlDocPtr style_xml, result_xml;
22 xsltStylesheetPtr xslt;
23- xmlOutputBufferPtr output;
24+ xmlChar *raw_xml;
25 char value[VALUE_SIZE + 1];
26 const char **params;
27- int result = 200;
28+ int result = 200, raw_size;
29
30 /* Read XML data
31 */
32@@ -396,14 +397,8 @@ static int apply_xslt_sheet(t_session *session, xmlDocPtr data_xml) {
33 xsltFreeStylesheet(xslt);
34 return 500;
35 }
36- if ((output = xmlAllocOutputBuffer(NULL)) == NULL) {
37- xmlFreeDoc(result_xml);
38- xsltFreeStylesheet(xslt);
39- return 500;
40- }
41- if (xsltSaveResultTo(output, result_xml, xslt) == -1) {
42+ if (xsltSaveResultToString(&raw_xml, &raw_size, result_xml, xslt) == -1) {
43 log_file_error(session, session->file_on_disk, "transformation error");
44- xmlOutputBufferClose(output);
45 xmlFreeDoc(result_xml);
46 xsltFreeStylesheet(xslt);
47 return 500;
48@@ -414,17 +409,17 @@ static int apply_xslt_sheet(t_session *session, xmlDocPtr data_xml) {
49 value[VALUE_SIZE] = '\0';
50 if (send_buffer(session, hs_conlen, 16) == -1) {
51 result = -1;
52- } else if (snprintf(value, VALUE_SIZE, "%d\r\n\r\n", output->buffer->use) == -1) {
53+ } else if (snprintf(value, VALUE_SIZE, "%d\r\n\r\n", raw_size) == -1) {
54 result = -1;
55 } else if (send_buffer(session, value, strlen(value)) == -1) {
56 result = -1;
57- } else if (send_buffer(session, (char*)output->buffer->content, output->buffer->use) == -1) {
58+ } else if (send_buffer(session, (char*)raw_xml, raw_size) == -1) {
59 result = -1;
60 }
61
62 /* Free buffers
63 */
64- xmlOutputBufferClose(output);
65+ xmlFree(raw_xml);
66 xmlFreeDoc(result_xml);
67 xsltFreeStylesheet(xslt);
68
69--
701.8.0.1
71
diff --git a/meta-webserver/recipes-httpd/hiawatha/hiawatha_8.6.bb b/meta-webserver/recipes-httpd/hiawatha/hiawatha_8.6.bb
index 7dcbe9ed9..d49bcabda 100644
--- a/meta-webserver/recipes-httpd/hiawatha/hiawatha_8.6.bb
+++ b/meta-webserver/recipes-httpd/hiawatha/hiawatha_8.6.bb
@@ -4,12 +4,13 @@ LICENSE = "GPLv2"
4LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" 4LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
5DEPENDS = "libxml2 libxslt" 5DEPENDS = "libxml2 libxslt"
6 6
7PR = "r1" 7PR = "r2"
8 8
9SECTION = "net" 9SECTION = "net"
10 10
11SRC_URI = "http://hiawatha-webserver.org/files/${PN}-${PV}.tar.gz \ 11SRC_URI = "http://hiawatha-webserver.org/files/${PN}-${PV}.tar.gz \
12 file://hiawatha-init" 12 file://hiawatha-init \
13 file://xslt-fix.patch "
13 14
14SRC_URI[md5sum] = "372ea9e8329ed36e4fb781fdc1a6734c" 15SRC_URI[md5sum] = "372ea9e8329ed36e4fb781fdc1a6734c"
15SRC_URI[sha256sum] = "1a7fa98ce66beb54fc8490cc787461d719a98cb0e4a81caedfa18ac8b5ba3b3b" 16SRC_URI[sha256sum] = "1a7fa98ce66beb54fc8490cc787461d719a98cb0e4a81caedfa18ac8b5ba3b3b"