void exit_cleanup(void) { lispd_running = FALSE; /* Remove source routing tables */ remove_created_rules(); /* Close timer file descriptors */ if (timers_fd != 0){ remove_sig_timer(); } /* Close receive sockets */ close_socket(tun_fd); close_socket(ipv4_data_input_fd); close_socket(ipv4_control_input_fd); close_socket(ipv6_data_input_fd); close_socket(ipv6_control_input_fd); /* Close send sockets */ close_output_sockets(); /* Close netlink socket */ close_socket(netlink_fd); free_map_cache_entry(proxy_etrs); free_lisp_addr_list(proxy_itrs, TRUE); free_map_server_list(map_servers); free_ifaces_list(); drop_map_cache(); drop_local_mappings(); drop_referral_cache(); free(config_file); #ifdef ANDROID close_log_file(); #endif exit(EXIT_SUCCESS); }
void exit_cleanup(void) { /* Remove source routing tables */ remove_created_rules(); /* Close timer file descriptors */ close(timers_fd); /* Close receive sockets */ close(tun_receive_fd); close(ipv4_data_input_fd); close(ipv4_control_input_fd); close(ipv6_data_input_fd); close(ipv6_control_input_fd); /* Close send sockets */ close_output_sockets(); /* Close netlink socket */ close(netlink_fd); lispd_log_msg(LISP_LOG_INFO,"Exiting ..."); exit(EXIT_SUCCESS); }