Always SSL_OP_NO_QUERY_MTU before querying the BIO MTU.
That setting means that the MTU is provided externally via SSL_set_mtu. (Imported from upstream's 001235778a6e9c645dc0507cad6092d99c9af8f5) Change-Id: I4e5743a9dee734ddd0235f080aefe98a7365aaf6 Reviewed-on: https://boringssl-review.googlesource.com/2826 Reviewed-by: Adam Langley <agl@google.com>
This commit is contained in:
parent
d9778fb418
commit
7f18b139cc
@ -325,11 +325,12 @@ int dtls1_do_write(SSL *s, int type) {
|
|||||||
* caused the failure -- so can't really retransmit anything. continue
|
* caused the failure -- so can't really retransmit anything. continue
|
||||||
* as if everything is fine and wait for an alert to handle the
|
* as if everything is fine and wait for an alert to handle the
|
||||||
* retransmit. */
|
* retransmit. */
|
||||||
if (BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_MTU_EXCEEDED, 0, NULL) > 0) {
|
if (!(SSL_get_options(s) & SSL_OP_NO_QUERY_MTU) &&
|
||||||
|
BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_MTU_EXCEEDED, 0, NULL) > 0) {
|
||||||
s->d1->mtu =
|
s->d1->mtu =
|
||||||
BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_QUERY_MTU, 0, NULL);
|
BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_QUERY_MTU, 0, NULL);
|
||||||
} else {
|
} else {
|
||||||
return (-1);
|
return -1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* bad if this assert fails, only part of the handshake message got sent.
|
/* bad if this assert fails, only part of the handshake message got sent.
|
||||||
|
@ -356,7 +356,8 @@ int dtls1_check_timeout_num(SSL *s) {
|
|||||||
s->d1->timeout.num_alerts++;
|
s->d1->timeout.num_alerts++;
|
||||||
|
|
||||||
/* Reduce MTU after 2 unsuccessful retransmissions */
|
/* Reduce MTU after 2 unsuccessful retransmissions */
|
||||||
if (s->d1->timeout.num_alerts > 2) {
|
if (s->d1->timeout.num_alerts > 2 &&
|
||||||
|
!(SSL_get_options(s) & SSL_OP_NO_QUERY_MTU)) {
|
||||||
s->d1->mtu =
|
s->d1->mtu =
|
||||||
BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_GET_FALLBACK_MTU, 0, NULL);
|
BIO_ctrl(SSL_get_wbio(s), BIO_CTRL_DGRAM_GET_FALLBACK_MTU, 0, NULL);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user