diff options
Diffstat (limited to 'src/lib/libssl/s3_pkt.c')
-rw-r--r-- | src/lib/libssl/s3_pkt.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/lib/libssl/s3_pkt.c b/src/lib/libssl/s3_pkt.c index 72853a2e72..9476dcddf6 100644 --- a/src/lib/libssl/s3_pkt.c +++ b/src/lib/libssl/s3_pkt.c | |||
@@ -753,8 +753,15 @@ int ssl3_write_pending(SSL *s, int type, const unsigned char *buf, | |||
753 | s->rwstate=SSL_NOTHING; | 753 | s->rwstate=SSL_NOTHING; |
754 | return(s->s3->wpend_ret); | 754 | return(s->s3->wpend_ret); |
755 | } | 755 | } |
756 | else if (i <= 0) | 756 | else if (i <= 0) { |
757 | if (s->version == DTLS1_VERSION || | ||
758 | s->version == DTLS1_BAD_VER) { | ||
759 | /* For DTLS, just drop it. That's kind of the whole | ||
760 | point in using a datagram service */ | ||
761 | s->s3->wbuf.left = 0; | ||
762 | } | ||
757 | return(i); | 763 | return(i); |
764 | } | ||
758 | s->s3->wbuf.offset+=i; | 765 | s->s3->wbuf.offset+=i; |
759 | s->s3->wbuf.left-=i; | 766 | s->s3->wbuf.left-=i; |
760 | } | 767 | } |