summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrederic Peters <fpeters@entrouvert.com>2004-12-09 23:08:10 +0000
committerFrederic Peters <fpeters@entrouvert.com>2004-12-09 23:08:10 +0000
commit0dcd6f2f85fdf7b8324b7467955937033c8ae237 (patch)
treefc330e6fddf2adef3f1e1a05e54128323db91f67
parentfb715219d54492d545640562aa148f391451b587 (diff)
downloadlasso-0dcd6f2f85fdf7b8324b7467955937033c8ae237.tar.gz
lasso-0dcd6f2f85fdf7b8324b7467955937033c8ae237.tar.xz
lasso-0dcd6f2f85fdf7b8324b7467955937033c8ae237.zip
Moved LassoLogin to XmlSnippet; not completely since an enum is converted in
string and I'm not sure it is a good idea to 1) store them as integer or 2) adds the mapping value->string to xml.c. Also removed unused LassoLoginPrivate variable/struct/
-rw-r--r--lasso/id-ff/login.c73
1 files changed, 16 insertions, 57 deletions
diff --git a/lasso/id-ff/login.c b/lasso/id-ff/login.c
index 46b45486..57926808 100644
--- a/lasso/id-ff/login.c
+++ b/lasso/id-ff/login.c
@@ -31,11 +31,6 @@
#include <lasso/id-ff/login.h>
#include <lasso/id-ff/provider.h>
-struct _LassoLoginPrivate
-{
- gboolean dispose_has_run;
-};
-
/*****************************************************************************/
/* static methods/functions */
/*****************************************************************************/
@@ -1266,6 +1261,12 @@ lasso_login_process_response_msg(LassoLogin *login, gchar *response_msg)
/* private methods */
/*****************************************************************************/
+static struct XmlSnippet schema_snippets[] = {
+ { "AssertionArtifact", SNIPPET_CONTENT, G_STRUCT_OFFSET(LassoLogin, assertionArtifact) },
+ { "NameIDPolicy", SNIPPET_CONTENT, G_STRUCT_OFFSET(LassoLogin, nameIDPolicy) },
+ { NULL, 0, 0}
+};
+
static LassoNodeClass *parent_class = NULL;
static xmlNode*
@@ -1275,20 +1276,13 @@ get_xmlNode(LassoNode *node)
LassoLogin *login = LASSO_LOGIN(node);
xmlnode = parent_class->get_xmlNode(node);
- xmlNodeSetName(xmlnode, "Login");
xmlSetProp(xmlnode, "LoginDumpVersion", "2");
- if (login->assertionArtifact)
- xmlNewTextChild(xmlnode, NULL, "AssertionArtifact", login->assertionArtifact);
-
if (login->protocolProfile == LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_ART)
xmlNewTextChild(xmlnode, NULL, "ProtocolProfile", "Artifact");
if (login->protocolProfile == LASSO_LOGIN_PROTOCOL_PROFILE_BRWS_POST)
xmlNewTextChild(xmlnode, NULL, "ProtocolProfile", "POST");
- if (login->nameIDPolicy)
- xmlNewTextChild(xmlnode, NULL, "NameIDPolicy", login->nameIDPolicy);
-
return xmlnode;
}
@@ -1308,10 +1302,6 @@ init_from_xml(LassoNode *node, xmlNode *xmlnode)
t = t->next;
continue;
}
- if (strcmp(t->name, "AssertionArtifact") == 0)
- login->assertionArtifact = xmlNodeGetContent(t);
- if (strcmp(t->name, "NameIDPolicy") == 0)
- login->nameIDPolicy = xmlNodeGetContent(t);
if (strcmp(t->name, "ProtocolProfile") == 0) {
char *s;
s = xmlNodeGetContent(t);
@@ -1327,61 +1317,30 @@ init_from_xml(LassoNode *node, xmlNode *xmlnode)
}
/*****************************************************************************/
-/* overridden parent class methods */
-/*****************************************************************************/
-
-static void
-dispose(GObject *object)
-{
- LassoLogin *login = LASSO_LOGIN(object);
-
- if (login->private_data->dispose_has_run == TRUE) {
- return;
- }
- login->private_data->dispose_has_run = TRUE;
-
- debug("Login object 0x%x disposed ...", login);
-
- /* unref reference counted objects */
-
- G_OBJECT_CLASS(parent_class)->dispose(object);
-}
-
-static void
-finalize(GObject *object)
-{
- LassoLogin *login = LASSO_LOGIN(object);
-
- debug("Login object 0x%x finalized ...", login);
- g_free(login->assertionArtifact);
- g_free(login->private_data);
- G_OBJECT_CLASS(parent_class)->finalize(object);
-}
-
-/*****************************************************************************/
/* instance and class init functions */
/*****************************************************************************/
static void
instance_init(LassoLogin *login)
{
- login->private_data = g_new(LassoLoginPrivate, 1);
- login->private_data->dispose_has_run = FALSE;
-
login->protocolProfile = 0;
login->assertionArtifact = NULL;
+ login->nameIDPolicy = NULL;
+ login->http_method = 0;
}
static void
class_init(LassoLoginClass *klass)
{
- parent_class = g_type_class_peek_parent(klass);
-
- LASSO_NODE_CLASS(klass)->get_xmlNode = get_xmlNode;
- LASSO_NODE_CLASS(klass)->init_from_xml = init_from_xml;
+ LassoNodeClass *nclass = LASSO_NODE_CLASS(klass);
- G_OBJECT_CLASS(klass)->dispose = dispose;
- G_OBJECT_CLASS(klass)->finalize = finalize;
+ parent_class = g_type_class_peek_parent(klass);
+ nclass->get_xmlNode = get_xmlNode;
+ nclass->init_from_xml = init_from_xml;
+ nclass->node_data = g_new0(LassoNodeClassData, 1);
+ lasso_node_class_set_nodename(nclass, "Login");
+ lasso_node_class_set_ns(nclass, LASSO_LASSO_HREF, LASSO_LASSO_PREFIX);
+ lasso_node_class_add_snippets(nclass, schema_snippets);
}
GType