diff options
author | Dmitry Kozlov <xeb@mail.ru> | 2017-10-17 23:23:54 +0300 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2017-10-17 23:33:44 +0300 |
commit | 405a4d8de0048aa77d09380b33a3f06149d16765 (patch) | |
tree | d3de19458bb0d17529e6d029f11b4ecefef56fed /accel-pppd/radius/auth.c | |
parent | 0a71249f32169ad04fd6a907989578dced3ba9ec (diff) | |
download | accel-ppp-405a4d8de0048aa77d09380b33a3f06149d16765.tar.gz accel-ppp-405a4d8de0048aa77d09380b33a3f06149d16765.zip |
radius: implemented lua support
to get radius object use session:module("radius") function
radius object provides flollowing functions:
radius:attrs() - returns array of attributes {"name" = NAME, "vendor" = VENDOR|nil}
radius:attr(name[,vendor]) - returns value of attribute (may return multiple results)
Example:
function ip_up(ses)
rad = ses:module("radius")
attrs = rad:attrs()
if attrs then
print("attrs:")
for _,a in pairs(attrs) do
io.write("\t")
if a.vendor then io.write(a.vendor..":") end
io.write(a.name.."=")
print(rad:attr(a.name, a.vendor))
end
end
end
Diffstat (limited to 'accel-pppd/radius/auth.c')
-rw-r--r-- | accel-pppd/radius/auth.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/accel-pppd/radius/auth.c b/accel-pppd/radius/auth.c index b5900023..4cc5ff74 100644 --- a/accel-pppd/radius/auth.c +++ b/accel-pppd/radius/auth.c @@ -150,6 +150,10 @@ static void rad_auth_finalize(struct radius_pd_t *rpd, int r) rpd->auth_ctx->cb(rpd->auth_ctx->cb_arg, r); if (rpd->auth_ctx) { + if (r == PWDB_SUCCESS) { + rpd->auth_reply = rpd->auth_ctx->req->reply; + rpd->auth_ctx->req->reply = NULL; + } rad_req_free(rpd->auth_ctx->req); mempool_free(rpd->auth_ctx); rpd->auth_ctx = NULL; |