From e738e9dcb801d9fc5f9ba1356ab9e1caa5e55441 Mon Sep 17 00:00:00 2001 From: Kozlov Dmitry Date: Fri, 7 Dec 2012 18:03:47 +0400 Subject: auth_pap: make messages like other auth modules --- accel-pppd/auth/auth_pap.c | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) (limited to 'accel-pppd') diff --git a/accel-pppd/auth/auth_pap.c b/accel-pppd/auth/auth_pap.c index 95341bb1..ee64ee83 100644 --- a/accel-pppd/auth/auth_pap.c +++ b/accel-pppd/auth/auth_pap.c @@ -215,22 +215,22 @@ static int pap_recv_req(struct pap_auth_data_t *p, struct pap_hdr_t *hdr) r = pwdb_check(p->ppp, peer_id, PPP_PAP, passwd); if (r == PWDB_NO_IMPL) { passwd2 = pwdb_get_passwd(p->ppp, peer_id); - if (!passwd2 || strcmp(passwd2, passwd)) + if (!passwd2) { + if (conf_ppp_verbose) + log_ppp_warn("pap: user not found\n"); + goto failed; + } + + if (strcmp(passwd2, passwd)) r = PWDB_DENIED; else r = PWDB_SUCCESS; + _free(passwd2); } + if (r == PWDB_DENIED) { - if (conf_ppp_verbose) - log_ppp_warn("PAP: authentication error\n"); - pap_send_nak(p, hdr->id); - if (p->started) - ppp_terminate(p->ppp, TERM_AUTH_ERROR, 0); - else - ppp_auth_failed(p->ppp, peer_id); - ret = -1; - _free(peer_id); + goto failed; } else { if (ppp_auth_succeeded(p->ppp, peer_id)) { pap_send_nak(p, hdr->id); @@ -246,7 +246,19 @@ static int pap_recv_req(struct pap_auth_data_t *p, struct pap_hdr_t *hdr) _free(passwd); - return ret; + return 0; + +failed: + pap_send_nak(p, hdr->id); + if (p->started) + ppp_terminate(p->ppp, TERM_AUTH_ERROR, 0); + else + ppp_auth_failed(p->ppp, peer_id); + + _free(passwd); + _free(peer_id); + + return -1; } static void pap_recv(struct ppp_handler_t *h) -- cgit v1.2.3