diff options
author | Günther Deschner <gdeschner@redhat.com> | 2012-06-07 16:27:28 +0200 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2012-06-25 17:08:57 -0400 |
commit | 8ff4a02c7876a1a139c1d9fb446d4d00a586a258 (patch) | |
tree | eaa5ed0d6a2c4069b93e8bf8be596ef8a8554e9a | |
parent | f17cd9c90877d700f0377821601eea297102b61e (diff) | |
download | gss-proxy-8ff4a02c7876a1a139c1d9fb446d4d00a586a258.tar.gz gss-proxy-8ff4a02c7876a1a139c1d9fb446d4d00a586a258.tar.xz gss-proxy-8ff4a02c7876a1a139c1d9fb446d4d00a586a258.zip |
Add free_config() and call it when server shuts down.
Guenther
Signed-off-by: Simo Sorce <simo@redhat.com>
-rw-r--r-- | proxy/src/gp_config.c | 24 | ||||
-rw-r--r-- | proxy/src/gp_proxy.h | 1 | ||||
-rw-r--r-- | proxy/src/gssproxy.c | 2 |
3 files changed, 27 insertions, 0 deletions
diff --git a/proxy/src/gp_config.c b/proxy/src/gp_config.c index 0e81de6..6776ed5 100644 --- a/proxy/src/gp_config.c +++ b/proxy/src/gp_config.c @@ -404,3 +404,27 @@ struct gp_ring_buffer *gp_service_get_ring_buffer(struct gp_service *svc) { return svc->ring_buffer; } + +void free_config(struct gp_config *config) +{ + uint32_t i; + + if (!config) { + return; + } + + free(config->config_file); + free(config->socket_name); + + for (i=0; i < config->num_svcs; i++) { + gp_service_free(config->svcs[i]); + } + + free(config->svcs); + + for (i=0; i < config->num_ring_buffers; i++) { + gp_free_ring_buffer(config->ring_buffers[i]); + } + + free(config->ring_buffers); +} diff --git a/proxy/src/gp_proxy.h b/proxy/src/gp_proxy.h index ee93258..3d52cfe 100644 --- a/proxy/src/gp_proxy.h +++ b/proxy/src/gp_proxy.h @@ -83,6 +83,7 @@ struct gp_conn; /* from gp_config.c */ struct gp_config *read_config(char *config_file, int opt_daemonize); struct gp_ring_buffer *gp_service_get_ring_buffer(struct gp_service *svc); +void free_config(struct gp_config *config); /* from gp_init.c */ void init_server(bool daemonize); diff --git a/proxy/src/gssproxy.c b/proxy/src/gssproxy.c index 14f223f..498ee59 100644 --- a/proxy/src/gssproxy.c +++ b/proxy/src/gssproxy.c @@ -129,5 +129,7 @@ int main(int argc, const char *argv[]) poptFreeContext(pc); + free_config(gpctx->config); + return 0; } |