[xiph-commits] r9739 - icecast/trunk/icecast/src
karl at svn.xiph.org
karl at svn.xiph.org
Thu Aug 11 20:27:11 PDT 2005
Author: karl
Date: 2005-08-11 20:27:09 -0700 (Thu, 11 Aug 2005)
New Revision: 9739
Modified:
icecast/trunk/icecast/src/xslt.c
Log:
make sure that older xslt libs on non-win32 can be used as well
Modified: icecast/trunk/icecast/src/xslt.c
===================================================================
--- icecast/trunk/icecast/src/xslt.c 2005-08-12 03:19:08 UTC (rev 9738)
+++ icecast/trunk/icecast/src/xslt.c 2005-08-12 03:27:09 UTC (rev 9739)
@@ -30,37 +30,13 @@
#include <sys/stat.h>
#include <errno.h>
-#ifndef _WIN32
+#ifdef HAVE_SYS_TIME_H
#include <sys/time.h>
#endif
-
-#ifdef WIN32
-#define snprintf _snprintf
-int xsltSaveResultToString(xmlChar **doc_txt_ptr, int * doc_txt_len, xmlDocPtr result, xsltStylesheetPtr style) {
- xmlOutputBufferPtr buf;
-
- *doc_txt_ptr = NULL;
- *doc_txt_len = 0;
- if (result->children == NULL)
- return(0);
-
- buf = xmlAllocOutputBuffer(NULL);
-
- if (buf == NULL)
- return(-1);
- xsltSaveResultTo(buf, result, style);
- if (buf->conv != NULL) {
- *doc_txt_len = buf->conv->use;
- *doc_txt_ptr = xmlStrndup(buf->conv->content, *doc_txt_len);
- } else {
- *doc_txt_len = buf->buffer->use;
- *doc_txt_ptr = xmlStrndup(buf->buffer->content, *doc_txt_len);
- }
- (void)xmlOutputBufferClose(buf);
- return 0;
-}
-#endif
+#ifdef WIN32
+#define snprintf _snprintf
+#endif
#include "thread/thread.h"
#include "avl/avl.h"
@@ -86,14 +62,43 @@
xsltStylesheetPtr stylesheet;
} stylesheet_cache_t;
+#ifndef HAVE_XSLTSAVERESULTTOSTRING
+int xsltSaveResultToString(xmlChar **doc_txt_ptr, int * doc_txt_len, xmlDocPtr result, xsltStylesheetPtr style) {
+ xmlOutputBufferPtr buf;
+
+ *doc_txt_ptr = NULL;
+ *doc_txt_len = 0;
+ if (result->children == NULL)
+ return(0);
+
+ buf = xmlAllocOutputBuffer(NULL);
+
+ if (buf == NULL)
+ return(-1);
+ xsltSaveResultTo(buf, result, style);
+ if (buf->conv != NULL) {
+ *doc_txt_len = buf->conv->use;
+ *doc_txt_ptr = xmlStrndup(buf->conv->content, *doc_txt_len);
+ } else {
+ *doc_txt_len = buf->buffer->use;
+ *doc_txt_ptr = xmlStrndup(buf->buffer->content, *doc_txt_len);
+ }
+ (void)xmlOutputBufferClose(buf);
+ return 0;
+}
+#endif
+
/* Keep it small... */
#define CACHESIZE 3
-stylesheet_cache_t cache[CACHESIZE];
-mutex_t xsltlock;
+static stylesheet_cache_t cache[CACHESIZE];
+static mutex_t xsltlock;
void xslt_initialize()
{
+ xmlSubstituteEntitiesDefault(1);
+ xmlLoadExtDtdDefaultValue = 1;
+
memset(cache, 0, sizeof(stylesheet_cache_t)*CACHESIZE);
thread_mutex_create(&xsltlock);
xmlSubstituteEntitiesDefault(1);
@@ -209,6 +214,7 @@
if (string == NULL)
string = xmlStrdup ("");
client->respcode = 200;
+ client_set_queue (client, NULL);
client->refbuf = refbuf_new (buf_len);
len = snprintf (client->refbuf->data, buf_len, "%s%d\r\n\r\n%s", http, len, string);
client->refbuf->len = len;
More information about the commits
mailing list