int ssl_sock = -1;
int err;
+ if (vpninfo->https_ssl)
+ return 0;
+
if (!vpninfo->port)
vpninfo->port = 443;
X509_free(vpninfo->peer_cert);
vpninfo->peer_cert = NULL;
}
- SSL_free(vpninfo->https_ssl);
- vpninfo->https_ssl = NULL;
- close(vpninfo->ssl_fd);
- FD_CLR(vpninfo->ssl_fd, &vpninfo->select_rfds);
- FD_CLR(vpninfo->ssl_fd, &vpninfo->select_wfds);
- FD_CLR(vpninfo->ssl_fd, &vpninfo->select_efds);
- vpninfo->ssl_fd = -1;
+ if (vpninfo->https_ssl) {
+ SSL_free(vpninfo->https_ssl);
+ vpninfo->https_ssl = NULL;
+ }
+ if (vpninfo->ssl_fd != -1) {
+ close(vpninfo->ssl_fd);
+ FD_CLR(vpninfo->ssl_fd, &vpninfo->select_rfds);
+ FD_CLR(vpninfo->ssl_fd, &vpninfo->select_wfds);
+ FD_CLR(vpninfo->ssl_fd, &vpninfo->select_efds);
+ vpninfo->ssl_fd = -1;
+ }
}
void openconnect_init_openssl(void)