Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Achou.Wang
accel-ppp
提交
2d10076d
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 搜索 >>
提交
2d10076d
编写于
6月 08, 2016
作者:
D
Dmitry Kozlov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ipoe: fixed incorrect arp reply (reply for request which started session)
上级
00015eb0
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
14 addition
and
8 deletion
+14
-8
accel-pppd/ctrl/ipoe/arp.c
accel-pppd/ctrl/ipoe/arp.c
+1
-0
accel-pppd/ctrl/ipoe/ipoe.c
accel-pppd/ctrl/ipoe/ipoe.c
+13
-8
未找到文件。
accel-pppd/ctrl/ipoe/arp.c
浏览文件 @
2d10076d
...
...
@@ -120,6 +120,7 @@ void arp_send(int ifindex, struct _arphdr *arph)
dst
.
sll_family
=
AF_PACKET
;
dst
.
sll_ifindex
=
ifindex
;
dst
.
sll_protocol
=
htons
(
ETH_P_ARP
);
memcpy
(
dst
.
sll_addr
,
arph
->
ar_tha
,
ETH_ALEN
);
arph
->
ar_op
=
htons
(
ARPOP_REPLY
);
...
...
accel-pppd/ctrl/ipoe/ipoe.c
浏览文件 @
2d10076d
...
...
@@ -892,6 +892,19 @@ static void __ipoe_session_activate(struct ipoe_session *ses)
}
else
ses
->
ctrl
.
dont_ifcfg
=
0
;
if
(
ses
->
arph
)
{
if
(
ses
->
arph
->
ar_tpa
==
ses
->
router
)
{
memcpy
(
ses
->
arph
->
ar_tha
,
ses
->
arph
->
ar_sha
,
ETH_ALEN
);
memcpy
(
ses
->
arph
->
ar_sha
,
ses
->
serv
->
hwaddr
,
ETH_ALEN
);
ses
->
arph
->
ar_tpa
=
ses
->
arph
->
ar_spa
;
ses
->
arph
->
ar_spa
=
ses
->
router
;
arp_send
(
ses
->
serv
->
ifindex
,
ses
->
arph
);
}
_free
(
ses
->
arph
);
ses
->
arph
=
NULL
;
}
if
(
ses
->
serv
->
opt_mode
==
MODE_L2
&&
ses
->
serv
->
opt_ipv6
&&
sock6_fd
!=
-
1
)
{
ses
->
ses
.
ipv6
=
ipdb_get_ipv6
(
&
ses
->
ses
);
if
(
!
ses
->
ses
.
ipv6
)
...
...
@@ -919,14 +932,6 @@ static void __ipoe_session_activate(struct ipoe_session *ses)
dhcpv4_packet_free
(
ses
->
dhcpv4_request
);
ses
->
dhcpv4_request
=
NULL
;
}
else
if
(
ses
->
arph
)
{
if
(
ses
->
arph
->
ar_tpa
==
ses
->
router
)
{
memcpy
(
ses
->
arph
->
ar_tha
,
ses
->
serv
->
hwaddr
,
ETH_ALEN
);
arp_send
(
ses
->
serv
->
ifindex
,
ses
->
arph
);
}
_free
(
ses
->
arph
);
ses
->
arph
=
NULL
;
}
ses
->
timer
.
expire
=
ipoe_session_timeout
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录