Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Openssl
提交
62b6948a
T
Third Party Openssl
项目概览
OpenHarmony
/
Third Party Openssl
接近 2 年 前同步成功
通知
12
Star
18
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Openssl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
62b6948a
编写于
3月 06, 2012
作者:
D
Dr. Stephen Henson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
PR: 2755
Submitted by: Robin Seggelmann <seggelmann@fh-muenster.de> Reduce MTU after failed transmissions.
上级
0fbf8b9c
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
29 addition
and
2 deletion
+29
-2
crypto/bio/bio.h
crypto/bio/bio.h
+1
-0
crypto/bio/bss_dgram.c
crypto/bio/bss_dgram.c
+21
-0
ssl/d1_both.c
ssl/d1_both.c
+2
-2
ssl/d1_lib.c
ssl/d1_lib.c
+5
-0
未找到文件。
crypto/bio/bio.h
浏览文件 @
62b6948a
...
@@ -157,6 +157,7 @@ extern "C" {
...
@@ -157,6 +157,7 @@ extern "C" {
/* #endif */
/* #endif */
#define BIO_CTRL_DGRAM_QUERY_MTU 40
/* as kernel for current MTU */
#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_GET_MTU 41
/* get cached value for MTU */
#define BIO_CTRL_DGRAM_SET_MTU 42
/* set cached value for
#define BIO_CTRL_DGRAM_SET_MTU 42
/* set cached value for
* MTU. want to use this
* MTU. want to use this
...
...
crypto/bio/bss_dgram.c
浏览文件 @
62b6948a
...
@@ -616,6 +616,27 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr)
...
@@ -616,6 +616,27 @@ static long dgram_ctrl(BIO *b, int cmd, long num, void *ptr)
ret
=
0
;
ret
=
0
;
#endif
#endif
break
;
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
:
case
BIO_CTRL_DGRAM_GET_MTU
:
return
data
->
mtu
;
return
data
->
mtu
;
break
;
break
;
...
...
ssl/d1_both.c
浏览文件 @
62b6948a
...
@@ -227,14 +227,14 @@ int dtls1_do_write(SSL *s, int type)
...
@@ -227,14 +227,14 @@ int dtls1_do_write(SSL *s, int type)
unsigned
int
len
,
frag_off
,
mac_size
,
blocksize
;
unsigned
int
len
,
frag_off
,
mac_size
,
blocksize
;
/* AHA! Figure out the MTU, and stick to the right size */
/* 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
=
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
);
/* I've seen the kernel return bogus numbers when it doesn't know
/* I've seen the kernel return bogus numbers when it doesn't know
* (initial write), so just make sure we have a reasonable number */
* (initial write), so just make sure we have a reasonable number */
if
(
s
->
d1
->
mtu
<
dtls1_min_mtu
())
if
(
s
->
d1
->
mtu
<
dtls1_min_mtu
())
{
{
s
->
d1
->
mtu
=
0
;
s
->
d1
->
mtu
=
0
;
s
->
d1
->
mtu
=
dtls1_guess_mtu
(
s
->
d1
->
mtu
);
s
->
d1
->
mtu
=
dtls1_guess_mtu
(
s
->
d1
->
mtu
);
...
...
ssl/d1_lib.c
浏览文件 @
62b6948a
...
@@ -424,6 +424,11 @@ int dtls1_handle_timeout(SSL *s)
...
@@ -424,6 +424,11 @@ int dtls1_handle_timeout(SSL *s)
state
->
timeout
.
read_timeouts
=
1
;
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
#ifndef OPENSSL_NO_HEARTBEATS
if
(
s
->
tlsext_hb_pending
)
if
(
s
->
tlsext_hb_pending
)
{
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录