diff options
author | Richard Levitte <levitte@openssl.org> | 2016-11-15 14:53:33 +0100 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2016-11-15 14:53:33 +0100 |
commit | b612799a80af398040efc2416e0d09dcb0da1cf5 (patch) | |
tree | fdc1238fdb3b4c6b642373b068708af7beea2ba1 /apps | |
parent | 6c62f9e1639a7d1a879f363a99882920104dfedb (diff) |
Revert "Remove heartbeats completely"
Done too soon, this is for future OpenSSL 1.2.0
This reverts commit 6c62f9e1639a7d1a879f363a99882920104dfedb.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'apps')
-rw-r--r-- | apps/openssl.c | 3 | ||||
-rw-r--r-- | apps/s_cb.c | 17 | ||||
-rw-r--r-- | apps/s_client.c | 7 | ||||
-rw-r--r-- | apps/s_server.c | 8 |
4 files changed, 35 insertions, 0 deletions
diff --git a/apps/openssl.c b/apps/openssl.c index a4159138e5..f6a8f9df55 100644 --- a/apps/openssl.c +++ b/apps/openssl.c @@ -628,6 +628,9 @@ static void list_disabled(void) #ifdef OPENSSL_NO_GOST BIO_puts(bio_out, "GOST\n"); #endif +#ifdef OPENSSL_NO_HEARTBEATS + BIO_puts(bio_out, "HEARTBEATS\n"); +#endif #ifdef OPENSSL_NO_IDEA BIO_puts(bio_out, "IDEA\n"); #endif diff --git a/apps/s_cb.c b/apps/s_cb.c index a2e8cbc8e2..d5c308ee13 100644 --- a/apps/s_cb.c +++ b/apps/s_cb.c @@ -555,6 +555,22 @@ void msg_cb(int write_p, int version, int content_type, const void *buf, case 23: str_content_type = "ApplicationData"; break; +#ifndef OPENSSL_NO_HEARTBEATS + case 24: + str_details1 = ", Heartbeat"; + + if (len > 0) { + switch (bp[0]) { + case 1: + str_details1 = ", HeartbeatRequest"; + break; + case 2: + str_details1 = ", HeartbeatResponse"; + break; + } + } + break; +#endif } } @@ -595,6 +611,7 @@ static STRINT_PAIR tlsext_types[] = { {"SRP", TLSEXT_TYPE_srp}, {"signature algorithms", TLSEXT_TYPE_signature_algorithms}, {"use SRTP", TLSEXT_TYPE_use_srtp}, + {"heartbeat", TLSEXT_TYPE_heartbeat}, {"session ticket", TLSEXT_TYPE_session_ticket}, {"renegotiation info", TLSEXT_TYPE_renegotiate}, {"signed certificate timestamps", TLSEXT_TYPE_signed_certificate_timestamp}, diff --git a/apps/s_client.c b/apps/s_client.c index 1bcfe8e3dc..cfd7cbd79d 100644 --- a/apps/s_client.c +++ b/apps/s_client.c @@ -2448,6 +2448,13 @@ int s_client_main(int argc, char **argv) SSL_renegotiate(con); cbuf_len = 0; } +#ifndef OPENSSL_NO_HEARTBEATS + else if ((!c_ign_eof) && (cbuf[0] == 'B' && cmdletters)) { + BIO_printf(bio_err, "HEARTBEATING\n"); + SSL_heartbeat(con); + cbuf_len = 0; + } +#endif else { cbuf_len = i; cbuf_off = 0; diff --git a/apps/s_server.c b/apps/s_server.c index 88cbf9f8c1..ee6631809c 100644 --- a/apps/s_server.c +++ b/apps/s_server.c @@ -2226,6 +2226,14 @@ static int sv_body(int s, int stype, unsigned char *context) */ goto err; } +#ifndef OPENSSL_NO_HEARTBEATS + if ((buf[0] == 'B') && ((buf[1] == '\n') || (buf[1] == '\r'))) { + BIO_printf(bio_err, "HEARTBEATING\n"); + SSL_heartbeat(con); + i = 0; + continue; + } +#endif if ((buf[0] == 'r') && ((buf[1] == '\n') || (buf[1] == '\r'))) { SSL_renegotiate(con); i = SSL_do_handshake(con); |