summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmmanuel Raviart <eraviart@entrouvert.com>2004-12-08 12:47:56 +0000
committerEmmanuel Raviart <eraviart@entrouvert.com>2004-12-08 12:47:56 +0000
commitbbe903090be887a0b7152f71e5a6ed6d85fdc998 (patch)
tree161d0f5280c7db999ebb1f79e04d37dcaeca65d8
parent1332c59d56269e0218f75b046a71f7be903273a7 (diff)
For Swig, corrected server providerIds.
Added providerIds to identities and sessions.
-rw-r--r--lasso/id-ff/identity.c6
-rw-r--r--lasso/id-ff/identity.h2
-rw-r--r--swig/Lasso.i35
3 files changed, 30 insertions, 13 deletions
diff --git a/lasso/id-ff/identity.c b/lasso/id-ff/identity.c
index 3bd38922..abd9f74a 100644
--- a/lasso/id-ff/identity.c
+++ b/lasso/id-ff/identity.c
@@ -48,6 +48,12 @@ lasso_identity_add_federation(LassoIdentity *identity, LassoFederation *federati
return 0;
}
+LassoFederation*
+lasso_identity_get_federation(LassoIdentity *identity, gchar *providerID)
+{
+ return g_hash_table_lookup(identity->federations, providerID);
+}
+
gint
lasso_identity_remove_federation(LassoIdentity *identity, char *remote_providerID)
{
diff --git a/lasso/id-ff/identity.h b/lasso/id-ff/identity.h
index e5bff7c4..0985897d 100644
--- a/lasso/id-ff/identity.h
+++ b/lasso/id-ff/identity.h
@@ -64,6 +64,8 @@ LASSO_EXPORT LassoIdentity* lasso_identity_new(void);
LASSO_EXPORT gint lasso_identity_add_federation(LassoIdentity *identity,
LassoFederation *federation);
+LASSO_EXPORT LassoFederation* lasso_identity_get_federation(
+ LassoIdentity *identity, gchar *providerID);
LASSO_EXPORT gint lasso_identity_remove_federation(LassoIdentity *identity,
char *remote_providerID);
diff --git a/swig/Lasso.i b/swig/Lasso.i
index 903120a7..f66cab66 100644
--- a/swig/Lasso.i
+++ b/swig/Lasso.i
@@ -209,6 +209,17 @@ int lasso_init(void);
#endif
int lasso_shutdown(void);
+/* Utilities */
+
+%{
+
+void add_key_to_array(gchar *key, gpointer pointer, GPtrArray *array)
+{
+ g_ptr_array_add(array, g_strdup(key));
+}
+
+%}
+
/***********************************************************************
* Constants
@@ -615,6 +626,7 @@ typedef struct {
#if defined(SWIGPYTHON)
%rename(__getitem__) getitem;
#endif
+ %newobject getitem;
%exception getitem {
if (arg2 < 0 || arg2 >= arg1->len) {
char errorMsg[256];
@@ -624,7 +636,7 @@ typedef struct {
$action
}
gchar *getitem(int index) {
- return g_ptr_array_index(self, index);
+ return g_strdup(g_ptr_array_index(self, index));
}
%exception getitem;
@@ -1138,17 +1150,10 @@ gchar *LassoServer_providerId_get(LassoServer *self) {
}
/* providerIds */
-void LassoServer_add_providerId_to_array(
- gchar *key, LassoProvider *provider, LassoProviderIds *providerIds)
-{
- g_ptr_array_add(providerIds, g_strdup(provider->ProviderID));
-}
#define LassoServer_get_providerIds LassoServer_providerIds_get
LassoProviderIds *LassoServer_providerIds_get(LassoServer *self) {
GPtrArray *providerIds = g_ptr_array_sized_new(g_hash_table_size(self->providers));
- g_hash_table_foreach(
- self->providers, (GHFunc) LassoServer_add_providerId_to_array,
- providerIds);
+ g_hash_table_foreach(self->providers, (GHFunc) add_key_to_array, providerIds);
return providerIds;
}
@@ -1187,6 +1192,7 @@ typedef struct {
gboolean isDirty;
%immutable providerIds;
+ %newobject providerIds_get;
LassoProviderIds *providerIds;
/* Constructor, Destructor & Static Methods */
@@ -1218,8 +1224,9 @@ gboolean LassoIdentity_isDirty_get(LassoIdentity *self) {
/* providerIds */
#define LassoIdentity_get_providerIds LassoIdentity_providerIds_get
LassoProviderIds *LassoIdentity_providerIds_get(LassoIdentity *self) {
- return NULL;
- /* return self->providerIDs; */
+ GPtrArray *providerIds = g_ptr_array_sized_new(g_hash_table_size(self->federations));
+ g_hash_table_foreach(self->federations, (GHFunc) add_key_to_array, providerIds);
+ return providerIds;
}
@@ -1256,6 +1263,7 @@ typedef struct {
gboolean isDirty;
%immutable providerIds;
+ %newobject providerIds_get;
LassoProviderIds *providerIds;
/* Constructor, destructor & static methods */
@@ -1290,8 +1298,9 @@ gboolean LassoSession_isDirty_get(LassoSession *self) {
/* providerIds */
#define LassoSession_get_providerIds LassoSession_providerIds_get
LassoProviderIds *LassoSession_providerIds_get(LassoSession *self) {
- return NULL; /* XXX */
- /* return self->providerIDs; */
+ GPtrArray *providerIds = g_ptr_array_sized_new(g_hash_table_size(self->assertions));
+ g_hash_table_foreach(self->assertions, (GHFunc) add_key_to_array, providerIds);
+ return providerIds;
}
/* Constructors, destructors & static methods implementations */