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 | |
| 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>
| -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 0000000000..41bf4cc1d1 --- /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 7dcbe9ed99..d49bcabdad 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" |
