summaryrefslogtreecommitdiff
path: root/ext/xmlrpc/libxmlrpc
diff options
context:
space:
mode:
authorMark A. Hershberger <mah@debian.(none)>2009-03-25 00:37:27 -0400
committerMark A. Hershberger <mah@debian.(none)>2009-03-25 00:37:27 -0400
commit2d4e5b09576bb4f0ba716cc82cdf29ea04d9184b (patch)
tree41ccc042009cba53e4ce43e727fcba4c1cfbf7f3 /ext/xmlrpc/libxmlrpc
parentd29a4fd2dd3b5d4cf6e80b602544d7b71d794e76 (diff)
downloadphp-2d4e5b09576bb4f0ba716cc82cdf29ea04d9184b.tar.gz
Imported Upstream version 5.2.2upstream/5.2.2
Diffstat (limited to 'ext/xmlrpc/libxmlrpc')
-rw-r--r--ext/xmlrpc/libxmlrpc/base64.c6
-rw-r--r--ext/xmlrpc/libxmlrpc/base64.h4
-rw-r--r--ext/xmlrpc/libxmlrpc/xml_to_dandarpc.c4
-rw-r--r--ext/xmlrpc/libxmlrpc/xml_to_soap.c6
-rw-r--r--ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c17
-rw-r--r--ext/xmlrpc/libxmlrpc/xmlrpc.c10
6 files changed, 28 insertions, 19 deletions
diff --git a/ext/xmlrpc/libxmlrpc/base64.c b/ext/xmlrpc/libxmlrpc/base64.c
index e06703824..75f283411 100644
--- a/ext/xmlrpc/libxmlrpc/base64.c
+++ b/ext/xmlrpc/libxmlrpc/base64.c
@@ -1,4 +1,4 @@
-static const char rcsid[] = "#(@) $Id: base64.c,v 1.4 2004/04/27 17:33:59 iliaa Exp $";
+static const char rcsid[] = "#(@) $Id: base64.c,v 1.4.6.1 2007/03/04 18:24:49 iliaa Exp $";
/*
@@ -49,7 +49,7 @@ void buffer_delete(struct buffer_st *b)
b->data = NULL;
}
-void base64_encode(struct buffer_st *b, const char *source, int length)
+void base64_encode_xmlrpc(struct buffer_st *b, const char *source, int length)
{
int i, hiteof = 0;
int offset = 0;
@@ -114,7 +114,7 @@ void base64_encode(struct buffer_st *b, const char *source, int length)
buffer_add(b, '\n');
}
-void base64_decode(struct buffer_st *bfr, const char *source, int length)
+void base64_decode_xmlrpc(struct buffer_st *bfr, const char *source, int length)
{
int i;
int offset = 0;
diff --git a/ext/xmlrpc/libxmlrpc/base64.h b/ext/xmlrpc/libxmlrpc/base64.h
index 4cf156ad1..6a0c8ef6f 100644
--- a/ext/xmlrpc/libxmlrpc/base64.h
+++ b/ext/xmlrpc/libxmlrpc/base64.h
@@ -21,8 +21,8 @@ void buffer_new(struct buffer_st *b);
void buffer_add(struct buffer_st *b, char c);
void buffer_delete(struct buffer_st *b);
-void base64_encode(struct buffer_st *b, const char *source, int length);
-void base64_decode(struct buffer_st *b, const char *source, int length);
+void base64_encode_xmlrpc(struct buffer_st *b, const char *source, int length);
+void base64_decode_xmlrpc(struct buffer_st *b, const char *source, int length);
/*
#define DEBUG_MALLOC
diff --git a/ext/xmlrpc/libxmlrpc/xml_to_dandarpc.c b/ext/xmlrpc/libxmlrpc/xml_to_dandarpc.c
index b51d99172..753222c55 100644
--- a/ext/xmlrpc/libxmlrpc/xml_to_dandarpc.c
+++ b/ext/xmlrpc/libxmlrpc/xml_to_dandarpc.c
@@ -104,7 +104,7 @@ XMLRPC_VALUE xml_element_to_DANDARPC_REQUEST_worker(XMLRPC_REQUEST request, XMLR
}
else if(!strcmp(type, ATTR_BASE64)) {
struct buffer_st buf;
- base64_decode(&buf, el->text.str, el->text.len);
+ base64_decode_xmlrpc(&buf, el->text.str, el->text.len);
XMLRPC_SetValueBase64(xCurrent, buf.data, buf.offset);
buffer_delete(&buf);
}
@@ -227,7 +227,7 @@ xml_element* DANDARPC_to_xml_element_worker(XMLRPC_REQUEST request, XMLRPC_VALUE
{
struct buffer_st buf;
pAttrType = ATTR_BASE64;
- base64_encode(&buf, XMLRPC_GetValueBase64(node), XMLRPC_GetValueStringLen(node));
+ base64_encode_xmlrpc(&buf, XMLRPC_GetValueBase64(node), XMLRPC_GetValueStringLen(node));
simplestring_addn(&elem_val->text, buf.data, buf.offset );
buffer_delete(&buf);
}
diff --git a/ext/xmlrpc/libxmlrpc/xml_to_soap.c b/ext/xmlrpc/libxmlrpc/xml_to_soap.c
index a30b3c11f..07c57087f 100644
--- a/ext/xmlrpc/libxmlrpc/xml_to_soap.c
+++ b/ext/xmlrpc/libxmlrpc/xml_to_soap.c
@@ -75,7 +75,7 @@ static xml_element_attr* new_attr(const char* key, const char* val) {
}
struct array_info {
- char kids_type[30];
+ char kids_type[128];
unsigned long size;
/* ... ? */
};
@@ -363,7 +363,7 @@ XMLRPC_VALUE xml_element_to_SOAP_REQUEST_worker(XMLRPC_REQUEST request,
}
else if (!strcmp(type, TOKEN_BASE64)) {
struct buffer_st buf;
- base64_decode(&buf, el->text.str, el->text.len);
+ base64_decode_xmlrpc(&buf, el->text.str, el->text.len);
XMLRPC_SetValueBase64(xCurrent, buf.data, buf.offset);
buffer_delete(&buf);
}
@@ -529,7 +529,7 @@ xml_element* SOAP_to_xml_element_worker(XMLRPC_REQUEST request, XMLRPC_VALUE nod
{
struct buffer_st buf;
pAttrType = TOKEN_BASE64;
- base64_encode(&buf, XMLRPC_GetValueBase64(node), XMLRPC_GetValueStringLen(node));
+ base64_encode_xmlrpc(&buf, XMLRPC_GetValueBase64(node), XMLRPC_GetValueStringLen(node));
simplestring_addn(&elem_val->text, buf.data, buf.offset );
buffer_delete(&buf);
}
diff --git a/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c b/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c
index f411d1516..7f63febc3 100644
--- a/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c
+++ b/ext/xmlrpc/libxmlrpc/xml_to_xmlrpc.c
@@ -31,11 +31,13 @@
*/
-static const char rcsid[] = "#(@) $Id: xml_to_xmlrpc.c,v 1.5 2004/04/27 17:33:59 iliaa Exp $";
+static const char rcsid[] = "#(@) $Id: xml_to_xmlrpc.c,v 1.5.6.2 2007/03/04 18:24:49 iliaa Exp $";
#ifdef _WIN32
#include "xmlrpc_win32.h"
#endif
+#include "php.h"
+#include "main/snprintf.h"
#include <string.h>
#include <stdlib.h>
#include "xml_to_xmlrpc.h"
@@ -137,7 +139,7 @@ XMLRPC_VALUE xml_element_to_XMLRPC_REQUEST_worker(XMLRPC_REQUEST request, XMLRPC
}
else if (!strcmp(el->name, ELEM_BASE64)) {
struct buffer_st buf;
- base64_decode(&buf, el->text.str, el->text.len);
+ base64_decode_xmlrpc(&buf, el->text.str, el->text.len);
XMLRPC_SetValueBase64(current_val, buf.data, buf.offset);
buffer_delete(&buf);
}
@@ -225,9 +227,12 @@ xml_element* XMLRPC_to_xml_element_worker(XMLRPC_VALUE current_vector, XMLRPC_VA
simplestring_add(&elem_val->text, buf);
break;
case xmlrpc_double:
- elem_val->name = strdup(ELEM_DOUBLE);
- snprintf(buf, BUF_SIZE, "%f", XMLRPC_GetValueDouble(node));
- simplestring_add(&elem_val->text, buf);
+ {
+ TSRMLS_FETCH();
+ elem_val->name = strdup(ELEM_DOUBLE);
+ ap_php_snprintf(buf, BUF_SIZE, "%.*G", (int) EG(precision), XMLRPC_GetValueDouble(node));
+ simplestring_add(&elem_val->text, buf);
+ }
break;
case xmlrpc_datetime:
elem_val->name = strdup(ELEM_DATETIME);
@@ -237,7 +242,7 @@ xml_element* XMLRPC_to_xml_element_worker(XMLRPC_VALUE current_vector, XMLRPC_VA
{
struct buffer_st buf;
elem_val->name = strdup(ELEM_BASE64);
- base64_encode(&buf, XMLRPC_GetValueBase64(node), XMLRPC_GetValueStringLen(node));
+ base64_encode_xmlrpc(&buf, XMLRPC_GetValueBase64(node), XMLRPC_GetValueStringLen(node));
simplestring_addn(&elem_val->text, buf.data, buf.offset );
buffer_delete(&buf);
}
diff --git a/ext/xmlrpc/libxmlrpc/xmlrpc.c b/ext/xmlrpc/libxmlrpc/xmlrpc.c
index fa3dafd60..1e94eaf32 100644
--- a/ext/xmlrpc/libxmlrpc/xmlrpc.c
+++ b/ext/xmlrpc/libxmlrpc/xmlrpc.c
@@ -31,7 +31,7 @@
*/
-static const char rcsid[] = "#(@) $Id: xmlrpc.c,v 1.8 2005/03/28 00:07:24 edink Exp $";
+static const char rcsid[] = "#(@) $Id: xmlrpc.c,v 1.8.4.1 2006/11/30 16:38:37 iliaa Exp $";
/****h* ABOUT/xmlrpc
@@ -43,6 +43,9 @@ static const char rcsid[] = "#(@) $Id: xmlrpc.c,v 1.8 2005/03/28 00:07:24 edink
* 9/1999 - 10/2000
* HISTORY
* $Log: xmlrpc.c,v $
+ * Revision 1.8.4.1 2006/11/30 16:38:37 iliaa
+ * last set of zts fixes
+ *
* Revision 1.8 2005/03/28 00:07:24 edink
* Reshufle includes to make it compile on windows
*
@@ -126,6 +129,7 @@ static const char rcsid[] = "#(@) $Id: xmlrpc.c,v 1.8 2005/03/28 00:07:24 edink
*******/
#include "ext/xml/expat_compat.h"
+#include "main/php_reentrancy.h"
#ifdef _WIN32
#include "xmlrpc_win32.h"
#endif
@@ -230,8 +234,8 @@ static int date_from_ISO8601 (const char *text, time_t * value) {
}
static int date_to_ISO8601 (time_t value, char *buf, int length) {
- struct tm *tm;
- tm = localtime(&value);
+ struct tm *tm, tmbuf;
+ tm = php_localtime_r(&value, &tmbuf);
#if 0 /* TODO: soap seems to favor this method. xmlrpc the latter. */
return strftime (buf, length, "%Y-%m-%dT%H:%M:%SZ", tm);
#else