示例#1
0
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);
	}
SSL_METHOD *SSLv2_client_method(void)
	{
	static int init=1;
	static SSL_METHOD SSLv2_client_data;

	if (init)
		{
		CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD);

		if (init)
			{
			memcpy((char *)&SSLv2_client_data,(char *)sslv2_base_method(),
				sizeof(SSL_METHOD));
			SSLv2_client_data.ssl_connect=ssl2_connect;
			SSLv2_client_data.get_ssl_method=ssl2_get_client_method;
			init=0;
			}

		CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD);
		}
	return(&SSLv2_client_data);
	}