X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=ssl%2Fd1_clnt.c;h=7b38da0b7c94100a7d7e9e40f8fb54628236f325;hb=5abe32d8611b26630305731f7dd4ea564264719e;hp=bcf5ebbd3ed737dbfac91f52bd63970e64414787;hpb=c6c2e3135dd6cff21bb4cd05a3891b5fdde04977;p=oweals%2Fopenssl.git diff --git a/ssl/d1_clnt.c b/ssl/d1_clnt.c index bcf5ebbd3e..7b38da0b7c 100644 --- a/ssl/d1_clnt.c +++ b/ssl/d1_clnt.c @@ -120,11 +120,15 @@ #include #include #include +#include +#ifndef OPENSSL_NO_DH +#include +#endif -static SSL_METHOD *dtls1_get_client_method(int ver); +static const SSL_METHOD *dtls1_get_client_method(int ver); static int dtls1_get_hello_verify(SSL *s); -static SSL_METHOD *dtls1_get_client_method(int ver) +static const SSL_METHOD *dtls1_get_client_method(int ver) { if (ver == DTLS1_VERSION) return(DTLSv1_client_method()); @@ -132,28 +136,10 @@ static SSL_METHOD *dtls1_get_client_method(int ver) return(NULL); } -SSL_METHOD *DTLSv1_client_method(void) - { - static int init=1; - static SSL_METHOD DTLSv1_client_data; - - if (init) - { - CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD); - - if (init) - { - memcpy((char *)&DTLSv1_client_data,(char *)dtlsv1_base_method(), - sizeof(SSL_METHOD)); - DTLSv1_client_data.ssl_connect=dtls1_connect; - DTLSv1_client_data.get_ssl_method=dtls1_get_client_method; - init=0; - } - - CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD); - } - return(&DTLSv1_client_data); - } +IMPLEMENT_dtls1_meth_func(DTLSv1_client_method, + ssl_undefined_function, + dtls1_connect, + dtls1_get_client_method) int dtls1_connect(SSL *s) { @@ -537,7 +523,7 @@ int dtls1_client_hello(SSL *s) { unsigned char *buf; unsigned char *p,*d; - int i,j; + unsigned int i,j; unsigned long Time,l; SSL_COMP *comp;