diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2011-12-31 22:59:57 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2011-12-31 22:59:57 +0000 |
commit | 4817504d069b4c5082161b02a22116ad75f822b1 (patch) | |
tree | 7a85f6af852e34e5b80080b50d80741f6ab36c5a /ssl/d1_pkt.c | |
parent | 84b6e277d4f45487377d0159e82c356d750e1218 (diff) |
PR: 2658
Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de>
Reviewed by: steve
Support for TLS/DTLS heartbeats.
Diffstat (limited to 'ssl/d1_pkt.c')
-rw-r--r-- | ssl/d1_pkt.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/ssl/d1_pkt.c b/ssl/d1_pkt.c index 5fe1321fca..f66f33cf63 100644 --- a/ssl/d1_pkt.c +++ b/ssl/d1_pkt.c @@ -937,6 +937,19 @@ start: dest = s->d1->alert_fragment; dest_len = &s->d1->alert_fragment_len; } +#ifndef OPENSSL_NO_HEARTBEATS + else if (rr->type == TLS1_RT_HEARTBEAT) + { + dtls1_process_heartbeat(s); + + /* Exit and notify application to read again */ + rr->length = 0; + s->rwstate=SSL_READING; + BIO_clear_retry_flags(SSL_get_rbio(s)); + BIO_set_retry_read(SSL_get_rbio(s)); + return(-1); + } +#endif /* else it's a CCS message, or application data or wrong */ else if (rr->type != SSL3_RT_CHANGE_CIPHER_SPEC) { |