summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2004-12-09 22:30:28 +0000
committerFrederic Peters <fpeters@entrouvert.com>2004-12-09 22:30:28 +0000
commitf27f8e53aff953cb8d4d8729ae201b53383800df (patch)
tree597da17c8837b49013f8d8a39d44bc17c35472eb
parent5fe99f44a2ebb5b64b07a6810ab6773cedcf4d60 (diff)
don't sign query if not asked to; and fixed SNIPPET_NODE_IN_CHILD support
-rw-r--r--lasso/xml/xml.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/lasso/xml/xml.c b/lasso/xml/xml.c
index 14818f7e..fa97500b 100644
--- a/lasso/xml/xml.c
+++ b/lasso/xml/xml.c
@@ -144,10 +144,12 @@ lasso_node_export_to_query(LassoNode *node,
char *unsigned_query, *query;
g_return_val_if_fail (LASSO_IS_NODE(node), NULL);
- g_return_val_if_fail (private_key_file != NULL, NULL);
unsigned_query = lasso_node_build_query(node);
- query = lasso_query_sign(unsigned_query, sign_method, private_key_file);
+ if (private_key_file)
+ query = lasso_query_sign(unsigned_query, sign_method, private_key_file);
+ else
+ query = g_strdup(unsigned_query);
g_free(unsigned_query);
return query;
@@ -601,6 +603,10 @@ lasso_node_dispose(GObject *object)
if (*value == NULL)
continue;
+#if 0 /* to debug memory management problems */
+ fprintf(stderr, "freeing %s/%s (at %p)\n",
+ G_OBJECT_TYPE_NAME(object), snippet->name, *value);
+#endif
if (snippet->type & SNIPPET_NODE) {
g_object_unref(*value);
} else {
@@ -1047,6 +1053,7 @@ lasso_node_build_xmlNode_from_snippets(LassoNode *node, xmlNode *xmlnode,
case SNIPPET_NODE_IN_CHILD:
t = xmlNewTextChild(xmlnode, NULL, snippet->name, NULL);
xmlAddChild(t, lasso_node_get_xmlNode(LASSO_NODE(value)));
+ break;
case SNIPPET_LIST_NODES:
elem = (GList *)value;
while (elem) {
@@ -1065,6 +1072,9 @@ lasso_node_build_xmlNode_from_snippets(LassoNode *node, xmlNode *xmlnode,
elem = g_list_next(elem);
}
break;
+ case SNIPPET_INTEGER:
+ case SNIPPET_BOOLEAN:
+ g_assert_not_reached();
}
if (snippet->type & SNIPPET_INTEGER)
g_free(str);