提交 4e7e6230 编写于 作者: D Dr. Stephen Henson

Make SRP work with -www

PR#3817
Reviewed-by: NRich Salz <rsalz@openssl.org>
上级 f1c412c9
...@@ -2601,6 +2601,21 @@ static int www_body(char *hostname, int s, int stype, unsigned char *context) ...@@ -2601,6 +2601,21 @@ static int www_body(char *hostname, int s, int stype, unsigned char *context)
goto err; goto err;
} else { } else {
BIO_printf(bio_s_out, "read R BLOCK\n"); BIO_printf(bio_s_out, "read R BLOCK\n");
#ifndef OPENSSL_NO_SRP
if (BIO_should_io_special(io)
&& BIO_get_retry_reason(io) == BIO_RR_SSL_X509_LOOKUP) {
BIO_printf(bio_s_out, "LOOKUP renego during read\n");
srp_callback_parm.user =
SRP_VBASE_get_by_user(srp_callback_parm.vb,
srp_callback_parm.login);
if (srp_callback_parm.user)
BIO_printf(bio_s_out, "LOOKUP done %s\n",
srp_callback_parm.user->info);
else
BIO_printf(bio_s_out, "LOOKUP not successful\n");
continue;
}
#endif
#if defined(OPENSSL_SYS_NETWARE) #if defined(OPENSSL_SYS_NETWARE)
delay(1000); delay(1000);
#elif !defined(OPENSSL_SYS_MSDOS) #elif !defined(OPENSSL_SYS_MSDOS)
...@@ -2941,6 +2956,21 @@ static int rev_body(char *hostname, int s, int stype, unsigned char *context) ...@@ -2941,6 +2956,21 @@ static int rev_body(char *hostname, int s, int stype, unsigned char *context)
ERR_print_errors(bio_err); ERR_print_errors(bio_err);
goto end; goto end;
} }
#ifndef OPENSSL_NO_SRP
if (BIO_should_io_special(io)
&& BIO_get_retry_reason(io) == BIO_RR_SSL_X509_LOOKUP) {
BIO_printf(bio_s_out, "LOOKUP renego during accept\n");
srp_callback_parm.user =
SRP_VBASE_get_by_user(srp_callback_parm.vb,
srp_callback_parm.login);
if (srp_callback_parm.user)
BIO_printf(bio_s_out, "LOOKUP done %s\n",
srp_callback_parm.user->info);
else
BIO_printf(bio_s_out, "LOOKUP not successful\n");
continue;
}
#endif
} }
BIO_printf(bio_err, "CONNECTION ESTABLISHED\n"); BIO_printf(bio_err, "CONNECTION ESTABLISHED\n");
print_ssl_summary(con); print_ssl_summary(con);
...@@ -2954,6 +2984,21 @@ static int rev_body(char *hostname, int s, int stype, unsigned char *context) ...@@ -2954,6 +2984,21 @@ static int rev_body(char *hostname, int s, int stype, unsigned char *context)
goto err; goto err;
} else { } else {
BIO_printf(bio_s_out, "read R BLOCK\n"); BIO_printf(bio_s_out, "read R BLOCK\n");
#ifndef OPENSSL_NO_SRP
if (BIO_should_io_special(io)
&& BIO_get_retry_reason(io) == BIO_RR_SSL_X509_LOOKUP) {
BIO_printf(bio_s_out, "LOOKUP renego during read\n");
srp_callback_parm.user =
SRP_VBASE_get_by_user(srp_callback_parm.vb,
srp_callback_parm.login);
if (srp_callback_parm.user)
BIO_printf(bio_s_out, "LOOKUP done %s\n",
srp_callback_parm.user->info);
else
BIO_printf(bio_s_out, "LOOKUP not successful\n");
continue;
}
#endif
#if defined(OPENSSL_SYS_NETWARE) #if defined(OPENSSL_SYS_NETWARE)
delay(1000); delay(1000);
#elif !defined(OPENSSL_SYS_MSDOS) #elif !defined(OPENSSL_SYS_MSDOS)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册