Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Achou.Wang
accel-ppp
提交
d0fa7ad6
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,发现更多精彩内容 >>
提交
d0fa7ad6
编写于
5月 12, 2014
作者:
D
Dmitry Kozlov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
radius: add support for Nas-Port-Id attribute (interface name)
上级
48e3ff7f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
17 addition
and
8 deletion
+17
-8
accel-pppd/radius/radius.c
accel-pppd/radius/radius.c
+13
-7
accel-pppd/radius/radius_p.h
accel-pppd/radius/radius_p.h
+1
-1
accel-pppd/radius/req.c
accel-pppd/radius/req.c
+3
-0
未找到文件。
accel-pppd/radius/radius.c
浏览文件 @
d0fa7ad6
...
...
@@ -401,7 +401,7 @@ struct radius_pd_t *find_pd(struct ap_session *ses)
}
struct
radius_pd_t
*
rad_find_session
(
const
char
*
sessionid
,
const
char
*
username
,
int
port_id
,
in_addr_t
ipaddr
,
const
char
*
csid
)
struct
radius_pd_t
*
rad_find_session
(
const
char
*
sessionid
,
const
char
*
username
,
const
char
*
port_id
,
int
port
,
in_addr_t
ipaddr
,
const
char
*
csid
)
{
struct
radius_pd_t
*
rpd
;
...
...
@@ -413,7 +413,9 @@ struct radius_pd_t *rad_find_session(const char *sessionid, const char *username
continue
;
if
(
username
&&
strcmp
(
username
,
rpd
->
ses
->
username
))
continue
;
if
(
port_id
>=
0
&&
port_id
!=
rpd
->
ses
->
unit_idx
)
if
(
port
>=
0
&&
port
!=
rpd
->
ses
->
unit_idx
)
continue
;
if
(
port_id
&&
strcmp
(
port_id
,
rpd
->
ses
->
ifname
))
continue
;
if
(
ipaddr
&&
rpd
->
ses
->
ipv4
&&
ipaddr
!=
rpd
->
ses
->
ipv4
->
peer_addr
)
continue
;
...
...
@@ -433,7 +435,8 @@ struct radius_pd_t *rad_find_session_pack(struct rad_packet_t *pack)
const
char
*
sessionid
=
NULL
;
const
char
*
username
=
NULL
;
const
char
*
csid
=
NULL
;
int
port_id
=
-
1
;
int
port
=
-
1
;
const
char
*
port_id
=
NULL
;
in_addr_t
ipaddr
=
0
;
list_for_each_entry
(
attr
,
&
pack
->
attrs
,
entry
)
{
...
...
@@ -447,7 +450,10 @@ struct radius_pd_t *rad_find_session_pack(struct rad_packet_t *pack)
username
=
attr
->
val
.
string
;
break
;
case
NAS_Port
:
port_id
=
attr
->
val
.
integer
;
port
=
attr
->
val
.
integer
;
break
;
case
NAS_Port_Id
:
port_id
=
attr
->
val
.
string
;
break
;
case
Framed_IP_Address
:
ipaddr
=
attr
->
val
.
ipaddr
;
...
...
@@ -458,13 +464,13 @@ struct radius_pd_t *rad_find_session_pack(struct rad_packet_t *pack)
}
}
if
(
!
sessionid
&&
!
username
&&
port_id
==
-
1
&&
ipaddr
==
0
&&
!
csid
)
if
(
!
sessionid
&&
!
username
&&
!
port_id
&&
port
==
-
1
&&
ipaddr
==
0
&&
!
csid
)
return
NULL
;
if
(
username
&&
!
sessionid
&&
port
_id
==
-
1
&&
ipaddr
==
0
)
if
(
username
&&
!
sessionid
&&
port
==
-
1
&&
ipaddr
==
0
&&
!
port_id
)
return
NULL
;
return
rad_find_session
(
sessionid
,
username
,
port_id
,
ipaddr
,
csid
);
return
rad_find_session
(
sessionid
,
username
,
port_id
,
port
,
ipaddr
,
csid
);
}
int
rad_check_nas_pack
(
struct
rad_packet_t
*
pack
)
...
...
accel-pppd/radius/radius_p.h
浏览文件 @
d0fa7ad6
...
...
@@ -138,7 +138,7 @@ extern int conf_fail_time;
extern
int
conf_req_limit
;
int
rad_check_nas_pack
(
struct
rad_packet_t
*
pack
);
struct
radius_pd_t
*
rad_find_session
(
const
char
*
sessionid
,
const
char
*
username
,
int
port_id
,
in_addr_t
ipaddr
,
const
char
*
csid
);
struct
radius_pd_t
*
rad_find_session
(
const
char
*
sessionid
,
const
char
*
username
,
const
char
*
port_id
,
int
port
,
in_addr_t
ipaddr
,
const
char
*
csid
);
struct
radius_pd_t
*
rad_find_session_pack
(
struct
rad_packet_t
*
pack
);
int
rad_dict_load
(
const
char
*
fname
);
...
...
accel-pppd/radius/req.c
浏览文件 @
d0fa7ad6
...
...
@@ -81,6 +81,9 @@ static struct rad_req_t *__rad_req_alloc(struct radius_pd_t *rpd, int code, cons
if
(
rad_packet_add_int
(
req
->
pack
,
NULL
,
"NAS-Port"
,
rpd
->
ses
->
unit_idx
))
goto
out_err
;
if
(
rad_packet_add_str
(
req
->
pack
,
NULL
,
"NAS-Port-Id"
,
rpd
->
ses
->
ifname
))
goto
out_err
;
if
(
req
->
rpd
->
ses
->
ctrl
->
type
==
CTRL_TYPE_IPOE
)
{
if
(
rad_packet_add_val
(
req
->
pack
,
NULL
,
"NAS-Port-Type"
,
"Ethernet"
))
goto
out_err
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录