[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