diff --git a/src/pluto/id.c b/src/pluto/id.c index c21bab7b2..5bbf5312d 100644 --- a/src/pluto/id.c +++ b/src/pluto/id.c @@ -66,6 +66,21 @@ init_id(void) set_myFQDN(); } +/* + * free id module + */ +void +free_id(void) +{ + enum myid_state s; + + for (s = MYID_UNKNOWN; s <= MYID_SPECIFIED; s++) + { + free_id_content(&myids[s]); + free(myid_str[s]); + } +} + static void calc_myid_str(enum myid_state s) { diff --git a/src/pluto/id.h b/src/pluto/id.h index 02fb23f96..634c97ee6 100644 --- a/src/pluto/id.h +++ b/src/pluto/id.h @@ -27,13 +27,13 @@ struct id { }; extern void init_id(void); - +extern void free_id(void); extern const struct id empty_id; /* ID_NONE */ enum myid_state { MYID_UNKNOWN, /* not yet figured out */ MYID_HOSTNAME, /* our current hostname */ - MYID_IP, /* our default IP address */ + MYID_IP, /* our default IP address */ MYID_SPECIFIED /* as specified by ipsec.conf */ }; diff --git a/src/pluto/plutomain.c b/src/pluto/plutomain.c index e46cd9512..e497aa02e 100644 --- a/src/pluto/plutomain.c +++ b/src/pluto/plutomain.c @@ -707,6 +707,7 @@ exit_pluto(int status) stop_adns(); free_md_pool(); free_crypto(); + free_id(); delete_lock(); library_deinit(); close_log();