mbedtls/include/mbedtls
Manuel Pégourié-Gonnard e2e25e7427 DTLS: avoid dropping too many records
When the peer retransmits a flight with many record in the same datagram, and
we already saw one of the records in that datagram, we used to drop the whole
datagram, resulting in interoperability failure (spurious handshake timeouts,
due to ignoring record retransmitted by the peer) with some implementations
(issues with Chrome were reported).

So in those cases, we want to only drop the current record, and look at the
following records (if any) in the same datagram. OTOH, this is not something
we always want to do, as sometime the header of the current record is not
reliable enough.

This commit introduces a new return code for ssl_parse_header() that allows to
distinguish if we should drop only the current record or the whole datagram,
and uses it in mbedtls_ssl_read_record()

fixes #345
2015-12-03 16:13:17 +01:00
..
aes.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
aesni.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
arc4.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
asn1.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
asn1write.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
base64.h Fix references to non-standard SIZE_T_MAX 2015-10-05 15:23:11 +01:00
bignum.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
blowfish.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
bn_mul.h Disable reportedly broken assembly of Sparc(64) 2015-10-21 14:52:24 +02:00
camellia.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ccm.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
certs.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
check_config.h Merge branch 'development' into iotssl-461-ecjpake-finalization 2015-10-20 15:00:29 +02:00
cipher.h Fix macroization of inline in C++ 2015-10-05 11:41:36 +01:00
cipher_internal.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
compat-1.3.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
config.h Merge branch 'development' into iotssl-461-ecjpake-finalization 2015-10-20 15:00:29 +02:00
ctr_drbg.h Fix a fairly common typo in comments 2015-09-25 04:27:22 +02:00
debug.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
des.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
dhm.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ecdh.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ecdsa.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ecjpake.h Add point format handling 2015-10-02 13:31:41 +01:00
ecp.h Add ecjpake_zpk_read() 2015-09-07 12:43:09 +02:00
entropy.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
entropy_poll.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
error.h DTLS: avoid dropping too many records 2015-12-03 16:13:17 +01:00
gcm.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
havege.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
hmac_drbg.h Fix a fairly common typo in comments 2015-09-25 04:27:22 +02:00
md.h Remove inline workaround when not useful 2015-10-05 11:55:39 +01:00
md2.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
md4.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
md5.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
md_internal.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
memory_buffer_alloc.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
net.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
oid.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
padlock.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pem.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pk.h Try to prevent some misuse of RSA functions 2015-10-30 10:56:25 +01:00
pk_internal.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pkcs5.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
pkcs11.h Fix macroization of inline in C++ 2015-10-05 11:41:36 +01:00
pkcs12.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
platform.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ripemd160.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
rsa.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
sha1.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
sha256.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
sha512.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ssl.h DTLS: avoid dropping too many records 2015-12-03 16:13:17 +01:00
ssl_cache.h Fix typo in documentation 2015-10-20 09:36:39 +02:00
ssl_ciphersuites.h Merge branch 'development' into misc 2015-10-27 16:57:34 +00:00
ssl_cookie.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
ssl_internal.h Merge branch 'development' into misc 2015-10-27 16:57:34 +00:00
ssl_ticket.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
threading.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
timing.h Fix a fairly common typo in comments 2015-09-25 04:27:22 +02:00
version.h Change version number to 2.2.0 2015-11-04 19:55:40 +00:00
x509.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
x509_crl.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
x509_crt.h Fix missing check for RSA key length on EE certs 2015-10-23 16:19:53 +02:00
x509_csr.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00
xtea.h Change main license to Apache 2.0 2015-09-04 14:21:07 +02:00