summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lasso/id-wsf-2.0/soap_binding.c23
-rw-r--r--lasso/id-wsf-2.0/soap_binding.h3
2 files changed, 26 insertions, 0 deletions
diff --git a/lasso/id-wsf-2.0/soap_binding.c b/lasso/id-wsf-2.0/soap_binding.c
index ebc7c62b..32a46b50 100644
--- a/lasso/id-wsf-2.0/soap_binding.c
+++ b/lasso/id-wsf-2.0/soap_binding.c
@@ -423,3 +423,26 @@ lasso_soap_envelope_set_sb2_user_interaction_hint(LassoSoapEnvelope *soap_envelo
lasso_release_string(user_interaction->interact);
}
}
+
+/**
+ * lasso_soap_envelope_get_soap_fault:
+ * @soap_envelope: a #LassoSoapEnvelope
+ * @create:(default FALSE): whether to create the SOAP Fault
+ *
+ * Return the first SOAP Fault in the Body of the soap message @soap_envelope.
+ *
+ * Return value:(transfer none)(allow-none): a #LassoSoapFault object or NULL.
+ */
+LassoSoapFault*
+lasso_soap_envelope_get_soap_fault(LassoSoapEnvelope *soap_envelope, gboolean create)
+{
+ LassoSoapFault *fault;
+
+ if (! LASSO_IS_SOAP_ENVELOPE(soap_envelope) || ! LASSO_SOAP_BODY(soap_envelope->Body))
+ return NULL;
+
+ fault = (LassoSoapFault*)_get_node(&soap_envelope->Body->any, LASSO_TYPE_SOAP_FAULT, NULL, NULL, NULL, create);
+
+ return fault;
+}
+
diff --git a/lasso/id-wsf-2.0/soap_binding.h b/lasso/id-wsf-2.0/soap_binding.h
index c04593d0..209b44f9 100644
--- a/lasso/id-wsf-2.0/soap_binding.h
+++ b/lasso/id-wsf-2.0/soap_binding.h
@@ -95,6 +95,9 @@ LASSO_EXPORT void lasso_soap_envelope_add_action(LassoSoapEnvelope *soap_envelop
LASSO_EXPORT LassoSoapDetail *lasso_soap_fault_get_detail(LassoSoapFault *soap_fault,
gboolean create);
+LASSO_EXPORT LassoSoapFault* lasso_soap_envelope_get_soap_fault(LassoSoapEnvelope *soap_envelope,
+ gboolean create);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */