summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas Clapies <nclapies@entrouvert.com>2005-03-11 16:24:02 +0000
committerNicolas Clapies <nclapies@entrouvert.com>2005-03-11 16:24:02 +0000
commit4d13c7af97ecd84bbfb62c745bc286ecc01b519d (patch)
tree68f3cfc6490d6b7270f16934badabe4f73a088cc
parenta0d8cca4b48cbe4d80783ec5b9fc96e540663554 (diff)
downloadlasso-4d13c7af97ecd84bbfb62c745bc286ecc01b519d.tar.gz
lasso-4d13c7af97ecd84bbfb62c745bc286ecc01b519d.tar.xz
lasso-4d13c7af97ecd84bbfb62c745bc286ecc01b519d.zip
Added liberty soap binding extension.
-rw-r--r--lasso/xml/Makefile.am8
-rw-r--r--lasso/xml/soap_binding_ext_credential.c124
-rw-r--r--lasso/xml/soap_binding_ext_credential.h81
-rw-r--r--lasso/xml/soap_binding_ext_credentials_context.c130
-rw-r--r--lasso/xml/soap_binding_ext_credentials_context.h85
-rw-r--r--lasso/xml/soap_binding_ext_service_instance_update.c140
-rw-r--r--lasso/xml/soap_binding_ext_service_instance_update.h87
-rw-r--r--lasso/xml/soap_binding_ext_timeout.c125
-rw-r--r--lasso/xml/soap_binding_ext_timeout.h75
-rw-r--r--lasso/xml/strings.h7
10 files changed, 860 insertions, 2 deletions
diff --git a/lasso/xml/Makefile.am b/lasso/xml/Makefile.am
index d2428529..b1188847 100644
--- a/lasso/xml/Makefile.am
+++ b/lasso/xml/Makefile.am
@@ -103,6 +103,10 @@ liblasso_xml_la_SOURCES = \
samlp_status.c \
samlp_status_code.c \
soap_binding_correlation.c \
+ soap_binding_ext_credential.c \
+ soap_binding_ext_credentials_context.c \
+ soap_binding_ext_service_instance_update.c \
+ soap_binding_ext_timeout.c \
soap_body.c \
soap_envelope.c \
soap_header.c \
@@ -203,6 +207,10 @@ liblassoinclude_HEADERS = \
samlp_status.h \
samlp_status_code.h \
soap_binding_correlation.h \
+ soap_binding_ext_credential.h \
+ soap_binding_ext_credentials_context.h \
+ soap_binding_ext_service_instance_update.h \
+ soap_binding_ext_timeout.h \
soap_body.h \
soap_envelope.h \
soap_header.h \
diff --git a/lasso/xml/soap_binding_ext_credential.c b/lasso/xml/soap_binding_ext_credential.c
new file mode 100644
index 00000000..9da875b5
--- /dev/null
+++ b/lasso/xml/soap_binding_ext_credential.c
@@ -0,0 +1,124 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004, 2005 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: See AUTHORS file in top-level directory.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <lasso/xml/soap_binding_ext_credential.h>
+
+/*
+ * Schema fragments (liberty-idwsf-soap-binding-v1.1.xsd - extension avril 2004):
+ *
+ * <xs:element name="Credential" minOccurs="0" maxOccurs="unbounded">
+ * <xs:complexType>
+ * <xs:sequence>
+ * <xs:any namespace="##any" processContents="lax"/>
+ * </xs:sequence>
+ * <xs:attribute name="notOnOrAfter" type="xs:dateTime" use="optional"/>
+ * </xs:complexType>
+ * </xs:element>
+ *
+ */
+
+/*****************************************************************************/
+/* private methods */
+/*****************************************************************************/
+
+static struct XmlSnippet schema_snippets[] = {
+ { "any", SNIPPET_LIST_NODES,
+ G_STRUCT_OFFSET(LassoSoapBindingExtCredential, any) },
+ { "notOnOrAfter", SNIPPET_ATTRIBUTE,
+ G_STRUCT_OFFSET(LassoSoapBindingExtCredential, notOnOrAfter) },
+ { NULL, 0, 0}
+};
+
+/*****************************************************************************/
+/* instance and class init functions */
+/*****************************************************************************/
+
+static void
+instance_init(LassoSoapBindingExtCredential *node)
+{
+ node->any = NULL;
+ node->notOnOrAfter = NULL;
+}
+
+static void
+class_init(LassoSoapBindingExtCredentialClass *klass)
+{
+ LassoNodeClass *nclass = LASSO_NODE_CLASS(klass);
+
+ nclass->node_data = g_new0(LassoNodeClassData, 1);
+ lasso_node_class_set_nodename(nclass, "Credential");
+ lasso_node_class_set_ns(nclass, LASSO_SOAP_BINDING_EXT_HREF, LASSO_SOAP_BINDING_EXT_PREFIX);
+ lasso_node_class_add_snippets(nclass, schema_snippets);
+}
+
+GType
+lasso_soap_binding_ext_credential_get_type()
+{
+ static GType this_type = 0;
+
+ if (!this_type) {
+ static const GTypeInfo this_info = {
+ sizeof (LassoSoapBindingExtCredentialClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) class_init,
+ NULL,
+ NULL,
+ sizeof(LassoSoapBindingExtCredential),
+ 0,
+ (GInstanceInitFunc) instance_init,
+ };
+
+ this_type = g_type_register_static(LASSO_TYPE_NODE,
+ "LassoSoapBindingExtCredential", &this_info, 0);
+ }
+ return this_type;
+}
+
+LassoSoapBindingExtCredential*
+lasso_soap_binding_ext_credential_new(LassoNode *any)
+{
+ g_return_val_if_fail(LASSO_IS_NODE(any) != FALSE, NULL);
+
+ LassoSoapBindingExtCredential *node;
+
+ node = g_object_new(LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIAL, NULL);
+
+ node->any = g_list_append(node->any, any);
+
+ return node;
+}
+
+LassoSoapBindingExtCredential*
+lasso_soap_binding_ext_credential_new_from_message(const gchar *message)
+{
+ LassoSoapBindingExtCredential *node;
+
+ g_return_val_if_fail(message != NULL, NULL);
+
+ node = g_object_new(LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIAL, NULL);
+ lasso_node_init_from_message(LASSO_NODE(node), message);
+
+ return node;
+}
diff --git a/lasso/xml/soap_binding_ext_credential.h b/lasso/xml/soap_binding_ext_credential.h
new file mode 100644
index 00000000..c2b57242
--- /dev/null
+++ b/lasso/xml/soap_binding_ext_credential.h
@@ -0,0 +1,81 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004, 2005 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: See AUTHORS file in top-level directory.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef __LASSO_SOAP_BINDING_EXT_CREDENTIAL_H__
+#define __LASSO_SOAP_BINDING_EXT_CREDENTIAL_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <lasso/xml/xml.h>
+
+#define LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIAL \
+ (lasso_soap_binding_ext_credential_get_type())
+#define LASSO_SOAP_BINDING_EXT_CREDENTIAL(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
+ LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIAL, \
+ LassoSoapBindingExtCredential))
+#define LASSO_SOAP_BINDING_EXT_CREDENTIAL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \
+ LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIAL, \
+ LassoSoapBindingExtCredentialClass))
+#define LASSO_IS_SOAP_BINDING_EXT_CREDENTIAL(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj), \
+ LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIAL))
+#define LASSO_IS_SOAP_BINDING_EXT_CREDENTIAL_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), \
+ LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIAL))
+#define LASSO_SOAP_BINDING_EXT_CREDENTIAL_GET_CLASS(o) \
+ (G_TYPE_INSTANCE_GET_CLASS ((o), \
+ LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIAL, \
+ LassoSoapBindingExtCredentialClass))
+
+typedef struct _LassoSoapBindingExtCredential LassoSoapBindingExtCredential;
+typedef struct _LassoSoapBindingExtCredentialClass \
+ LassoSoapBindingExtCredentialClass;
+
+struct _LassoSoapBindingExtCredential {
+ LassoNode parent;
+
+ GList *any;
+
+ gchar *notOnOrAfter;
+};
+
+struct _LassoSoapBindingExtCredentialClass {
+ LassoNodeClass parent;
+};
+
+LASSO_EXPORT GType lasso_soap_binding_ext_credential_get_type(void);
+
+LASSO_EXPORT LassoSoapBindingExtCredential* \
+ lasso_soap_binding_ext_credential_new(LassoNode *any);
+
+LASSO_EXPORT LassoSoapBindingExtCredential* \
+ lasso_soap_binding_ext_credential_new_from_message(const gchar *message);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __LASSO_SOAP_BINDING_EXT_CREDENTIAL_H__ */
diff --git a/lasso/xml/soap_binding_ext_credentials_context.c b/lasso/xml/soap_binding_ext_credentials_context.c
new file mode 100644
index 00000000..4fdf34ce
--- /dev/null
+++ b/lasso/xml/soap_binding_ext_credentials_context.c
@@ -0,0 +1,130 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004, 2005 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: See AUTHORS file in top-level directory.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <lasso/xml/soap_binding_ext_credentials_context.h>
+
+/*
+ * Schema fragments (liberty-idwsf-soap-binding-v1.1.xsd - extension avril 2004):
+ *
+ * <xs:complexType name="CredentialsContextType">
+ * <xs:sequence>
+ * <xs:element ref="lib:RequestAuthnContext" minOccurs="0"/>
+ * <xs:element name="SecurityMechID" type="xs: anyURI" minOccurs="0" maxOccurs="unbounded"/>
+ * </xs:sequence>
+ * <xs:attribute name="id" type="xs:ID" use="optional"/>
+ * <xs:attribute ref="S:mustUnderstand" use="optional"/>
+ * <xs:attribute ref="S:actor" use="optional"/>
+ * </xs:complexType>
+ * <xs:element name="CredentialsContext" type="CredentialsContextType"/>
+ *
+ */
+
+/*****************************************************************************/
+/* private methods */
+/*****************************************************************************/
+
+static struct XmlSnippet schema_snippets[] = {
+ { "RequestAuthnContext", SNIPPET_NODE,
+ G_STRUCT_OFFSET(LassoSoapBindingExtCredentialsContext, RequestAuthnContext) },
+ { "SecurityMechID", SNIPPET_CONTENT,
+ G_STRUCT_OFFSET(LassoSoapBindingExtCredentialsContext, SecurityMechID) },
+ { "id", SNIPPET_ATTRIBUTE, G_STRUCT_OFFSET(LassoSoapBindingExtCredentialsContext, id) },
+ { "mustUnderstand", SNIPPET_ATTRIBUTE,
+ G_STRUCT_OFFSET(LassoSoapBindingExtCredentialsContext, mustUnderstand) },
+ { "actor", SNIPPET_ATTRIBUTE,
+ G_STRUCT_OFFSET(LassoSoapBindingExtCredentialsContext, actor) },
+ { NULL, 0, 0}
+};
+
+/*****************************************************************************/
+/* instance and class init functions */
+/*****************************************************************************/
+
+static void
+instance_init(LassoSoapBindingExtCredentialsContext *node)
+{
+ node->RequestAuthnContext = NULL;
+ node->SecurityMechID = NULL;
+ node->id = NULL;
+ node->mustUnderstand = NULL;
+ node->actor = NULL;
+}
+
+static void
+class_init(LassoSoapBindingExtCredentialsContextClass *klass)
+{
+ LassoNodeClass *nclass = LASSO_NODE_CLASS(klass);
+
+ nclass->node_data = g_new0(LassoNodeClassData, 1);
+ lasso_node_class_set_nodename(nclass, "CredentialsContext");
+ lasso_node_class_set_ns(nclass, LASSO_SOAP_BINDING_EXT_HREF, LASSO_SOAP_BINDING_EXT_PREFIX);
+ lasso_node_class_add_snippets(nclass, schema_snippets);
+}
+
+GType
+lasso_soap_binding_ext_credentials_context_get_type()
+{
+ static GType this_type = 0;
+
+ if (!this_type) {
+ static const GTypeInfo this_info = {
+ sizeof (LassoSoapBindingExtCredentialsContextClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) class_init,
+ NULL,
+ NULL,
+ sizeof(LassoSoapBindingExtCredentialsContext),
+ 0,
+ (GInstanceInitFunc) instance_init,
+ };
+
+ this_type = g_type_register_static(LASSO_TYPE_NODE,
+ "LassoSoapBindingExtCredentialsContext", &this_info, 0);
+ }
+ return this_type;
+}
+
+LassoSoapBindingExtCredentialsContext*
+lasso_soap_binding_ext_credentials_context_new()
+{
+ LassoSoapBindingExtCredentialsContext *node;
+
+ node = g_object_new(LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT, NULL);
+
+ return node;
+}
+
+LassoSoapBindingExtCredentialsContext*
+lasso_soap_binding_ext_credentials_context_new_from_message(const gchar *message)
+{
+ LassoSoapBindingExtCredentialsContext *node;
+
+ g_return_val_if_fail(message != NULL, NULL);
+
+ node = g_object_new(LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT, NULL);
+ lasso_node_init_from_message(LASSO_NODE(node), message);
+
+ return node;
+}
diff --git a/lasso/xml/soap_binding_ext_credentials_context.h b/lasso/xml/soap_binding_ext_credentials_context.h
new file mode 100644
index 00000000..8405de23
--- /dev/null
+++ b/lasso/xml/soap_binding_ext_credentials_context.h
@@ -0,0 +1,85 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004, 2005 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: See AUTHORS file in top-level directory.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef __LASSO_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT_H__
+#define __LASSO_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <lasso/xml/xml.h>
+#include <lasso/xml/lib_request_authn_context.h>
+
+#define LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT \
+ (lasso_soap_binding_ext_credentials_context_get_type())
+#define LASSO_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
+ LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT, \
+ LassoSoapBindingExtCredentialsContext))
+#define LASSO_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \
+ LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT, \
+ LassoSoapBindingExtCredentialsContextClass))
+#define LASSO_IS_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj), \
+ LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT))
+#define LASSO_IS_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), \
+ LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT))
+#define LASSO_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT_GET_CLASS(o) \
+ (G_TYPE_INSTANCE_GET_CLASS ((o), \
+ LASSO_TYPE_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT, \
+ LassoSoapBindingExtCredentialsContextClass))
+
+typedef struct _LassoSoapBindingExtCredentialsContext LassoSoapBindingExtCredentialsContext;
+typedef struct _LassoSoapBindingExtCredentialsContextClass \
+ LassoSoapBindingExtCredentialsContextClass;
+
+struct _LassoSoapBindingExtCredentialsContext {
+ LassoNode parent;
+
+ LassoLibRequestAuthnContext *RequestAuthnContext;
+ gchar *SecurityMechID;
+
+ gchar *id;
+ gchar *mustUnderstand;
+ gchar *actor;
+};
+
+struct _LassoSoapBindingExtCredentialsContextClass {
+ LassoNodeClass parent;
+};
+
+LASSO_EXPORT GType lasso_soap_binding_ext_credentials_context_get_type(void);
+
+LASSO_EXPORT LassoSoapBindingExtCredentialsContext* \
+ lasso_soap_binding_ext_credentials_context_new();
+
+LASSO_EXPORT LassoSoapBindingExtCredentialsContext* \
+ lasso_soap_binding_ext_credentials_context_new_from_message(const gchar *message);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __LASSO_SOAP_BINDING_EXT_CREDENTIALS_CONTEXT_H__ */
diff --git a/lasso/xml/soap_binding_ext_service_instance_update.c b/lasso/xml/soap_binding_ext_service_instance_update.c
new file mode 100644
index 00000000..42fd9542
--- /dev/null
+++ b/lasso/xml/soap_binding_ext_service_instance_update.c
@@ -0,0 +1,140 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004, 2005 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: See AUTHORS file in top-level directory.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <lasso/xml/soap_binding_ext_service_instance_update.h>
+
+/*
+ * Schema fragments (liberty-idwsf-soap-binding-v1.1.xsd - extension avril 2004):
+ *
+ * <xs:complexType name="ServiceInstanceUpdateType">
+ * <xs:sequence>
+ * <xs:element name="SecurityMechID" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded"/>
+ * <xs:element name="Credential" minOccurs="0" maxOccurs="unbounded">
+ * <xs:complexType>
+ * <xs:sequence>
+ * <xs:any namespace="##any" processContents="lax"/>
+ * </xs:sequence>
+ * <xs:attribute name="notOnOrAfter" type="xs:dateTime" use="optional"/>
+ * </xs:complexType>
+ * </xs:element>
+ * <xs:element name="Endpoint" type="xs:anyURI" minOccurs="0"/>
+ * </xs:sequence>
+ * <xs:attribute name="id" type="xs:ID" use="optional"/>
+ * <xs:attribute ref="S:mustUnderstand" use="optional"/>
+ * <xs:attribute ref="S:actor" use="optional"/>
+ * </xs:complexType>
+ *
+ */
+
+/*****************************************************************************/
+/* private methods */
+/*****************************************************************************/
+
+static struct XmlSnippet schema_snippets[] = {
+ { "SecurityMechID", SNIPPET_CONTENT,
+ G_STRUCT_OFFSET(LassoSoapBindingExtServiceInstanceUpdate, SecurityMechID) },
+ { "Credential", SNIPPET_NODE,
+ G_STRUCT_OFFSET(LassoSoapBindingExtServiceInstanceUpdate, Credential) },
+ { "Endpoint", SNIPPET_CONTENT,
+ G_STRUCT_OFFSET(LassoSoapBindingExtServiceInstanceUpdate, Endpoint) },
+ { "id", SNIPPET_ATTRIBUTE, G_STRUCT_OFFSET(LassoSoapBindingExtServiceInstanceUpdate, id) },
+ { "mustUnderstand", SNIPPET_ATTRIBUTE,
+ G_STRUCT_OFFSET(LassoSoapBindingExtServiceInstanceUpdate, mustUnderstand) },
+ { "actor", SNIPPET_ATTRIBUTE,
+ G_STRUCT_OFFSET(LassoSoapBindingExtServiceInstanceUpdate, actor) },
+ { NULL, 0, 0}
+};
+
+/*****************************************************************************/
+/* instance and class init functions */
+/*****************************************************************************/
+
+static void
+instance_init(LassoSoapBindingExtServiceInstanceUpdate *node)
+{
+ node->SecurityMechID = NULL;
+ node->Credential = NULL;
+ node->Endpoint = NULL;
+ node->id = NULL;
+ node->mustUnderstand = NULL;
+ node->actor = NULL;
+}
+
+static void
+class_init(LassoSoapBindingExtServiceInstanceUpdateClass *klass)
+{
+ LassoNodeClass *nclass = LASSO_NODE_CLASS(klass);
+
+ nclass->node_data = g_new0(LassoNodeClassData, 1);
+ lasso_node_class_set_nodename(nclass, "ServiceInstanceUpdate");
+ lasso_node_class_set_ns(nclass, LASSO_SOAP_BINDING_EXT_HREF, LASSO_SOAP_BINDING_EXT_PREFIX);
+ lasso_node_class_add_snippets(nclass, schema_snippets);
+}
+
+GType
+lasso_soap_binding_ext_service_instance_update_get_type()
+{
+ static GType this_type = 0;
+
+ if (!this_type) {
+ static const GTypeInfo this_info = {
+ sizeof (LassoSoapBindingExtServiceInstanceUpdateClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) class_init,
+ NULL,
+ NULL,
+ sizeof(LassoSoapBindingExtServiceInstanceUpdate),
+ 0,
+ (GInstanceInitFunc) instance_init,
+ };
+
+ this_type = g_type_register_static(LASSO_TYPE_NODE,
+ "LassoSoapBindingExtServiceInstanceUpdate", &this_info, 0);
+ }
+ return this_type;
+}
+
+LassoSoapBindingExtServiceInstanceUpdate*
+lasso_soap_binding_ext_service_instance_update_new()
+{
+ LassoSoapBindingExtServiceInstanceUpdate *node;
+
+ node = g_object_new(LASSO_TYPE_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE, NULL);
+
+ return node;
+}
+
+LassoSoapBindingExtServiceInstanceUpdate*
+lasso_soap_binding_ext_service_instance_update_new_from_message(const gchar *message)
+{
+ LassoSoapBindingExtServiceInstanceUpdate *node;
+
+ g_return_val_if_fail(message != NULL, NULL);
+
+ node = g_object_new(LASSO_TYPE_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE, NULL);
+ lasso_node_init_from_message(LASSO_NODE(node), message);
+
+ return node;
+}
diff --git a/lasso/xml/soap_binding_ext_service_instance_update.h b/lasso/xml/soap_binding_ext_service_instance_update.h
new file mode 100644
index 00000000..63024776
--- /dev/null
+++ b/lasso/xml/soap_binding_ext_service_instance_update.h
@@ -0,0 +1,87 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004, 2005 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: See AUTHORS file in top-level directory.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef __LASSO_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE_H__
+#define __LASSO_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <lasso/xml/xml.h>
+#include <lasso/xml/soap_binding_ext_credential.h>
+
+#define LASSO_TYPE_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE \
+ (lasso_soap_binding_ext_service_instance_update_get_type())
+#define LASSO_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
+ LASSO_TYPE_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE, \
+ LassoSoapBindingExtServiceInstanceUpdate))
+#define LASSO_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_CAST((klass), \
+ LASSO_TYPE_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE, \
+ LassoSoapBindingExtServiceInstanceUpdateClass))
+#define LASSO_IS_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj), \
+ LASSO_TYPE_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE))
+#define LASSO_IS_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), \
+ LASSO_TYPE_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE))
+#define LASSO_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE_GET_CLASS(o) \
+ (G_TYPE_INSTANCE_GET_CLASS ((o), \
+ LASSO_TYPE_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE, \
+ LassoSoapBindingExtServiceInstanceUpdateClass))
+
+typedef struct _LassoSoapBindingExtServiceInstanceUpdate LassoSoapBindingExtServiceInstanceUpdate;
+typedef struct _LassoSoapBindingExtServiceInstanceUpdateClass \
+ LassoSoapBindingExtServiceInstanceUpdateClass;
+
+struct _LassoSoapBindingExtServiceInstanceUpdate {
+ LassoNode parent;
+
+ gchar *SecurityMechID;
+ LassoSoapBindingExtCredential *Credential;
+ gchar *Endpoint;
+
+ gchar *id;
+ gchar *mustUnderstand;
+ gchar *actor;
+};
+
+struct _LassoSoapBindingExtServiceInstanceUpdateClass {
+ LassoNodeClass parent;
+};
+
+LASSO_EXPORT GType lasso_soap_binding_ext_service_instance_update_get_type(void);
+
+LASSO_EXPORT LassoSoapBindingExtServiceInstanceUpdate* \
+ lasso_soap_binding_ext_service_instance_update_new();
+
+LASSO_EXPORT LassoSoapBindingExtServiceInstanceUpdate* \
+ lasso_soap_binding_ext_service_instance_update_new_from_message(const gchar *message);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __LASSO_SOAP_BINDING_EXT_SERVICE_INSTANCE_UPDATE_H__ */
diff --git a/lasso/xml/soap_binding_ext_timeout.c b/lasso/xml/soap_binding_ext_timeout.c
new file mode 100644
index 00000000..b0447b24
--- /dev/null
+++ b/lasso/xml/soap_binding_ext_timeout.c
@@ -0,0 +1,125 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004, 2005 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: See AUTHORS file in top-level directory.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <lasso/xml/soap_binding_ext_timeout.h>
+
+/*
+ * Schema fragments (liberty-idwsf-soap-binding-v1.1.xsd - extension avril 2004):
+ *
+ * <xs:complexType name="TimeoutType">
+ * <xs:attribute name="maxProcessingTime" type="xs:integer" use="required"/>
+ * <xs:attribute name="id" type="xs:ID" use="optional"/>
+ * <xs:attribute ref="S:mustUnderstand" use="optional"/>
+ * <xs:attribute ref="S:actor" use="optional"/>
+ * </xs:complexType>
+ * <xs:element name="Timeout" type="TimeoutType"/>
+ *
+ */
+
+/*****************************************************************************/
+/* private methods */
+/*****************************************************************************/
+
+static struct XmlSnippet schema_snippets[] = {
+ { "maxProcessingTime", SNIPPET_ATTRIBUTE | SNIPPET_INTEGER, \
+ G_STRUCT_OFFSET(LassoSoapBindingExtTimeout, maxProcessingTime) },
+ { "id", SNIPPET_ATTRIBUTE, G_STRUCT_OFFSET(LassoSoapBindingExtTimeout, id) },
+ { "mustUnderstand", SNIPPET_ATTRIBUTE,
+ G_STRUCT_OFFSET(LassoSoapBindingExtTimeout, mustUnderstand) },
+ { "actor", SNIPPET_ATTRIBUTE, G_STRUCT_OFFSET(LassoSoapBindingExtTimeout, actor) },
+ { NULL, 0, 0}
+};
+
+/*****************************************************************************/
+/* instance and class init functions */
+/*****************************************************************************/
+
+static void
+instance_init(LassoSoapBindingExtTimeout *node)
+{
+ node->maxProcessingTime = NULL;
+ node->id = NULL;
+ node->mustUnderstand = NULL;
+ node->actor = NULL;
+}
+
+static void
+class_init(LassoSoapBindingExtTimeoutClass *klass)
+{
+ LassoNodeClass *nclass = LASSO_NODE_CLASS(klass);
+
+ nclass->node_data = g_new0(LassoNodeClassData, 1);
+ lasso_node_class_set_nodename(nclass, "Timeout");
+ lasso_node_class_set_ns(nclass, LASSO_SOAP_BINDING_EXT_HREF, LASSO_SOAP_BINDING_EXT_PREFIX);
+ lasso_node_class_add_snippets(nclass, schema_snippets);
+}
+
+GType
+lasso_soap_binding_ext_timeout_get_type()
+{
+ static GType this_type = 0;
+
+ if (!this_type) {
+ static const GTypeInfo this_info = {
+ sizeof (LassoSoapBindingExtTimeoutClass),
+ NULL,
+ NULL,
+ (GClassInitFunc) class_init,
+ NULL,
+ NULL,
+ sizeof(LassoSoapBindingExtTimeout),
+ 0,
+ (GInstanceInitFunc) instance_init,
+ };
+
+ this_type = g_type_register_static(LASSO_TYPE_NODE,
+ "LassoSoapBindingExtTimeout", &this_info, 0);
+ }
+ return this_type;
+}
+
+LassoSoapBindingExtTimeout*
+lasso_soap_binding_ext_timeout_new(gint maxProcessingTime)
+{
+ LassoSoapBindingExtTimeout *node;
+
+ node = g_object_new(LASSO_TYPE_SOAP_BINDING_EXT_TIMEOUT, NULL);
+
+ node->maxProcessingTime = maxProcessingTime;
+
+ return node;
+}
+
+LassoSoapBindingExtTimeout*
+lasso_soap_binding_ext_timeout_new_from_message(const gchar *message)
+{
+ LassoSoapBindingExtTimeout *node;
+
+ g_return_val_if_fail(message != NULL, NULL);
+
+ node = g_object_new(LASSO_TYPE_SOAP_BINDING_EXT_TIMEOUT, NULL);
+ lasso_node_init_from_message(LASSO_NODE(node), message);
+
+ return node;
+}
diff --git a/lasso/xml/soap_binding_ext_timeout.h b/lasso/xml/soap_binding_ext_timeout.h
new file mode 100644
index 00000000..c1f648fc
--- /dev/null
+++ b/lasso/xml/soap_binding_ext_timeout.h
@@ -0,0 +1,75 @@
+/* $Id$
+ *
+ * Lasso - A free implementation of the Liberty Alliance specifications.
+ *
+ * Copyright (C) 2004, 2005 Entr'ouvert
+ * http://lasso.entrouvert.org
+ *
+ * Authors: See AUTHORS file in top-level directory.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef __LASSO_SOAP_BINDING_EXT_TIMEOUT_H__
+#define __LASSO_SOAP_BINDING_EXT_TIMEOUT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+#include <lasso/xml/xml.h>
+
+#define LASSO_TYPE_SOAP_BINDING_EXT_TIMEOUT (lasso_soap_binding_ext_timeout_get_type())
+#define LASSO_SOAP_BINDING_EXT_TIMEOUT(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), \
+ LASSO_TYPE_SOAP_BINDING_EXT_TIMEOUT, LassoSoapBindingExtTimeout))
+#define LASSO_SOAP_BINDING_EXT_TIMEOUT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), \
+ LASSO_TYPE_SOAP_BINDING_EXT_TIMEOUT, LassoSoapBindingExtTimeoutClass))
+#define LASSO_IS_SOAP_BINDING_EXT_TIMEOUT(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE((obj), LASSO_TYPE_SOAP_BINDING_EXT_TIMEOUT))
+#define LASSO_IS_SOAP_BINDING_EXT_TIMEOUT_CLASS(klass) \
+ (G_TYPE_CHECK_CLASS_TYPE ((klass), LASSO_TYPE_SOAP_BINDING_EXT_TIMEOUT))
+#define LASSO_SOAP_BINDING_EXT_TIMEOUT_GET_CLASS(o) \
+ (G_TYPE_INSTANCE_GET_CLASS ((o), \
+ LASSO_TYPE_SOAP_BINDING_EXT_TIMEOUT, LassoSoapBindingExtTimeoutClass))
+
+typedef struct _LassoSoapBindingExtTimeout LassoSoapBindingExtTimeout;
+typedef struct _LassoSoapBindingExtTimeoutClass \
+ LassoSoapBindingExtTimeoutClass;
+
+struct _LassoSoapBindingExtTimeout {
+ LassoNode parent;
+
+ gint maxProcessingTime;
+ gchar *id;
+ gchar *mustUnderstand;
+ gchar *actor;
+};
+
+struct _LassoSoapBindingExtTimeoutClass {
+ LassoNodeClass parent;
+};
+
+LASSO_EXPORT GType lasso_soap_binding_ext_timeout_get_type(void);
+
+LASSO_EXPORT LassoSoapBindingExtTimeout* lasso_soap_binding_ext_timeout_new(gint maxProcessingTime);
+
+LASSO_EXPORT LassoSoapBindingExtTimeout* \
+ lasso_soap_binding_ext_timeout_new_from_message(const gchar *message);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* __LASSO_SOAP_BINDING_EXT_TIMEOUT_H__ */
diff --git a/lasso/xml/strings.h b/lasso/xml/strings.h
index 00e4118f..99b9451b 100644
--- a/lasso/xml/strings.h
+++ b/lasso/xml/strings.h
@@ -280,12 +280,15 @@
/* SOAP */
/*****************************************************************************/
-#define LASSO_SOAP_ENV_HREF "http://schemas.xmlsoap.org/soap/envelope/"
-#define LASSO_SOAP_ENV_PREFIX "soap-env"
+#define LASSO_SOAP_ENV_HREF "http://schemas.xmlsoap.org/soap/envelope/"
+#define LASSO_SOAP_ENV_PREFIX "soap-env"
#define LASSO_SOAP_BINDING_HREF "urn:liberty:sb:2003-08"
#define LASSO_SOAP_BINDING_PREFIX "soap-binding"
+#define LASSO_SOAP_BINDING_EXT_HREF "urn:liberty:sb:2004-04"
+#define LASSO_SOAP_BINDING_EXT_PREFIX "soap-binding-ext"
+
/*****************************************************************************/
/* Others */
/*****************************************************************************/