Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Achou.Wang
accel-ppp
提交
3bf08b87
A
accel-ppp
项目概览
Achou.Wang
/
accel-ppp
通知
6
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
accel-ppp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
3bf08b87
编写于
12月 31, 2017
作者:
V
Vladislav Grishenko
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
sstp: possible sync ppp mode fix
上级
c9d32e8b
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
31 addition
and
18 deletion
+31
-18
accel-pppd/ctrl/sstp/sstp.c
accel-pppd/ctrl/sstp/sstp.c
+31
-18
未找到文件。
accel-pppd/ctrl/sstp/sstp.c
浏览文件 @
3bf08b87
...
...
@@ -725,11 +725,13 @@ static int ppp_allocate_pty(int *master, int *slave, int flags)
goto
error
;
}
// value = N_HDLC;
// if (ioctl(mfd, TIOCSETD, &value) < 0) {
// log_ppp_error("sstp: ppp: set pty line discipline: %s\n", strerror(errno));
// goto error;
// }
#if PPP_SYNC
value
=
N_HDLC
;
if
(
ioctl
(
mfd
,
TIOCSETD
,
&
value
)
<
0
)
{
log_ppp_error
(
"sstp: ppp: set pty line discipline: %s
\n
"
,
strerror
(
errno
));
goto
error
;
}
#endif
if
((
value
=
fcntl
(
mfd
,
F_GETFL
))
<
0
||
fcntl
(
mfd
,
F_SETFL
,
value
|
flags
)
<
0
||
(
value
=
fcntl
(
sfd
,
F_GETFL
))
<
0
||
fcntl
(
sfd
,
F_SETFL
,
value
|
flags
)
<
0
)
{
...
...
@@ -782,11 +784,10 @@ static int ppp_read(struct triton_md_handler_t *h)
struct
sstp_conn_t
*
conn
=
container_of
(
h
,
typeof
(
*
conn
),
ppp_hnd
);
struct
buffer_t
*
buf
;
struct
sstp_hdr
*
hdr
;
uint8_t
pppbuf
[
PPP_BUF_SIZE
];
int
n
;
uint8_t
pppbuf
[
PPP_BUF_SIZE
]
,
*
src
;
int
i
,
n
;
#if !PPP_SYNC
uint8_t
*
src
,
byte
;
int
i
;
uint8_t
byte
;
buf
=
conn
->
ppp_in
;
#endif
...
...
@@ -813,18 +814,30 @@ static int ppp_read(struct triton_md_handler_t *h)
continue
;
}
src
=
pppbuf
;
#if PPP_SYNC
buf
=
alloc_buf
(
n
+
sizeof
(
*
hdr
));
if
(
!
buf
)
{
log_ppp_error
(
"sstp: ppp: no memory
\n
"
);
goto
drop
;
while
(
n
>
0
)
{
if
(
src
[
0
]
==
PPP_ALLSTATIONS
)
i
=
conn
->
ppp
.
mtu
+
4
-
(
src
[
2
]
&
1
);
else
i
=
conn
->
ppp
.
mtu
+
2
-
(
src
[
0
]
&
1
);
if
(
i
>
n
)
i
=
n
;
buf
=
alloc_buf
(
i
+
sizeof
(
*
hdr
));
if
(
!
buf
)
{
log_ppp_error
(
"sstp: ppp: no memory
\n
"
);
goto
drop
;
}
hdr
=
buf_put
(
buf
,
sizeof
(
*
hdr
));
buf_put_data
(
buf
,
src
,
i
);
INIT_SSTP_DATA_HDR
(
hdr
,
buf
->
len
);
sstp_queue
(
conn
,
buf
);
n
-=
i
;
src
+=
i
;
}
hdr
=
buf_put
(
buf
,
sizeof
(
*
hdr
));
buf_put_data
(
buf
,
pppbuf
,
n
);
INIT_SSTP_DATA_HDR
(
hdr
,
buf
->
len
);
sstp_queue
(
conn
,
buf
);
#else
src
=
pppbuf
;
if
(
!
buf
)
{
alloc:
conn
->
ppp_in
=
buf
=
alloc_buf
(
SSTP_MAX_PACKET_SIZE
+
PPP_FCSLEN
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录