Changeset 4214 for pjproject/trunk/pjsip/src/pjsip/sip_auth_server.c
- Timestamp:
- Jul 25, 2012 2:29:28 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsip/sip_auth_server.c
r3553 r4214 41 41 PJ_ASSERT_RETURN(pool && auth_srv && realm && lookup, PJ_EINVAL); 42 42 43 pj_bzero(auth_srv, sizeof(*auth_srv)); 43 44 pj_strdup( pool, &auth_srv->realm, realm); 44 45 auth_srv->lookup = lookup; 45 46 auth_srv->is_proxy = (options & PJSIP_AUTH_SRV_IS_PROXY); 47 48 return PJ_SUCCESS; 49 } 50 51 /* 52 * Initialize server authorization session data structure to serve the 53 * specified realm and to use lookup_func function to look for the credential 54 * info. 55 */ 56 PJ_DEF(pj_status_t) pjsip_auth_srv_init2( 57 pj_pool_t *pool, 58 pjsip_auth_srv *auth_srv, 59 const pjsip_auth_srv_init_param *param) 60 { 61 PJ_ASSERT_RETURN(pool && auth_srv && param, PJ_EINVAL); 62 63 pj_bzero(auth_srv, sizeof(*auth_srv)); 64 pj_strdup( pool, &auth_srv->realm, param->realm); 65 auth_srv->lookup2 = param->lookup2; 66 auth_srv->is_proxy = (param->options & PJSIP_AUTH_SRV_IS_PROXY); 46 67 47 68 return PJ_SUCCESS; … … 149 170 150 171 /* Find the credential information for the account. */ 151 status = (*auth_srv->lookup)(rdata->tp_info.pool, &auth_srv->realm, 152 &acc_name, &cred_info); 153 if (status != PJ_SUCCESS) { 154 *status_code = PJSIP_SC_FORBIDDEN; 155 return status; 172 if (auth_srv->lookup2) { 173 pjsip_auth_lookup_cred_param param; 174 175 pj_bzero(¶m, sizeof(param)); 176 param.realm = auth_srv->realm; 177 param.acc_name = acc_name; 178 param.rdata = rdata; 179 status = (*auth_srv->lookup2)(rdata->tp_info.pool, ¶m, &cred_info); 180 if (status != PJ_SUCCESS) { 181 *status_code = PJSIP_SC_FORBIDDEN; 182 return status; 183 } 184 } else { 185 status = (*auth_srv->lookup)(rdata->tp_info.pool, &auth_srv->realm, 186 &acc_name, &cred_info); 187 if (status != PJ_SUCCESS) { 188 *status_code = PJSIP_SC_FORBIDDEN; 189 return status; 190 } 156 191 } 157 192
Note: See TracChangeset
for help on using the changeset viewer.