Module: kamailio Branch: master Commit: 3ce13be06217e7d49a5e4362bf5cf6e53ec584ac URL: https://github.com/kamailio/kamailio/commit/3ce13be06217e7d49a5e4362bf5cf6e5...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2017-05-04T07:31:41+02:00
auth: exported has_credentials() to kemi framework
---
Modified: src/modules/auth/auth_mod.c
---
Diff: https://github.com/kamailio/kamailio/commit/3ce13be06217e7d49a5e4362bf5cf6e5... Patch: https://github.com/kamailio/kamailio/commit/3ce13be06217e7d49a5e4362bf5cf6e5...
---
diff --git a/src/modules/auth/auth_mod.c b/src/modules/auth/auth_mod.c index cc66651..bdb0d7a 100644 --- a/src/modules/auth/auth_mod.c +++ b/src/modules/auth/auth_mod.c @@ -444,33 +444,40 @@ int w_consume_credentials(struct sip_msg* msg, char* s1, char* s2) /** * */ -int w_has_credentials(sip_msg_t *msg, char* realm, char* s2) +int ki_has_credentials(sip_msg_t *msg, str* srealm) { - str srealm = {0, 0}; hdr_field_t *hdr = NULL; int ret;
- if (fixup_get_svalue(msg, (gparam_t*)realm, &srealm) < 0) { - LM_ERR("failed to get realm value\n"); - return -1; - } - - ret = find_credentials(msg, &srealm, HDR_PROXYAUTH_T, &hdr); + ret = find_credentials(msg, srealm, HDR_PROXYAUTH_T, &hdr); if(ret==0) { - LM_DBG("found www credentials with realm [%.*s]\n", srealm.len, srealm.s); + LM_DBG("found www credentials with realm [%.*s]\n", srealm->len, srealm->s); return 1; } - ret = find_credentials(msg, &srealm, HDR_AUTHORIZATION_T, &hdr); + ret = find_credentials(msg, srealm, HDR_AUTHORIZATION_T, &hdr); if(ret==0) { - LM_DBG("found proxy credentials with realm [%.*s]\n", srealm.len, srealm.s); + LM_DBG("found proxy credentials with realm [%.*s]\n", srealm->len, srealm->s); return 1; }
- LM_DBG("no credentials with realm [%.*s]\n", srealm.len, srealm.s); + LM_DBG("no credentials with realm [%.*s]\n", srealm->len, srealm->s); return -1; }
/** + * + */ +int w_has_credentials(sip_msg_t *msg, char* realm, char* s2) +{ + str srealm = {0, 0}; + + if (fixup_get_svalue(msg, (gparam_t*)realm, &srealm) < 0) { + LM_ERR("failed to get realm value\n"); + return -1; + } + return ki_has_credentials(msg, &srealm); +} +/** * @brief do WWW-Digest authentication with password taken from cfg var */ int pv_authenticate(struct sip_msg *msg, str *realm, str *passwd, @@ -1220,6 +1227,11 @@ static sr_kemi_t sr_kemi_auth_exports[] = { { SR_KEMIP_STR, SR_KEMIP_STR, SR_KEMIP_INT, SR_KEMIP_INT, SR_KEMIP_NONE, SR_KEMIP_NONE } }, + { str_init("auth"), str_init("has_credentials"), + SR_KEMIP_INT, ki_has_credentials, + { SR_KEMIP_STR, SR_KEMIP_NONE, SR_KEMIP_NONE, + SR_KEMIP_NONE, SR_KEMIP_NONE, SR_KEMIP_NONE } + },
{ {0, 0}, {0, 0}, 0, NULL, { 0, 0, 0, 0, 0, 0 } } };