[libsoup/wip/xclaesse/xmlrpc] xmlrpc: Use soup_date_new_from_string() to parse date
- From: Xavier Claessens <xclaesse src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [libsoup/wip/xclaesse/xmlrpc] xmlrpc: Use soup_date_new_from_string() to parse date
- Date: Tue, 23 Jun 2015 20:20:03 +0000 (UTC)
commit 0d559bc8b448ec6aefbf8cc1ca737257e154862d
Author: Xavier Claessens <xavier claessens collabora com>
Date: Tue Jun 23 15:19:08 2015 -0400
xmlrpc: Use soup_date_new_from_string() to parse date
libsoup/soup-xmlrpc.c | 10 ++++++----
tests/xmlrpc-test.c | 4 ++--
2 files changed, 8 insertions(+), 6 deletions(-)
---
diff --git a/libsoup/soup-xmlrpc.c b/libsoup/soup-xmlrpc.c
index 458284e..823eae6 100644
--- a/libsoup/soup-xmlrpc.c
+++ b/libsoup/soup-xmlrpc.c
@@ -1077,7 +1077,7 @@ parse_value (xmlNode *node, const char **signature, GError **error)
}
variant = parse_array (typenode, signature, error);
} else if (g_str_equal (typename, "dateTime.iso8601")) {
- GTimeVal t;
+ SoupDate *date;
if (class != G_VARIANT_CLASS_VARIANT &&
class != G_VARIANT_CLASS_INT64) {
@@ -1086,14 +1086,16 @@ parse_value (xmlNode *node, const char **signature, GError **error)
goto fail;
}
- content = xmlNodeGetContent (node);
- if (!g_time_val_from_iso8601 ((char *)content, &t)) {
+ content = xmlNodeGetContent (typenode);
+ date = soup_date_new_from_string ((char *)content);
+ if (!date) {
g_set_error (error, SOUP_XMLRPC_ERROR, SOUP_XMLRPC_ERROR_ARGUMENTS,
"Couldn't parse date: %s", content);
goto fail;
}
- variant = g_variant_new_int64 (t.tv_sec);
+ variant = g_variant_new_int64 (soup_date_to_time_t (date));
+ soup_date_free (date);
} else {
g_set_error (error, SOUP_XMLRPC_ERROR, SOUP_XMLRPC_ERROR_ARGUMENTS,
"Unknown node name %s", typename);
diff --git a/tests/xmlrpc-test.c b/tests/xmlrpc-test.c
index b878d13..c3e378f 100644
--- a/tests/xmlrpc-test.c
+++ b/tests/xmlrpc-test.c
@@ -189,10 +189,10 @@ test_deserializer (void)
"<member><name>one</name><value><int>1</int></value></member>"
"<member><name>two</name><value><int>2</int></value></member>"
"</struct></value></param></params>");
- verify_deserialization (g_variant_new_parsed ("[<int64 1434161309>]"),
+ verify_deserialization (g_variant_new_parsed ("[<int64 1434146909>]"),
NULL,
"<params>"
- "<param><value><dateTime.iso8601>2015-06-12T22:08:29-04:00</dateTime.iso8601></value></param>"
+ "<param><value><dateTime.iso8601>20150612T22:08:29</dateTime.iso8601></value></param>"
"</params>");
verify_deserialization (g_variant_new_parsed ("[<b'bytestring'>]"),
NULL,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]