60, /* retryintervalmax */
udpserverrd, /* listener */
&options.sourceudp, /* srcaddrport */
- NULL, /* connecter */
+ tlsconnect, /* connecter */
udpclientrd, /* clientreader */
clientradputudp /* clientradput */
},
}
}
}
+ ERR_remove_state();
server->clientrdgone = 1;
return NULL;
}
freeclsrvconf(conf);
}
freeserver(server, 1);
+ ERR_remove_state();
return NULL;
}
/* ssl might have changed while waiting */
pthread_mutex_unlock(&replyq->mutex);
debug(DBG_DBG, "tlsserverwr: exiting as requested");
+ ERR_remove_state();
pthread_exit(NULL);
}
}
exit:
SSL_free(ssl);
+ ERR_remove_state();
shutdown(s, SHUT_RDWR);
close(s);
pthread_exit(NULL);
break;
case RAD_DTLS:
ctx = SSL_CTX_new(DTLSv1_method());
+ SSL_CTX_set_read_ahead(ctx, 1);
break;
}
if (!ctx) {
SSL_CTX_free(ctx);
return NULL;
}
+ ERR_clear_error(); /* add_dir_cert_subj returns errors on success */
SSL_CTX_set_client_CA_list(ctx, calist);
SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT, verify_cb);