summaryrefslogtreecommitdiff
path: root/ext/xmlrpc
diff options
context:
space:
mode:
authorMark A. Hershberger <mah@debian.(none)>2009-03-25 00:36:21 -0400
committerMark A. Hershberger <mah@debian.(none)>2009-03-25 00:36:21 -0400
commitd29a4fd2dd3b5d4cf6e80b602544d7b71d794e76 (patch)
treeb38e2e5c6974b9a15f103e5cf884cba9fff90ef4 /ext/xmlrpc
parenta88a88d0986a4a32288c102cdbfebd78d7e91d99 (diff)
downloadphp-d29a4fd2dd3b5d4cf6e80b602544d7b71d794e76.tar.gz
Imported Upstream version 5.2.0upstream/5.2.0
Diffstat (limited to 'ext/xmlrpc')
-rw-r--r--ext/xmlrpc/libxmlrpc/xml_element.c9
-rw-r--r--ext/xmlrpc/tests/001.phpt66
-rw-r--r--ext/xmlrpc/tests/002.phpt56
-rw-r--r--ext/xmlrpc/tests/bug37057.phpt2
-rw-r--r--ext/xmlrpc/xmlrpc-epi-php.c7
5 files changed, 134 insertions, 6 deletions
diff --git a/ext/xmlrpc/libxmlrpc/xml_element.c b/ext/xmlrpc/libxmlrpc/xml_element.c
index 073105638..15fc3bf0b 100644
--- a/ext/xmlrpc/libxmlrpc/xml_element.c
+++ b/ext/xmlrpc/libxmlrpc/xml_element.c
@@ -31,7 +31,7 @@
*/
-static const char rcsid[] = "#(@) $Id: xml_element.c,v 1.9 2005/04/22 11:06:53 jorton Exp $";
+static const char rcsid[] = "#(@) $Id: xml_element.c,v 1.9.4.1 2006/07/30 11:34:02 tony2001 Exp $";
@@ -44,6 +44,9 @@ static const char rcsid[] = "#(@) $Id: xml_element.c,v 1.9 2005/04/22 11:06:53 j
* 06/2000
* HISTORY
* $Log: xml_element.c,v $
+ * Revision 1.9.4.1 2006/07/30 11:34:02 tony2001
+ * MFH: fix compile warnings (#38257)
+ *
* Revision 1.9 2005/04/22 11:06:53 jorton
* Fixed bug #32797 (invalid C code in xmlrpc extension).
*
@@ -697,8 +700,8 @@ xml_element* xml_elem_parse_buf(const char* in_buf, int len, XML_ELEM_INPUT_OPTI
mydata.input_options = options;
mydata.needs_enc_conversion = options->encoding && strcmp(options->encoding, encoding_utf_8);
- XML_SetElementHandler(parser, _xmlrpc_startElement, _xmlrpc_endElement);
- XML_SetCharacterDataHandler(parser, _xmlrpc_charHandler);
+ XML_SetElementHandler(parser, (XML_StartElementHandler)_xmlrpc_startElement, (XML_EndElementHandler)_xmlrpc_endElement);
+ XML_SetCharacterDataHandler(parser, (XML_CharacterDataHandler)_xmlrpc_charHandler);
/* pass the xml_elem_data struct along */
XML_SetUserData(parser, (void*)&mydata);
diff --git a/ext/xmlrpc/tests/001.phpt b/ext/xmlrpc/tests/001.phpt
new file mode 100644
index 000000000..99fd958d2
--- /dev/null
+++ b/ext/xmlrpc/tests/001.phpt
@@ -0,0 +1,66 @@
+--TEST--
+xmlrpc_encode_request() with wrong arguments
+--SKIPIF--
+<?php if (!extension_loaded("xmlrpc")) print "skip"; ?>
+--FILE--
+<?php
+
+var_dump(xmlrpc_encode_request(-1, 1));
+var_dump(xmlrpc_encode_request("", 1));
+var_dump(xmlrpc_encode_request(array(), 1));
+var_dump(xmlrpc_encode_request(3.4, 1));
+
+echo "Done\n";
+?>
+--EXPECTF--
+string(174) "<?xml version="1.0" encoding="iso-8859-1"?>
+<methodCall>
+<methodName>-1</methodName>
+<params>
+ <param>
+ <value>
+ <int>1</int>
+ </value>
+ </param>
+</params>
+</methodCall>
+"
+string(160) "<?xml version="1.0" encoding="iso-8859-1"?>
+<methodCall>
+<methodName/>
+<params>
+ <param>
+ <value>
+ <int>1</int>
+ </value>
+ </param>
+</params>
+</methodCall>
+"
+
+Notice: Array to string conversion in %s on line %d
+string(177) "<?xml version="1.0" encoding="iso-8859-1"?>
+<methodCall>
+<methodName>Array</methodName>
+<params>
+ <param>
+ <value>
+ <int>1</int>
+ </value>
+ </param>
+</params>
+</methodCall>
+"
+string(175) "<?xml version="1.0" encoding="iso-8859-1"?>
+<methodCall>
+<methodName>3.4</methodName>
+<params>
+ <param>
+ <value>
+ <int>1</int>
+ </value>
+ </param>
+</params>
+</methodCall>
+"
+Done
diff --git a/ext/xmlrpc/tests/002.phpt b/ext/xmlrpc/tests/002.phpt
new file mode 100644
index 000000000..c8d722b80
--- /dev/null
+++ b/ext/xmlrpc/tests/002.phpt
@@ -0,0 +1,56 @@
+--TEST--
+xmlrpc_encode_request() and various arguments
+--SKIPIF--
+<?php if (!extension_loaded("xmlrpc")) print "skip"; ?>
+--FILE--
+<?php
+
+$r = xmlrpc_encode_request("method", array());
+var_dump(xmlrpc_decode_request($r, $method));
+var_dump($method);
+
+$r = xmlrpc_encode_request("method", 1);
+var_dump(xmlrpc_decode_request($r, $method));
+var_dump($method);
+
+$r = xmlrpc_encode_request("method", 'param');
+var_dump(xmlrpc_decode_request($r, $method));
+var_dump($method);
+
+$r = xmlrpc_encode_request(-1, "");
+var_dump(xmlrpc_decode_request($r, $method));
+var_dump($method);
+
+$r = xmlrpc_encode_request(array(), 1);
+var_dump(xmlrpc_decode_request($r, $method));
+var_dump($method);
+
+echo "Done\n";
+?>
+--EXPECTF--
+array(0) {
+}
+string(6) "method"
+array(1) {
+ [0]=>
+ int(1)
+}
+string(6) "method"
+array(1) {
+ [0]=>
+ string(5) "param"
+}
+string(6) "method"
+array(1) {
+ [0]=>
+ string(0) ""
+}
+string(2) "-1"
+
+Notice: Array to string conversion in %s on line %d
+array(1) {
+ [0]=>
+ int(1)
+}
+string(5) "Array"
+Done
diff --git a/ext/xmlrpc/tests/bug37057.phpt b/ext/xmlrpc/tests/bug37057.phpt
index 0764d8af6..013cc9192 100644
--- a/ext/xmlrpc/tests/bug37057.phpt
+++ b/ext/xmlrpc/tests/bug37057.phpt
@@ -1,5 +1,7 @@
--TEST--
Bug #37057 (xmlrpc_decode() may produce arrays with numeric string keys which are unaccessible)
+--SKIPIF--
+<?php if (!extension_loaded("xmlrpc")) print "skip"; ?>
--FILE--
<?php
$response='<?xml version="1.0"?>
diff --git a/ext/xmlrpc/xmlrpc-epi-php.c b/ext/xmlrpc/xmlrpc-epi-php.c
index 9a043e59e..d52486006 100644
--- a/ext/xmlrpc/xmlrpc-epi-php.c
+++ b/ext/xmlrpc/xmlrpc-epi-php.c
@@ -51,7 +51,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: xmlrpc-epi-php.c,v 1.39.2.7 2006/08/11 19:16:29 tony2001 Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.39.2.5.2.2 2006/08/14 08:18:01 tony2001 Exp $ */
/**********************************************************************
* BUGS: *
@@ -671,6 +671,7 @@ PHP_FUNCTION(xmlrpc_encode_request)
if (Z_TYPE_PP(method) == IS_NULL) {
XMLRPC_RequestSetRequestType(xRequest, xmlrpc_request_response);
} else {
+ convert_to_string_ex(method);
XMLRPC_RequestSetMethodName(xRequest, Z_STRVAL_PP(method));
XMLRPC_RequestSetRequestType(xRequest, xmlrpc_request_call);
}
@@ -740,7 +741,7 @@ zval* decode_request_worker (zval* xml_in, zval* encoding_in, zval* method_name_
if(XMLRPC_RequestGetRequestType(response) == xmlrpc_request_call) {
if(method_name_out) {
- convert_to_string(method_name_out);
+ zval_dtor(method_name_out);
Z_TYPE_P(method_name_out) = IS_STRING;
Z_STRVAL_P(method_name_out) = estrdup(XMLRPC_RequestGetMethodName(response));
Z_STRLEN_P(method_name_out) = strlen(Z_STRVAL_P(method_name_out));
@@ -1468,7 +1469,7 @@ PHP_FUNCTION(xmlrpc_get_type)
type = get_zval_xmlrpc_type(*arg, 0);
if (type == xmlrpc_vector) {
- vtype = determine_vector_type(Z_ARRVAL_PP(arg));
+ vtype = determine_vector_type((Z_TYPE_PP(arg) == IS_OBJECT) ? Z_OBJPROP_PP(arg) : Z_ARRVAL_PP(arg));
}
RETURN_STRING((char*) xmlrpc_type_as_str(type, vtype), 1);