/** * Cleanup routine set up by atexit */ void cleanup(void) { int i, j; closesocket(sock); for (i = 0; i < destcount; i++) { if (keytype != KEY_NONE) { if (destlist[i].encinfo) { if (destlist[i].encinfo->pubkey) { free_RSA_key(destlist[i].encinfo->pubkey); } free(destlist[i].encinfo); } } free(destlist[i].last_status); for (j = 0; j < destlist[i].last_prstatus_cnt; j++) { free(destlist[i].last_prstatus[j]); } if (destlist[i].clients) { free(destlist[i].clients); } } if (keytype != KEY_NONE) { free_RSA_key(privkey); } crypto_cleanup(); #ifdef WINDOWS WSACleanup(); #endif }
/** * Cleanup routine set up by atexit */ void cleanup(void) { int i; for (i = 0; i < MAXLIST; i++) { if (group_list[i].group_id != 0) { group_cleanup(i); } } if (!parent) { for (i = 0; i < pub_multi_count; i++) { multicast_leave(listener, 0, &pub_multi[i], m_interface, interface_count, server_fp, server_fp_count); } } closesocket(listener); for (i = 0; i < key_count; i++) { free_RSA_key(privkey[i]); } crypto_cleanup(); #ifdef WINDOWS WSACleanup(); #endif fclose(stderr); }
/** * Cleanup routine set up by atexit */ void cleanup(void) { int i; closesocket(sock); for (i = 0; i < destcount; i++) { if (keytype != KEY_NONE) { if (destlist[i].encinfo) { if (destlist[i].encinfo->pubkey.key) { if ((keyextype == KEYEX_RSA) || (keyextype == KEYEX_ECDH_RSA)) { free_RSA_key(destlist[i].encinfo->pubkey.rsa); } else { free_EC_key(destlist[i].encinfo->pubkey.ec); } if ((keyextype == KEYEX_ECDH_RSA) || (keyextype == KEYEX_ECDH_ECDSA)) { free_EC_key(destlist[i].encinfo->dhkey.ec); } } free(destlist[i].encinfo); } } } if (keytype != KEY_NONE) { if ((keyextype == KEYEX_RSA) || (keyextype == KEYEX_ECDH_RSA)) { free_RSA_key(privkey.rsa); } else { free_EC_key(privkey.ec); } if ((keyextype == KEYEX_ECDH_RSA) || (keyextype == KEYEX_ECDH_ECDSA)) { free_EC_key(dhkey.ec); } } crypto_cleanup(); if (status_file) { fclose(status_file); } #ifdef WINDOWS WSACleanup(); #endif }
/** * Cleanup routine set up by atexit */ void cleanup(void) { int i; for (i = 0; i < MAXLIST; i++) { if (group_list[i].group_id != 0) { send_abort(&group_list[i], "Client shutting down"); file_cleanup(&group_list[i], 1); } } if (!parent) { for (i = 0; i < pub_multi_count; i++) { if (server_count > 0) { multicast_leave(listener, 0, &pub_multi[i], m_interface, interface_count, server_keys, server_count); if (has_proxy) { multicast_leave(listener, 0, &pub_multi[i], m_interface, interface_count, &proxy_info, 1); } } else { multicast_leave(listener, 0, &pub_multi[i], m_interface, interface_count, NULL, 0); } } } closesocket(listener); for (i = 0; i < key_count; i++) { if (privkey_type[i] == KEYBLOB_RSA) { free_RSA_key(privkey[i].rsa); } else { free_EC_key(privkey[i].ec); } } crypto_cleanup(); #ifdef WINDOWS WSACleanup(); #endif close_log(); }
/** * Cleanup routine set up by atexit */ void cleanup(void) { int i; for (i = 0; i < MAXLIST; i++) { if (group_list[i].group_id != 0) { file_cleanup(i, 1); } } if (!parent) { for (i = 0; i < pub_multi_count; i++) { if (server_count > 0) { multicast_leave(listener, 0, &pub_multi[i], m_interface, interface_count, server_keys, server_count); if (has_proxy) { multicast_leave(listener, 0, &pub_multi[i], m_interface, interface_count, &proxy_info, 1); } } else { multicast_leave(listener, 0, &pub_multi[i], m_interface, interface_count, NULL, 0); } } } closesocket(listener); for (i = 0; i < key_count; i++) { free_RSA_key(privkey[i]); } crypto_cleanup(); #ifdef WINDOWS WSACleanup(); #endif fclose(stderr); }
static apr_status_t crypto_cleanup_helper(void *data) { apr_crypto_t *f = (apr_crypto_t *) data; return crypto_cleanup(f); }