Make SRP work with -www
authorDr. Stephen Henson <steve@openssl.org>
Sat, 12 Sep 2015 01:37:48 +0000 (02:37 +0100)
committerDr. Stephen Henson <steve@openssl.org>
Sun, 20 Sep 2015 13:28:22 +0000 (14:28 +0100)
PR#3817

Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit 4e7e623012e1604d985e2ef362c2957d464f3f01)

Conflicts:
apps/s_server.c

apps/s_server.c

index b58e5e07c41c1c6c642be90c26f121b2ce1a73c4..a8aee77a6e8410ff1691b173096e1255f58e0c64 100644 (file)
@@ -2654,6 +2654,21 @@ static int www_body(char *hostname, int s, unsigned char *context)
                 goto err;
             } else {
                 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)
                 delay(1000);
 #elif !defined(OPENSSL_SYS_MSDOS) && !defined(__DJGPP__)