- case R_DIRECTOR:
- if (res->res_dir.password)
- free(res->res_dir.password);
- if (res->res_dir.address)
- free(res->res_dir.address);
- break;
- case R_CLIENT:
- if (res->res_client.working_directory)
- free(res->res_client.working_directory);
- if (res->res_client.pid_directory)
- free(res->res_client.pid_directory);
- if (res->res_client.subsys_directory)
- free(res->res_client.subsys_directory);
- break;
- case R_MSGS:
- if (res->res_msgs.mail_cmd)
- free(res->res_msgs.mail_cmd);
- if (res->res_msgs.operator_cmd)
- free(res->res_msgs.operator_cmd);
- free_msgs_res((MSGS *)res); /* free message resource */
- res = NULL;
- break;
- default:
- printf("Unknown resource type %d\n", type);
+ case R_DIRECTOR:
+ if (res->res_dir.password) {
+ free(res->res_dir.password);
+ }
+ if (res->res_dir.address) {
+ free(res->res_dir.address);
+ }
+ if (res->res_dir.tls_ctx) {
+ free_tls_context(res->res_dir.tls_ctx);
+ }
+ if (res->res_dir.tls_ca_certfile) {
+ free(res->res_dir.tls_ca_certfile);
+ }
+ if (res->res_dir.tls_ca_certdir) {
+ free(res->res_dir.tls_ca_certdir);
+ }
+ if (res->res_dir.tls_certfile) {
+ free(res->res_dir.tls_certfile);
+ }
+ if (res->res_dir.tls_keyfile) {
+ free(res->res_dir.tls_keyfile);
+ }
+ if (res->res_dir.tls_dhfile) {
+ free(res->res_dir.tls_dhfile);
+ }
+ if (res->res_dir.tls_allowed_cns) {
+ delete res->res_dir.tls_allowed_cns;
+ }
+ break;
+ case R_CLIENT:
+ if (res->res_client.working_directory) {
+ free(res->res_client.working_directory);
+ }
+ if (res->res_client.pid_directory) {
+ free(res->res_client.pid_directory);
+ }
+ if (res->res_client.subsys_directory) {
+ free(res->res_client.subsys_directory);
+ }
+ if (res->res_client.scripts_directory) {
+ free(res->res_client.scripts_directory);
+ }
+ if (res->res_client.plugin_directory) {
+ free(res->res_client.plugin_directory);
+ }
+ if (res->res_client.FDaddrs) {
+ free_addresses(res->res_client.FDaddrs);
+ }
+ if (res->res_client.FDsrc_addr) {
+ free_addresses(res->res_client.FDsrc_addr);
+ }
+
+ if (res->res_client.pki_keypair_file) {
+ free(res->res_client.pki_keypair_file);
+ }
+ if (res->res_client.pki_keypair) {
+ crypto_keypair_free(res->res_client.pki_keypair);
+ }
+
+ if (res->res_client.pki_signing_key_files) {
+ delete res->res_client.pki_signing_key_files;
+ }
+ if (res->res_client.pki_signers) {
+ X509_KEYPAIR *keypair;
+ foreach_alist(keypair, res->res_client.pki_signers) {
+ crypto_keypair_free(keypair);
+ }
+ delete res->res_client.pki_signers;
+ }
+
+ if (res->res_client.pki_master_key_files) {
+ delete res->res_client.pki_master_key_files;
+ }
+
+ if (res->res_client.pki_recipients) {
+ X509_KEYPAIR *keypair;
+ foreach_alist(keypair, res->res_client.pki_recipients) {
+ crypto_keypair_free(keypair);
+ }
+ delete res->res_client.pki_recipients;
+ }
+
+ if (res->res_client.tls_ctx) {
+ free_tls_context(res->res_client.tls_ctx);
+ }
+ if (res->res_client.tls_ca_certfile) {
+ free(res->res_client.tls_ca_certfile);
+ }
+ if (res->res_client.tls_ca_certdir) {
+ free(res->res_client.tls_ca_certdir);
+ }
+ if (res->res_client.tls_certfile) {
+ free(res->res_client.tls_certfile);
+ }
+ if (res->res_client.tls_keyfile) {
+ free(res->res_client.tls_keyfile);
+ }
+ if (res->res_client.verid) {
+ free(res->res_client.verid);
+ }
+ break;
+ case R_MSGS:
+ if (res->res_msgs.mail_cmd)
+ free(res->res_msgs.mail_cmd);
+ if (res->res_msgs.operator_cmd)
+ free(res->res_msgs.operator_cmd);
+ free_msgs_res((MSGS *)res); /* free message resource */
+ res = NULL;
+ break;
+ default:
+ printf(_("Unknown resource type %d\n"), type);