Beispiel #1
0
void dtls_close(struct openconnect_info *vpninfo, int kill_handshake_too)
{
	if (vpninfo->dtls_ssl) {
		DTLS_FREE(vpninfo->dtls_ssl);
		close(vpninfo->dtls_fd);
		FD_CLR(vpninfo->dtls_fd, &vpninfo->select_rfds);
		FD_CLR(vpninfo->dtls_fd, &vpninfo->select_wfds);
		FD_CLR(vpninfo->dtls_fd, &vpninfo->select_efds);
		vpninfo->dtls_ssl = NULL;
		vpninfo->dtls_fd = -1;
	}
	if (kill_handshake_too && vpninfo->new_dtls_ssl) {
		DTLS_FREE(vpninfo->new_dtls_ssl);
		close(vpninfo->new_dtls_fd);
		FD_CLR(vpninfo->new_dtls_fd, &vpninfo->select_rfds);
		FD_CLR(vpninfo->new_dtls_fd, &vpninfo->select_efds);
		vpninfo->new_dtls_ssl = NULL;
		vpninfo->new_dtls_fd = -1;
	}
}
Beispiel #2
0
void dtls_close(struct openconnect_info *vpninfo)
{
	if (vpninfo->dtls_ssl) {
		DTLS_FREE(vpninfo->dtls_ssl);
		closesocket(vpninfo->dtls_fd);
		unmonitor_read_fd(vpninfo, dtls);
		unmonitor_write_fd(vpninfo, dtls);
		unmonitor_except_fd(vpninfo, dtls);
		vpninfo->dtls_ssl = NULL;
		vpninfo->dtls_fd = -1;
	}
}