summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGünther Deschner <gdeschner@redhat.com>2012-06-07 16:27:28 +0200
committerSimo Sorce <simo@redhat.com>2012-06-25 17:08:57 -0400
commit8ff4a02c7876a1a139c1d9fb446d4d00a586a258 (patch)
treeeaa5ed0d6a2c4069b93e8bf8be596ef8a8554e9a
parentf17cd9c90877d700f0377821601eea297102b61e (diff)
downloadgss-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.c24
-rw-r--r--proxy/src/gp_proxy.h1
-rw-r--r--proxy/src/gssproxy.c2
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;
}