From dcbf99d3348a73ba2a4022735c6a5775e67ffa45 Mon Sep 17 00:00:00 2001 From: Michael Adam Date: Mon, 7 Dec 2009 00:22:53 +0100 Subject: Add free_config() - free all config data. Michael --- src/conf.c | 31 +++++++++++++++++++++++++++++++ src/conf.h | 1 + 2 files changed, 32 insertions(+) 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 -- cgit v1.2.3