summaryrefslogtreecommitdiff
path: root/accel-pppd/radius/auth.c
diff options
context:
space:
mode:
authorDmitry Kozlov <xeb@mail.ru>2017-10-17 23:23:54 +0300
committerDmitry Kozlov <xeb@mail.ru>2017-10-17 23:33:44 +0300
commit405a4d8de0048aa77d09380b33a3f06149d16765 (patch)
treed3de19458bb0d17529e6d029f11b4ecefef56fed /accel-pppd/radius/auth.c
parent0a71249f32169ad04fd6a907989578dced3ba9ec (diff)
downloadaccel-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.c4
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;