static void do_whacklisten(void) { fflush(stderr); fflush(stdout); close_peerlog(); /* close any open per-peer logs */ #ifdef USE_SYSTEMD_WATCHDOG pluto_sd(PLUTO_SD_RELOADING, SD_REPORT_NO_STATUS); #endif libreswan_log("listening for IKE messages"); listening = TRUE; daily_log_reset(); set_myFQDN(); find_ifaces(); load_preshared_secrets(); load_groups(); #ifdef USE_SYSTEMD_WATCHDOG pluto_sd(PLUTO_SD_READY, SD_REPORT_NO_STATUS); #endif }
/* * leave pluto, with status. * Once child is launched, parent must not exit this way because * the lock would be released. * * 0 OK * 1 general discomfort * 10 lock file exists */ void exit_pluto(int status) { /* needed because we may be called in odd state */ reset_globals(); #ifdef USE_SYSTEMD_WATCHDOG pluto_sd(PLUTO_SD_STOPPING, status); #endif free_preshared_secrets(); free_remembered_public_keys(); delete_every_connection(); /* * free memory allocated by initialization routines. Please don't * forget to do this. */ #if defined(LIBCURL) || defined(LDAP_VER) free_crl_fetch(); /* free chain of crl fetch requests */ #endif lsw_conf_free_oco(); /* free global_oco containing path names */ free_myFQDN(); /* free myid FQDN */ free_ifaces(); /* free interface list from memory */ free_md_pool(); /* free the md pool */ lsw_nss_shutdown(); delete_lock(); /* delete any lock files */ free_virtual_ip(); /* virtual_private= */ free_kernelfd(); /* stop listening to kernel FD, remove event */ free_pluto_main(); /* our static chars */ /* report memory leaks now, after all free_* calls */ if (leak_detective) report_leaks(); close_log(); /* close the logfiles */ #ifdef USE_SYSTEMD_WATCHDOG pluto_sd(PLUTO_SD_EXIT,status); #endif exit(status); /* exit, with our error code */ }