From cfb10e99b5503683942835d6a73092f58068fa00 Mon Sep 17 00:00:00 2001 From: Gregory Nietsky Date: Mon, 6 Jun 2011 19:30:56 +0000 Subject: Refactor rt_handle_member_record Review: https://reviewboard.asterisk.org/r/1172 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@322111 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_queue.c | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) (limited to 'apps/app_queue.c') diff --git a/apps/app_queue.c b/apps/app_queue.c index dc7a0a074..ff782b822 100644 --- a/apps/app_queue.c +++ b/apps/app_queue.c @@ -2072,9 +2072,9 @@ static void queue_set_param(struct call_queue *q, const char *param, const char * \brief Find rt member record to update otherwise create one. * * Search for member in queue, if found update penalty/paused state, - * if no member exists create one flag it as a RT member and add to queue member list. + * if no member exists create one flag it as a RT member and add to queue member list. */ -static void rt_handle_member_record(struct call_queue *q, char *interface, const char *rt_uniqueid, const char *membername, const char *penalty_str, const char *paused_str, const char* state_interface) +static void rt_handle_member_record(struct call_queue *q, char *interface, struct ast_config *member_config) { struct member *m; struct ao2_iterator mem_iter; @@ -2082,6 +2082,13 @@ static void rt_handle_member_record(struct call_queue *q, char *interface, const int paused = 0; int found = 0; + const char *config_val; + const char *rt_uniqueid = ast_variable_retrieve(member_config, interface, "uniqueid"); + const char *membername = S_OR(ast_variable_retrieve(member_config, interface, "membername"), interface); + const char *state_interface = S_OR(ast_variable_retrieve(member_config, interface, "state_interface"), interface); + const char *penalty_str = ast_variable_retrieve(member_config, interface, "penalty"); + const char *paused_str = ast_variable_retrieve(member_config, interface, "paused"); + if (ast_strlen_zero(rt_uniqueid)) { ast_log(LOG_WARNING, "Realtime field uniqueid is empty for member %s\n", S_OR(membername, "NULL")); return; @@ -2299,12 +2306,7 @@ static struct call_queue *find_queue_by_name_rt(const char *queuename, struct as ao2_iterator_destroy(&mem_iter); while ((interface = ast_category_browse(member_config, interface))) { - rt_handle_member_record(q, interface, - ast_variable_retrieve(member_config, interface, "uniqueid"), - S_OR(ast_variable_retrieve(member_config, interface, "membername"),interface), - ast_variable_retrieve(member_config, interface, "penalty"), - ast_variable_retrieve(member_config, interface, "paused"), - S_OR(ast_variable_retrieve(member_config, interface, "state_interface"),interface)); + rt_handle_member_record(q, interface, member_config); } /* Delete all realtime members that have been deleted in DB. */ @@ -2426,12 +2428,7 @@ static void update_realtime_members(struct call_queue *q) ao2_iterator_destroy(&mem_iter); while ((interface = ast_category_browse(member_config, interface))) { - rt_handle_member_record(q, interface, - ast_variable_retrieve(member_config, interface, "uniqueid"), - S_OR(ast_variable_retrieve(member_config, interface, "membername"), interface), - ast_variable_retrieve(member_config, interface, "penalty"), - ast_variable_retrieve(member_config, interface, "paused"), - S_OR(ast_variable_retrieve(member_config, interface, "state_interface"), interface)); + rt_handle_member_record(q, interface, member_config); } /* Delete all realtime members that have been deleted in DB. */ -- cgit v1.2.3