memcpy((char *)&SSLv2_data,(char *)sslv2_base_method(), sizeof(SSL_METHOD)); SSLv2_data.ssl_connect=ssl2_connect; SSLv2_data.ssl_accept=ssl2_accept; SSLv2_data.get_ssl_method=ssl2_get_method; init=0;
CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD);  if (init) { memcpy((char *)&SSLv2_data,(char *)sslv2_base_method(), sizeof(SSL_METHOD)); SSLv2_data.ssl_connect=ssl2_connect; SSLv2_data.ssl_accept=ssl2_accept; SSLv2_data.get_ssl_method=ssl2_get_method; init=0; }  CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD);
SSL_METHOD *SSLv2_method(void)	{	static int init=1;	static SSL_METHOD SSLv2_data;	if (init)		{		memcpy((char *)&SSLv2_data,(char *)sslv2_base_method(),			sizeof(SSL_METHOD));		SSLv2_data.ssl_connect=ssl2_connect;		SSLv2_data.ssl_accept=ssl2_accept;		SSLv2_data.get_ssl_method=ssl2_get_method;		init=0;		}	return(&SSLv2_data);	}