diff --git a/src/ac/ac_backend.c b/src/ac/ac_backend.c index 8fb01d0..be96687 100644 --- a/src/ac/ac_backend.c +++ b/src/ac/ac_backend.c @@ -665,8 +665,10 @@ void ac_backend_stop(void) { /* Wait close thread */ pthread_join(g_ac_backend.threadid, &dummy); +} - /* */ +/* */ +void ac_backend_free(void) { capwap_event_destroy(&g_ac_backend.wait); capwap_lock_destroy(&g_ac_backend.lock); capwap_lock_destroy(&g_ac_backend.backendlock); diff --git a/src/ac/ac_backend.h b/src/ac/ac_backend.h index 8af85ce..e7f9aa5 100644 --- a/src/ac/ac_backend.h +++ b/src/ac/ac_backend.h @@ -18,6 +18,7 @@ struct ac_notify_reset_t { /* */ int ac_backend_start(void); void ac_backend_stop(void); +void ac_backend_free(void); /* */ int ac_backend_isconnect(void); diff --git a/src/ac/ac_execute.c b/src/ac/ac_execute.c index b543d63..6275a50 100644 --- a/src/ac/ac_execute.c +++ b/src/ac/ac_execute.c @@ -872,6 +872,9 @@ int ac_execute(void) { /* Wait to terminate all sessions */ ac_wait_terminate_allsessions(); + /* Free Backend Management */ + ac_backend_free(); + /* Free memory */ capwap_free(fds); return result;