SSL/TLS record tracing code (backport from HEAD).
This commit is contained in:
@@ -290,6 +290,7 @@ static SSL_CTX *ctx2=NULL;
|
||||
static int www=0;
|
||||
|
||||
static BIO *bio_s_out=NULL;
|
||||
static BIO *bio_s_msg = NULL;
|
||||
static int s_debug=0;
|
||||
#ifndef OPENSSL_NO_TLSEXT
|
||||
static int s_tlsextdebug=0;
|
||||
@@ -1244,6 +1245,15 @@ int MAIN(int argc, char *argv[])
|
||||
#endif
|
||||
else if (strcmp(*argv,"-msg") == 0)
|
||||
{ s_msg=1; }
|
||||
else if (strcmp(*argv,"-msgfile") == 0)
|
||||
{
|
||||
if (--argc < 1) goto bad;
|
||||
bio_s_msg = BIO_new_file(*(++argv), "w");
|
||||
}
|
||||
#ifndef OPENSSL_NO_SSL_TRACE
|
||||
else if (strcmp(*argv,"-trace") == 0)
|
||||
{ s_msg=2; }
|
||||
#endif
|
||||
else if (strcmp(*argv,"-hack") == 0)
|
||||
{ hack=1; }
|
||||
else if (strcmp(*argv,"-state") == 0)
|
||||
@@ -1589,6 +1599,8 @@ bad:
|
||||
if (s_quiet && !s_debug && !s_msg)
|
||||
{
|
||||
bio_s_out=BIO_new(BIO_s_null());
|
||||
if (s_msg && !bio_s_msg)
|
||||
bio_s_msg=BIO_new_fp(stdout,BIO_NOCLOSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2080,9 +2092,14 @@ end:
|
||||
ssl_excert_free(exc);
|
||||
if (bio_s_out != NULL)
|
||||
{
|
||||
BIO_free(bio_s_out);
|
||||
BIO_free(bio_s_out);
|
||||
bio_s_out=NULL;
|
||||
}
|
||||
if (bio_s_msg != NULL)
|
||||
{
|
||||
BIO_free(bio_s_msg);
|
||||
bio_s_msg = NULL;
|
||||
}
|
||||
apps_shutdown();
|
||||
OPENSSL_EXIT(ret);
|
||||
}
|
||||
@@ -2237,8 +2254,13 @@ static int sv_body(char *hostname, int s, unsigned char *context)
|
||||
}
|
||||
if (s_msg)
|
||||
{
|
||||
SSL_set_msg_callback(con, msg_cb);
|
||||
SSL_set_msg_callback_arg(con, bio_s_out);
|
||||
#ifndef OPENSSL_NO_SSL_TRACE
|
||||
if (s_msg == 2)
|
||||
SSL_set_msg_callback(con, SSL_trace);
|
||||
else
|
||||
#endif
|
||||
SSL_set_msg_callback(con, msg_cb);
|
||||
SSL_set_msg_callback_arg(con, bio_s_msg ? bio_s_msg : bio_s_out);
|
||||
}
|
||||
#ifndef OPENSSL_NO_TLSEXT
|
||||
if (s_tlsextdebug)
|
||||
@@ -2794,8 +2816,13 @@ static int www_body(char *hostname, int s, unsigned char *context)
|
||||
}
|
||||
if (s_msg)
|
||||
{
|
||||
SSL_set_msg_callback(con, msg_cb);
|
||||
SSL_set_msg_callback_arg(con, bio_s_out);
|
||||
#ifndef OPENSSL_NO_SSL_TRACE
|
||||
if (s_msg == 2)
|
||||
SSL_set_msg_callback(con, SSL_trace);
|
||||
else
|
||||
#endif
|
||||
SSL_set_msg_callback(con, msg_cb);
|
||||
SSL_set_msg_callback_arg(con, bio_s_msg ? bio_s_msg : bio_s_out);
|
||||
}
|
||||
|
||||
for (;;)
|
||||
|
||||
Reference in New Issue
Block a user