diff options
| author | Emmanuel Raviart <eraviart@entrouvert.com> | 2004-12-08 12:47:56 +0000 |
|---|---|---|
| committer | Emmanuel Raviart <eraviart@entrouvert.com> | 2004-12-08 12:47:56 +0000 |
| commit | bbe903090be887a0b7152f71e5a6ed6d85fdc998 (patch) | |
| tree | 161d0f5280c7db999ebb1f79e04d37dcaeca65d8 | |
| parent | 1332c59d56269e0218f75b046a71f7be903273a7 (diff) | |
For Swig, corrected server providerIds.
Added providerIds to identities and sessions.
| -rw-r--r-- | lasso/id-ff/identity.c | 6 | ||||
| -rw-r--r-- | lasso/id-ff/identity.h | 2 | ||||
| -rw-r--r-- | swig/Lasso.i | 35 |
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 */ |
