Loading crypto/bio/bio.h +1 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ extern "C" { /* #endif */ #define BIO_CTRL_DGRAM_QUERY_MTU 40 /* as kernel for current MTU */ #define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 #define BIO_CTRL_DGRAM_GET_MTU 41 /* get cached value for MTU */ #define BIO_CTRL_DGRAM_SET_MTU 42 /* set cached value for * MTU. want to use this Loading crypto/bio/bss_dgram.c +21 −0 Original line number Diff line number Diff line Loading @@ -616,6 +616,27 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr) ret = 0; #endif break; case BIO_CTRL_DGRAM_GET_FALLBACK_MTU: switch (data->peer.sa.sa_family) { case AF_INET: ret = 576 - 20 - 8; break; #if OPENSSL_USE_IPV6 case AF_INET6: #ifdef IN6_IS_ADDR_V4MAPPED if (IN6_IS_ADDR_V4MAPPED(&data->peer.sa_in6.sin6_addr)) ret = 576 - 20 - 8; else #endif ret = 1280 - 40 - 8; break; #endif default: ret = 576 - 20 - 8; break; } break; case BIO_CTRL_DGRAM_GET_MTU: return data->mtu; break; Loading ssl/d1_both.c +2 −2 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ int dtls1_do_write(SSL *s, int type) unsigned int len, frag_off, mac_size, blocksize; /* AHA! Figure out the MTU, and stick to the right size */ if ( ! (SSL_get_options(s) & SSL_OP_NO_QUERY_MTU)) if (s->d1->mtu < dtls1_min_mtu() && !(SSL_get_options(s) & SSL_OP_NO_QUERY_MTU)) { s->d1->mtu = BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_QUERY_MTU, 0, NULL); Loading ssl/d1_lib.c +5 −0 Original line number Diff line number Diff line Loading @@ -424,6 +424,11 @@ int dtls1_handle_timeout(SSL *s) state->timeout.read_timeouts = 1; } if (state->timeout_duration > 2) { s->d1->mtu = BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_GET_FALLBACK_MTU, 0, NULL); } #ifndef OPENSSL_NO_HEARTBEATS if (s->tlsext_hb_pending) { Loading Loading
crypto/bio/bio.h +1 −0 Original line number Diff line number Diff line Loading @@ -157,6 +157,7 @@ extern "C" { /* #endif */ #define BIO_CTRL_DGRAM_QUERY_MTU 40 /* as kernel for current MTU */ #define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 #define BIO_CTRL_DGRAM_GET_MTU 41 /* get cached value for MTU */ #define BIO_CTRL_DGRAM_SET_MTU 42 /* set cached value for * MTU. want to use this Loading
crypto/bio/bss_dgram.c +21 −0 Original line number Diff line number Diff line Loading @@ -616,6 +616,27 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr) ret = 0; #endif break; case BIO_CTRL_DGRAM_GET_FALLBACK_MTU: switch (data->peer.sa.sa_family) { case AF_INET: ret = 576 - 20 - 8; break; #if OPENSSL_USE_IPV6 case AF_INET6: #ifdef IN6_IS_ADDR_V4MAPPED if (IN6_IS_ADDR_V4MAPPED(&data->peer.sa_in6.sin6_addr)) ret = 576 - 20 - 8; else #endif ret = 1280 - 40 - 8; break; #endif default: ret = 576 - 20 - 8; break; } break; case BIO_CTRL_DGRAM_GET_MTU: return data->mtu; break; Loading
ssl/d1_both.c +2 −2 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ int dtls1_do_write(SSL *s, int type) unsigned int len, frag_off, mac_size, blocksize; /* AHA! Figure out the MTU, and stick to the right size */ if ( ! (SSL_get_options(s) & SSL_OP_NO_QUERY_MTU)) if (s->d1->mtu < dtls1_min_mtu() && !(SSL_get_options(s) & SSL_OP_NO_QUERY_MTU)) { s->d1->mtu = BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_QUERY_MTU, 0, NULL); Loading
ssl/d1_lib.c +5 −0 Original line number Diff line number Diff line Loading @@ -424,6 +424,11 @@ int dtls1_handle_timeout(SSL *s) state->timeout.read_timeouts = 1; } if (state->timeout_duration > 2) { s->d1->mtu = BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_GET_FALLBACK_MTU, 0, NULL); } #ifndef OPENSSL_NO_HEARTBEATS if (s->tlsext_hb_pending) { Loading