pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-mgw/+/29744 )
Change subject: mgcp-client: Move & rename helper function outside of vty code ......................................................................
mgcp-client: Move & rename helper function outside of vty code
This way acessing of the list is kept inside the same file.
Related: SYS#5987 Change-Id: I6b26c2de4064d9c28f92452178fff170fb295576 --- M include/osmocom/mgcp_client/mgcp_client_pool_internal.h M src/libosmo-mgcp-client/mgcp_client_pool.c M src/libosmo-mgcp-client/mgcp_client_vty.c 3 files changed, 20 insertions(+), 21 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-mgw refs/changes/44/29744/1
diff --git a/include/osmocom/mgcp_client/mgcp_client_pool_internal.h b/include/osmocom/mgcp_client/mgcp_client_pool_internal.h index b67c968..148a5cf 100644 --- a/include/osmocom/mgcp_client/mgcp_client_pool_internal.h +++ b/include/osmocom/mgcp_client/mgcp_client_pool_internal.h @@ -43,4 +43,6 @@ struct cmd_node *vty_node; };
+struct mgcp_client_pool_member *mgcp_client_pool_find_member_by_nr(struct mgcp_client_pool *pool, unsigned int nr); + const char *mgcp_client_pool_member_name(const struct mgcp_client_pool_member *pool_member); diff --git a/src/libosmo-mgcp-client/mgcp_client_pool.c b/src/libosmo-mgcp-client/mgcp_client_pool.c index e6c3237..0555ff3 100644 --- a/src/libosmo-mgcp-client/mgcp_client_pool.c +++ b/src/libosmo-mgcp-client/mgcp_client_pool.c @@ -118,6 +118,19 @@ pool->mgcp_client_single = mgcp_client; }
+/*! Lookup the selected MGCP client config by its reference number */ +struct mgcp_client_pool_member *mgcp_client_pool_find_member_by_nr(struct mgcp_client_pool *pool, unsigned int nr) +{ + struct mgcp_client_pool_member *pool_member; + + llist_for_each_entry(pool_member, &pool->member_list, list) { + if (pool_member->nr == nr) + return pool_member; + } + + return NULL; +} + /* Not every pool member may have a functional MGCP client, we will run through the pool once until we meet a * pool member that is suitable (has a client, is not blocked, has a low load). */ static struct mgcp_client_pool_member *mgcp_client_pool_pick(struct mgcp_client_pool *pool) diff --git a/src/libosmo-mgcp-client/mgcp_client_vty.c b/src/libosmo-mgcp-client/mgcp_client_vty.c index f85dd3f..748042f 100644 --- a/src/libosmo-mgcp-client/mgcp_client_vty.c +++ b/src/libosmo-mgcp-client/mgcp_client_vty.c @@ -337,29 +337,13 @@ return CMD_SUCCESS; }
-/* Lookup the selected MGCP client config by its reference number */ -static struct mgcp_client_pool_member *pool_member_by_nr(unsigned int nr) -{ - struct mgcp_client_pool_member *pool_member = NULL; - struct mgcp_client_pool_member *pool_member_tmp; - - llist_for_each_entry(pool_member_tmp, &global_mgcp_client_pool->member_list, list) { - if (pool_member_tmp->nr == nr) { - pool_member = pool_member_tmp; - break; - } - } - - return pool_member; -} - DEFUN_ATTR(cfg_mgw, cfg_mgw_cmd, "mgw <0-255>", "Select a MGCP client config to setup\n" "reference number\n", CMD_ATTR_IMMEDIATE) { int nr = atoi(argv[0]); struct mgcp_client_pool_member *pool_member;
- pool_member = pool_member_by_nr(nr); + pool_member = mgcp_client_pool_find_member_by_nr(global_mgcp_client_pool, nr); if (!pool_member) { pool_member = talloc_zero(global_mgcp_client_pool, struct mgcp_client_pool_member); OSMO_ASSERT(pool_member); @@ -382,7 +366,7 @@ int nr = atoi(argv[0]); struct mgcp_client_pool_member *pool_member;
- pool_member = pool_member_by_nr(nr); + pool_member = mgcp_client_pool_find_member_by_nr(global_mgcp_client_pool, nr); if (!pool_member) { vty_out(vty, "%% no such MGCP client configured ('%s')%s", argv[0], VTY_NEWLINE); return CMD_WARNING; @@ -412,7 +396,7 @@ int nr = atoi(argv[0]); struct mgcp_client_pool_member *pool_member = NULL;
- pool_member = pool_member_by_nr(nr); + pool_member = mgcp_client_pool_find_member_by_nr(global_mgcp_client_pool, nr); if (!pool_member) { vty_out(vty, "%% no such MGCP client configured ('%s')%s", argv[0], VTY_NEWLINE); return CMD_WARNING; @@ -466,7 +450,7 @@ int nr = atoi(argv[0]); struct mgcp_client_pool_member *pool_member = NULL;
- pool_member = pool_member_by_nr(nr); + pool_member = mgcp_client_pool_find_member_by_nr(global_mgcp_client_pool, nr); if (!pool_member) { vty_out(vty, "%% no such MGCP client configured ('%s')%s", argv[0], VTY_NEWLINE); return CMD_WARNING; @@ -483,7 +467,7 @@ int nr = atoi(argv[0]); struct mgcp_client_pool_member *pool_member = NULL;
- pool_member = pool_member_by_nr(nr); + pool_member = mgcp_client_pool_find_member_by_nr(global_mgcp_client_pool, nr); if (!pool_member) { vty_out(vty, "%% no such MGCP client configured ('%s')%s", argv[0], VTY_NEWLINE); return CMD_WARNING;