diff options
| author | Valery Febvre <vfebvre at easter-eggs.com> | 2004-07-28 16:17:07 +0000 |
|---|---|---|
| committer | Valery Febvre <vfebvre at easter-eggs.com> | 2004-07-28 16:17:07 +0000 |
| commit | 6bc0e66f643dc42617be3425b0a277229d60c5eb (patch) | |
| tree | c04529725daa34ed95977fa797d092c6b8fd3f52 | |
| parent | 4eca515b432f16b3ff07a19389e63660739eb580 (diff) | |
| download | lasso-6bc0e66f643dc42617be3425b0a277229d60c5eb.tar.gz lasso-6bc0e66f643dc42617be3425b0a277229d60c5eb.tar.xz lasso-6bc0e66f643dc42617be3425b0a277229d60c5eb.zip | |
Added lasso_server_copy() method
| -rw-r--r-- | lasso/id-ff/server.c | 31 | ||||
| -rw-r--r-- | lasso/id-ff/server.h | 36 |
2 files changed, 48 insertions, 19 deletions
diff --git a/lasso/id-ff/server.c b/lasso/id-ff/server.c index c7e77904..762d7a72 100644 --- a/lasso/id-ff/server.c +++ b/lasso/id-ff/server.c @@ -145,6 +145,35 @@ lasso_server_add_provider(LassoServer *server, return(0); } +LassoServer* +lasso_server_copy(LassoServer *server) +{ + LassoServer *copy; + LassoProvider *p; + guint i; + + g_return_val_if_fail(LASSO_IS_SERVER(server), NULL); + + copy = LASSO_SERVER(g_object_new(LASSO_TYPE_SERVER, NULL)); + + /* herited provider attrs */ + LASSO_PROVIDER(copy)->metadata = lasso_node_copy(LASSO_PROVIDER(server)->metadata); + LASSO_PROVIDER(copy)->public_key = g_strdup(LASSO_PROVIDER(server)->public_key); + LASSO_PROVIDER(copy)->ca_certificate = g_strdup(LASSO_PROVIDER(server)->ca_certificate); + /* server attrs */ + copy->providers = g_ptr_array_new(); + for(i=0; i<server->providers->len; i++) { + p = g_ptr_array_index(server->providers, i); + g_ptr_array_add(copy->providers, lasso_provider_copy(p)); + } + copy->providerID = g_strdup(server->providerID); + copy->private_key = g_strdup(server->private_key); + copy->certificate = g_strdup(server->certificate); + copy->signature_method = server->signature_method; + + return(copy); +} + void lasso_server_destroy(LassoServer *server) { @@ -218,7 +247,7 @@ lasso_server_dispose(LassoServer *server) } server->private->dispose_has_run = TRUE; - debug("Server object 0x%x finalized ...\n", server); + debug("Server object 0x%x disposed ...\n", server); /* free allocated memory for providers array */ for (i=0; i<server->providers->len; i++) { diff --git a/lasso/id-ff/server.h b/lasso/id-ff/server.h index 7734cea8..928db467 100644 --- a/lasso/id-ff/server.h +++ b/lasso/id-ff/server.h @@ -60,32 +60,32 @@ struct _LassoServerClass { LassoProviderClass parent; }; -LASSO_EXPORT GType lasso_server_get_type (void); +LASSO_EXPORT GType lasso_server_get_type (void); -LASSO_EXPORT LassoServer* lasso_server_new (gchar *metadata, - gchar *public_key, - gchar *private_key, - gchar *certificate, - guint signature_method); +LASSO_EXPORT LassoServer* lasso_server_new (gchar *metadata, + gchar *public_key, + gchar *private_key, + gchar *certificate, + guint signature_method); -LASSO_EXPORT LassoServer *lasso_server_new_from_dump (gchar *dump); +LASSO_EXPORT LassoServer* lasso_server_new_from_dump (gchar *dump); -LASSO_EXPORT gint lasso_server_add_provider (LassoServer *server, - gchar *metadata, - gchar *public_key, - gchar *ca_certificate); +LASSO_EXPORT gint lasso_server_add_provider (LassoServer *server, + gchar *metadata, + gchar *public_key, + gchar *ca_certificate); -LASSO_EXPORT gchar *lasso_server_dump (LassoServer *server); +LASSO_EXPORT LassoServer* lasso_server_copy (LassoServer *server); -LASSO_EXPORT void lasso_server_destroy (LassoServer *server); +LASSO_EXPORT gchar* lasso_server_dump (LassoServer *server); -LASSO_EXPORT LassoProvider* lasso_server_get_provider (LassoServer *server, - gchar *providerID); - -LASSO_EXPORT gchar *lasso_server_get_providerID_from_hash(LassoServer *server, - gchar *hash); +LASSO_EXPORT void lasso_server_destroy (LassoServer *server); +LASSO_EXPORT LassoProvider* lasso_server_get_provider (LassoServer *server, + gchar *providerID); +LASSO_EXPORT gchar* lasso_server_get_providerID_from_hash (LassoServer *server, + gchar *hash); #ifdef __cplusplus } |
