summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2016-11-15 14:53:33 +0100
committerRichard Levitte <levitte@openssl.org>2016-11-15 14:53:33 +0100
commitb612799a80af398040efc2416e0d09dcb0da1cf5 (patch)
treefdc1238fdb3b4c6b642373b068708af7beea2ba1 /apps
parent6c62f9e1639a7d1a879f363a99882920104dfedb (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.c3
-rw-r--r--apps/s_cb.c17
-rw-r--r--apps/s_client.c7
-rw-r--r--apps/s_server.c8
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);