diff options
author | Jack Mitchell <jack.mitchell@dbbroadcast.co.uk> | 2012-12-04 12:12:51 +0000 |
---|---|---|
committer | Paul Eggleton <paul.eggleton@linux.intel.com> | 2012-12-05 09:44:39 +0000 |
commit | a103912e49d1fd5b2d43a09b7027b1b8e3827a50 (patch) | |
tree | d48498cad6e934673f3d6cd1cbe6b999c9824322 /meta-webserver | |
parent | 69565759b63261649b2fed04a38d3faf2e1e6e8b (diff) | |
download | meta-openembedded-a103912e49d1fd5b2d43a09b7027b1b8e3827a50.tar.gz |
hiawatha: add new patch to fix xslt implementation
Signed-off-by: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk>
Diffstat (limited to 'meta-webserver')
-rw-r--r-- | meta-webserver/recipes-httpd/hiawatha/files/xslt-fix.patch | 71 | ||||
-rw-r--r-- | meta-webserver/recipes-httpd/hiawatha/hiawatha_8.6.bb | 5 |
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 @@ | |||
1 | Upstream Status: Backport | ||
2 | Signed-off-by: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk> | ||
3 | --- | ||
4 | src/xslt.c | 19 +++++++------------ | ||
5 | 1 file changed, 7 insertions(+), 12 deletions(-) | ||
6 | |||
7 | diff --git a/src/xslt.c b/src/xslt.c | ||
8 | index 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 | -- | ||
70 | 1.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" | |||
4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" | 4 | LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe" |
5 | DEPENDS = "libxml2 libxslt" | 5 | DEPENDS = "libxml2 libxslt" |
6 | 6 | ||
7 | PR = "r1" | 7 | PR = "r2" |
8 | 8 | ||
9 | SECTION = "net" | 9 | SECTION = "net" |
10 | 10 | ||
11 | SRC_URI = "http://hiawatha-webserver.org/files/${PN}-${PV}.tar.gz \ | 11 | SRC_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 | ||
14 | SRC_URI[md5sum] = "372ea9e8329ed36e4fb781fdc1a6734c" | 15 | SRC_URI[md5sum] = "372ea9e8329ed36e4fb781fdc1a6734c" |
15 | SRC_URI[sha256sum] = "1a7fa98ce66beb54fc8490cc787461d719a98cb0e4a81caedfa18ac8b5ba3b3b" | 16 | SRC_URI[sha256sum] = "1a7fa98ce66beb54fc8490cc787461d719a98cb0e4a81caedfa18ac8b5ba3b3b" |