diff options
author | Dmitry Kozlov <xeb@mail.ru> | 2011-01-26 22:47:10 +0300 |
---|---|---|
committer | Dmitry Kozlov <xeb@mail.ru> | 2011-01-26 22:47:10 +0300 |
commit | 419de8f6910e4fd5d442068ad5ae41b530169470 (patch) | |
tree | f28b69928983f8c772f40e873ce571379e9fa546 /accel-pppd/radius/radius.c | |
parent | b997d19f3b6e3087bffb072dd326c4b5311143b5 (diff) | |
download | accel-ppp-419de8f6910e4fd5d442068ad5ae41b530169470.tar.gz accel-ppp-419de8f6910e4fd5d442068ad5ae41b530169470.zip |
dynamicaly check if radius module loaded (so not more require to rebuild project without RADIUS to switch to chap-secrets)
Diffstat (limited to 'accel-pppd/radius/radius.c')
-rw-r--r-- | accel-pppd/radius/radius.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/accel-pppd/radius/radius.c b/accel-pppd/radius/radius.c index 04de1b79..f371598a 100644 --- a/accel-pppd/radius/radius.c +++ b/accel-pppd/radius/radius.c @@ -146,6 +146,9 @@ static int check(struct pwdb_t *pwdb, struct ppp_t *ppp, const char *username, i va_end(args); + if (r == PWDB_SUCCESS) + rpd->authenticated = 1; + return r; } @@ -192,6 +195,9 @@ static void ppp_starting(struct ppp_t *ppp) static void ppp_acct_start(struct ppp_t *ppp) { struct radius_pd_t *rpd = find_pd(ppp); + + if (!rpd->authenticated) + return; if (rad_acct_start(rpd)) { ppp_terminate(rpd->ppp, TERM_NAS_ERROR, 0); @@ -207,6 +213,9 @@ static void ppp_finishing(struct ppp_t *ppp) { struct radius_pd_t *rpd = find_pd(ppp); + if (!rpd->authenticated) + return; + rad_acct_stop(rpd); } static void ppp_finished(struct ppp_t *ppp) |