mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-23 14:44:28 +00:00
simplify the flow of function check_user_full()
A large block needs reindentation now, but we don't do that because it can be moved to a separate function. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45905 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -8928,7 +8928,13 @@ static enum check_auth_result check_user_full(struct sip_pvt *p, struct sip_requ
|
|||||||
user = find_user(of, 1);
|
user = find_user(of, 1);
|
||||||
|
|
||||||
/* Find user based on user name in the from header */
|
/* Find user based on user name in the from header */
|
||||||
if (user && ast_apply_ha(user->ha, sin)) {
|
if (user && !ast_apply_ha(user->ha, sin)) {
|
||||||
|
if (!authpeer && debug)
|
||||||
|
ast_verbose("Found user '%s', but fails host access\n", user->name);
|
||||||
|
ASTOBJ_UNREF(user,sip_destroy_user);
|
||||||
|
user = NULL;
|
||||||
|
}
|
||||||
|
if (user) {
|
||||||
ast_copy_flags(&p->flags[0], &user->flags[0], SIP_FLAGS_TO_COPY);
|
ast_copy_flags(&p->flags[0], &user->flags[0], SIP_FLAGS_TO_COPY);
|
||||||
ast_copy_flags(&p->flags[1], &user->flags[1], SIP_PAGE2_FLAGS_TO_COPY);
|
ast_copy_flags(&p->flags[1], &user->flags[1], SIP_PAGE2_FLAGS_TO_COPY);
|
||||||
/* copy channel vars */
|
/* copy channel vars */
|
||||||
@@ -9010,16 +9016,12 @@ static enum check_auth_result check_user_full(struct sip_pvt *p, struct sip_requ
|
|||||||
}
|
}
|
||||||
if (debug)
|
if (debug)
|
||||||
ast_verbose("Found user '%s'\n", user->name);
|
ast_verbose("Found user '%s'\n", user->name);
|
||||||
} else {
|
ASTOBJ_UNREF(user, sip_destroy_user);
|
||||||
if (user) {
|
return res;
|
||||||
if (!authpeer && debug)
|
|
||||||
ast_verbose("Found user '%s', but fails host access\n", user->name);
|
|
||||||
ASTOBJ_UNREF(user,sip_destroy_user);
|
|
||||||
}
|
|
||||||
user = NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!user) {
|
/* XXX need to reindent the next block */
|
||||||
|
|
||||||
/* If we didn't find a user match, check for peers */
|
/* If we didn't find a user match, check for peers */
|
||||||
if (sipmethod == SIP_SUBSCRIBE)
|
if (sipmethod == SIP_SUBSCRIBE)
|
||||||
/* For subscribes, match on peer name only */
|
/* For subscribes, match on peer name only */
|
||||||
@@ -9144,10 +9146,6 @@ static enum check_auth_result check_user_full(struct sip_pvt *p, struct sip_requ
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (user)
|
|
||||||
ASTOBJ_UNREF(user, sip_destroy_user);
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user