summaryrefslogtreecommitdiffstats
path: root/apps/s_server.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2010-01-28 17:50:23 +0000
committerDr. Stephen Henson <steve@openssl.org>2010-01-28 17:50:23 +0000
commitdf21765a3e8aa22786070a17012f7e371218ab81 (patch)
treef9467ee917f354146b3be3944b763bf021c463b9 /apps/s_server.c
parent5a6ae115f86024805a43193d7ab5756b9d74c58f (diff)
In engine_table_select() don't clear out entire error queue: just clear
out any we added using ERR_set_mark() and ERR_pop_to_mark() otherwise errors from other sources (e.g. SSL library) can be wiped.
Diffstat (limited to 'apps/s_server.c')
-rw-r--r--apps/s_server.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/apps/s_server.c b/apps/s_server.c
index 1a06d19bb1..85d060a410 100644
--- a/apps/s_server.c
+++ b/apps/s_server.c
@@ -2391,6 +2391,17 @@ static int www_body(char *hostname, int s, unsigned char *context)
STACK_OF(SSL_CIPHER) *sk;
static const char *space=" ";
+ if (www == 1 && strncmp("GET /reneg", buf, 10) == 0)
+ {
+ if (strncmp("GET /renegcert", buf, 14) == 0)
+ SSL_set_verify(con,
+ SSL_VERIFY_PEER|SSL_VERIFY_CLIENT_ONCE,NULL);
+ SSL_renegotiate(con);
+ i=SSL_do_handshake(con);
+ BIO_puts(bio_s_out, "RENEGOTIATING\n");
+ BIO_printf(bio_s_out, "SSL_do_handshake -> %d\n",i);
+ }
+
BIO_puts(io,"HTTP/1.0 200 ok\r\nContent-type: text/html\r\n\r\n");
BIO_puts(io,"<HTML><BODY BGCOLOR=\"#ffffff\">\n");
BIO_puts(io,"<pre>\n");