summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/conf.c31
-rw-r--r--src/conf.h1
2 files changed, 32 insertions, 0 deletions
diff --git a/src/conf.c b/src/conf.c
index 13b30d1..edae075 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -261,6 +261,37 @@ struct {
const unsigned int ndirectives = sizeof (directives) / sizeof (directives[0]);
+void free_config (struct config_s *conf)
+{
+ safefree (conf->config_file);
+ safefree (conf->logf_name);
+ safefree (conf->stathost);
+ safefree (conf->user);
+ safefree (conf->group);
+ safefree (conf->ipAddr);
+#ifdef FILTER_ENABLE
+ safefree (conf->filter);
+#endif /* FILTER_ENABLE */
+#ifdef REVERSE_SUPPORT
+ free_reversepath_list(conf->reversepath_list);
+ safefree (conf->reversebaseurl);
+#endif
+#ifdef UPSTREAM_SUPPORT
+ free_upstream_list (conf->upstream_list);
+#endif /* UPSTREAM_SUPPORT */
+ safefree (conf->pidpath);
+ safefree (conf->bind_address);
+ safefree (conf->via_proxy_name);
+ hashmap_delete (conf->errorpages);
+ safefree (conf->errorpage_undef);
+ safefree (conf->statpage);
+ flush_access_list (conf->access_list);
+ free_connect_ports_list (conf->connect_ports);
+ hashmap_delete (conf->anonymous_map);
+
+ memset (conf, 0, sizeof(*conf));
+}
+
/*
* Compiles the regular expressions used by the configuration file. This
* routine MUST be called before trying to parse the configuration file.
diff --git a/src/conf.h b/src/conf.h
index f80ca3e..9978e57 100644
--- a/src/conf.h
+++ b/src/conf.h
@@ -22,5 +22,6 @@
#define TINYPROXY_CONF_H
extern int load_config_file (const char *config_fname, struct config_s *conf);
+void free_config (struct config_s *conf);
#endif