All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paul Eggleton <paul.eggleton@linux.intel.com>
To: openembedded-devel@lists.openembedded.org
Subject: Re: [meta-webserver][PATCH v2] hiawatha: add new patch to fix xslt implementation
Date: Wed, 05 Dec 2012 09:47:07 +0000	[thread overview]
Message-ID: <2250262.VNQEWWYmpT@helios> (raw)
In-Reply-To: <1354623171-18567-1-git-send-email-ml@communistcode.co.uk>

On Tuesday 04 December 2012 12:12:51 Jack Mitchell wrote:
> From: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk>
> 
> Signed-off-by: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk>
> ---
>  .../recipes-httpd/hiawatha/files/xslt-fix.patch    | 71
> ++++++++++++++++++++++ .../recipes-httpd/hiawatha/hiawatha_8.6.bb         |
>  5 +-
>  2 files changed, 74 insertions(+), 2 deletions(-)
>  create mode 100644
> meta-webserver/recipes-httpd/hiawatha/files/xslt-fix.patch
> 
> 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 0000000..41bf4cc
> --- /dev/null
> +++ b/meta-webserver/recipes-httpd/hiawatha/files/xslt-fix.patch
> @@ -0,0 +1,71 @@
> +Upstream Status: Backport
> +Signed-off-by: Jack Mitchell <jack.mitchell@dbbroadcast.co.uk>
> +---
> + src/xslt.c | 19 +++++++------------
> + 1 file changed, 7 insertions(+), 12 deletions(-)
> +
> +diff --git a/src/xslt.c b/src/xslt.c
> +index 9d8d31a..58ca52d 100644
> +--- a/src/xslt.c
> ++++ b/src/xslt.c
> +@@ -23,6 +23,7 @@
> + #include <libxslt/transform.h>
> + #include <libxslt/xsltutils.h>
> + #include "libstr.h"
> ++#include "liblist.h"
> + #include "send.h"
> + #include "log.h"
> + #ifdef ENABLE_TOMAHAWK
> +@@ -343,10 +344,10 @@ bool can_transform_with_xslt(t_session *session) {
> + static int apply_xslt_sheet(t_session *session, xmlDocPtr data_xml) {
> + 	xmlDocPtr style_xml, result_xml;
> + 	xsltStylesheetPtr xslt;
> +-	xmlOutputBufferPtr output;
> ++	xmlChar *raw_xml;
> + 	char value[VALUE_SIZE + 1];
> + 	const char **params;
> +-	int result = 200;
> ++	int result = 200, raw_size;
> +
> + 	/* Read XML data
> + 	 */
> +@@ -396,14 +397,8 @@ static int apply_xslt_sheet(t_session *session,
> xmlDocPtr data_xml) { + 		xsltFreeStylesheet(xslt);
> + 		return 500;
> + 	}
> +-	if ((output = xmlAllocOutputBuffer(NULL)) == NULL) {
> +-		xmlFreeDoc(result_xml);
> +-		xsltFreeStylesheet(xslt);
> +-		return 500;
> +-	}
> +-    if (xsltSaveResultTo(output, result_xml, xslt) == -1) {
> ++	if (xsltSaveResultToString(&raw_xml, &raw_size, result_xml, xslt) == 
-1)
> { + 		log_file_error(session, session->file_on_disk, "transformation
> error"); +-		xmlOutputBufferClose(output);
> + 		xmlFreeDoc(result_xml);
> + 		xsltFreeStylesheet(xslt);
> + 		return 500;
> +@@ -414,17 +409,17 @@ static int apply_xslt_sheet(t_session *session,
> xmlDocPtr data_xml) { + 	value[VALUE_SIZE] = '\0';
> + 	if (send_buffer(session, hs_conlen, 16) == -1) {
> + 		result = -1;
> +-	} else if (snprintf(value, VALUE_SIZE, "%d\r\n\r\n", output->buffer->use)
> == -1) { ++	} else if (snprintf(value, VALUE_SIZE, "%d\r\n\r\n", raw_size)
> == -1) { + 		result = -1;
> + 	} else if (send_buffer(session, value, strlen(value)) == -1) {
> + 		result = -1;
> +-	} else if (send_buffer(session, (char*)output->buffer->content,
> output->buffer->use) == -1) { ++	} else if (send_buffer(session,
> (char*)raw_xml, raw_size) == -1) { + 		result = -1;
> + 	}
> +
> + 	/* Free buffers
> + 	 */
> +-	xmlOutputBufferClose(output);
> ++	xmlFree(raw_xml);
> + 	xmlFreeDoc(result_xml);
> + 	xsltFreeStylesheet(xslt);
> +
> +--
> +1.8.0.1
> +
> diff --git a/meta-webserver/recipes-httpd/hiawatha/hiawatha_8.6.bb
> b/meta-webserver/recipes-httpd/hiawatha/hiawatha_8.6.bb index
> 7dcbe9e..d49bcab 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"
>  LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
>  DEPENDS = "libxml2 libxslt"
> 
> -PR = "r1"
> +PR = "r2"
> 
>  SECTION = "net"
> 
>  SRC_URI = "http://hiawatha-webserver.org/files/${PN}-${PV}.tar.gz \
> -           file://hiawatha-init"
> +           file://hiawatha-init \
> +           file://xslt-fix.patch "
> 
>  SRC_URI[md5sum] = "372ea9e8329ed36e4fb781fdc1a6734c"
>  SRC_URI[sha256sum] =
> "1a7fa98ce66beb54fc8490cc787461d719a98cb0e4a81caedfa18ac8b5ba3b3b"

Merged to meta-webserver, thanks.

Cheers,
Paul

-- 

Paul Eggleton
Intel Open Source Technology Centre



      reply	other threads:[~2012-12-05 10:01 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-04 12:12 [meta-webserver][PATCH v2] hiawatha: add new patch to fix xslt implementation Jack Mitchell
2012-12-05  9:47 ` Paul Eggleton [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2250262.VNQEWWYmpT@helios \
    --to=paul.eggleton@linux.intel.com \
    --cc=openembedded-devel@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.