diff options
| author | Valery Febvre <vfebvre at easter-eggs.com> | 2004-07-25 16:27:49 +0000 |
|---|---|---|
| committer | Valery Febvre <vfebvre at easter-eggs.com> | 2004-07-25 16:27:49 +0000 |
| commit | df05fe2ac6f8f32faf0af6325bcc0c8e40f87ae0 (patch) | |
| tree | 8c507bddcfe7d94326a2e366bd1c39d818be7022 | |
| parent | 561b87435a7d5b0b00a6aa811b4a2d944876fa76 (diff) | |
| download | lasso-df05fe2ac6f8f32faf0af6325bcc0c8e40f87ae0.tar.gz lasso-df05fe2ac6f8f32faf0af6325bcc0c8e40f87ae0.tar.xz lasso-df05fe2ac6f8f32faf0af6325bcc0c8e40f87ae0.zip | |
Finished to implement lasso_server_destroy() method
| -rw-r--r-- | lasso/id-ff/server.c | 27 | ||||
| -rw-r--r-- | lasso/id-ff/server.h | 2 |
2 files changed, 23 insertions, 6 deletions
diff --git a/lasso/id-ff/server.c b/lasso/id-ff/server.c index c0123ee2..729e4d69 100644 --- a/lasso/id-ff/server.c +++ b/lasso/id-ff/server.c @@ -32,6 +32,11 @@ #define LASSO_SERVER_CERTIFICATE_NODE "Certificate" #define LASSO_SERVER_SIGNATURE_METHOD_NODE "SignatureMethod" +struct _LassoServerPrivate +{ + gboolean dispose_has_run; +}; + static GObjectClass *parent_class = NULL; /*****************************************************************************/ @@ -192,15 +197,20 @@ lasso_server_get_providerID_from_hash(LassoServer *server, static void lasso_server_dispose(LassoServer *server) { -/* /\* No idea how to access to ->private->dispose_has_run *\/ */ -/* if (server->private->dispose_has_run) { */ -/* return; */ -/* } */ -/* server->private->dispose_has_run = TRUE; */ + guint i; + + if (server->private->dispose_has_run == TRUE) { + return; + } + server->private->dispose_has_run = TRUE; debug("Server object 0x%x finalized ...\n", server); - /* TODO destroy the providers */ + /* free allocated memory for providers array */ + for (i=0; i<server->providers->len; i++) { + lasso_provider_destroy(server->providers->pdata[i]); + } + g_ptr_array_free(server->providers, TRUE); parent_class->dispose(G_OBJECT(server)); } @@ -214,6 +224,8 @@ lasso_server_finalize(LassoServer *server) g_free(server->private_key); g_free(server->certificate); + g_free(server->private); + parent_class->finalize(G_OBJECT(server)); } @@ -224,6 +236,9 @@ lasso_server_finalize(LassoServer *server) static void lasso_server_instance_init(LassoServer *server) { + server->private = g_new (LassoServerPrivate, 1); + server->private->dispose_has_run = FALSE; + server->providers = g_ptr_array_new(); server->providerID = NULL; server->private_key = NULL; diff --git a/lasso/id-ff/server.h b/lasso/id-ff/server.h index 92ab6e1e..7734cea8 100644 --- a/lasso/id-ff/server.h +++ b/lasso/id-ff/server.h @@ -41,6 +41,7 @@ extern "C" { typedef struct _LassoServer LassoServer; typedef struct _LassoServerClass LassoServerClass; +typedef struct _LassoServerPrivate LassoServerPrivate; struct _LassoServer { LassoProvider parent; @@ -52,6 +53,7 @@ struct _LassoServer { gchar *certificate; guint signature_method; /*< private >*/ + LassoServerPrivate *private; }; struct _LassoServerClass { |
