summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXavier Claessens <xavier.claessens@collabora.com>2015-08-10 15:25:12 -0400
committerXavier Claessens <xavier.claessens@collabora.com>2015-08-12 11:34:27 -0400
commit6f93bde9fe8f1390fe9b997a33bb35e1e613539e (patch)
treeac05b7bd5e23765946fd96f6d21a02a13438ed4b
parentb82af75eeebbe5bae7b4d2c849de71316bac51c0 (diff)
downloadlibsoup-6f93bde9fe8f1390fe9b997a33bb35e1e613539e.tar.gz
xmlrpc: remove support for 'g' and 'o' (de)serialization
-rw-r--r--libsoup/soup-xmlrpc.c19
-rw-r--r--tests/xmlrpc-test.c9
2 files changed, 6 insertions, 22 deletions
diff --git a/libsoup/soup-xmlrpc.c b/libsoup/soup-xmlrpc.c
index 314d2259..6c25d256 100644
--- a/libsoup/soup-xmlrpc.c
+++ b/libsoup/soup-xmlrpc.c
@@ -146,8 +146,6 @@ insert_value (xmlNode *parent, GVariant *value, GError **error)
type_str = "double";
break;
case G_VARIANT_CLASS_STRING:
- case G_VARIANT_CLASS_OBJECT_PATH:
- case G_VARIANT_CLASS_SIGNATURE:
xmlNewTextChild (xvalue, NULL,
(const xmlChar *)"string",
(const xmlChar *)g_variant_get_string (value, NULL));
@@ -218,6 +216,8 @@ insert_value (xmlNode *parent, GVariant *value, GError **error)
case G_VARIANT_CLASS_HANDLE:
case G_VARIANT_CLASS_MAYBE:
case G_VARIANT_CLASS_UINT64:
+ case G_VARIANT_CLASS_OBJECT_PATH:
+ case G_VARIANT_CLASS_SIGNATURE:
default:
g_set_error (error, SOUP_XMLRPC_ERROR, SOUP_XMLRPC_ERROR_ARGUMENTS,
"Unsupported type: %s", g_variant_get_type_string (value));
@@ -256,13 +256,13 @@ fail:
* - byte, int16, uint16 and int32 are serialized as &lt;int&gt;
* - uint32 and int64 are serialized as the nonstandard &lt;i8&gt; type
* - doubles are serialized as &lt;double&gt;
- * - Strings (including object-paths and signatures) are serialized as &lt;string&gt;
+ * - Strings are serialized as &lt;string&gt;
* - Variants (i.e. "v" type) are unwrapped and their child is serialized.
* - #GVariants created by soup_xmlrpc_variant_new_datetime() are serialized as
* &lt;dateTime.iso8601&gt;
* - Other types are not supported and will return %NULL and set @error.
- * This notably includes: uint64, maybes and dictionaries with non-string
- * keys.
+ * This notably includes: object-paths, signatures, uint64, handles, maybes
+ * and dictionaries with non-string keys.
*
* If @params is floating, it is consumed.
*
@@ -1010,12 +1010,6 @@ parse_value (xmlNode *node, const char **signature, GError **error)
content = xmlNodeGetContent (typenode);
if (class == G_VARIANT_CLASS_VARIANT || class == G_VARIANT_CLASS_STRING)
variant = g_variant_new_string ((const char *)content);
- else if (class == G_VARIANT_CLASS_OBJECT_PATH &&
- g_variant_is_object_path ((const char *)content))
- variant = g_variant_new_object_path ((const char *)content);
- else if (class == G_VARIANT_CLASS_SIGNATURE &&
- g_variant_is_signature ((const char *)content))
- variant = g_variant_new_signature ((const char *)content);
else {
g_set_error (error, SOUP_XMLRPC_ERROR, SOUP_XMLRPC_ERROR_ARGUMENTS,
"<string> node does not match signature");
@@ -1268,8 +1262,7 @@ fail:
* - &lt;array&gt; will be deserialized to "av". @signature could define
* another element type (e.g. "as") or could be a tuple (e.g. "(ss)").
* - &lt;base64&gt; will be deserialized to "ay".
- * - &lt;string&gt; will be deserialized to "s". @signature could define
- * another type ("o" or "g").
+ * - &lt;string&gt; will be deserialized to "s".
* - &lt;dateTime.iso8601&gt; will be deserialized to int64 unix timestamp.
* - @signature must not have maybes, otherwise an error is returned.
* - Dictionaries must have string keys, otherwise an error is returned.
diff --git a/tests/xmlrpc-test.c b/tests/xmlrpc-test.c
index f9bbb2c7..fd73c420 100644
--- a/tests/xmlrpc-test.c
+++ b/tests/xmlrpc-test.c
@@ -617,11 +617,6 @@ test_deserializer (void)
"<params>"
"<param><value><base64>Ynl0ZXN0cmluZwA=</base64></value></param>"
"</params>");
- verify_deserialization (g_variant_new_parsed ("(@o '/path',)"),
- "(o)",
- "<params>"
- "<param><value><string>/path</string></value></param>"
- "</params>");
verify_deserialization (g_variant_new_parsed ("[<1>]"),
"av",
"<params><param><value><int>1</int></value></param></params>");
@@ -643,10 +638,6 @@ test_deserializer (void)
"(t)", tmp);
g_free (tmp);
- verify_deserialization_fail ("(o)",
- "<params>"
- "<param><value><string>not/a/path</string></value></param>"
- "</params>");
verify_deserialization_fail (NULL,
"<params>"
"<param><value><boolean>2</boolean></value></param>"