mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-10-23 08:12:01 +00:00
It is not a good idea to use a personal write_config function for the MGW node, since it's not meant to be a 1st level (top) node. During write-config the node function will be called at an implementation specific time (based on the order defined by the app in the node type enum), so there's no real way to control that the output of the MGW node will end up under the parent configured in mgcp_client_pool_vty_init(). As mentioned the order can be tweaked based on how the node enums are configured, installed, etc. but that's really a nightmare, so let's better not rely on that. Therefore, this patch introduces a new API which the users (apps such as OsmoBSc and OsmoMSC) can use to write the config at the required time (when writing its own parent node). A hack is introduced internally to detect older versions of the users which didn't call this function to still print stuff (up to to the app if the order is correct). Related: SYS#5987 Change-Id: I7a620cf47886d8ecab30ce369cf123d98ab842c5
22 lines
978 B
C
22 lines
978 B
C
#pragma once
|
|
|
|
#include <stdbool.h>
|
|
|
|
struct mgcp_client;
|
|
struct mgcp_client_pool;
|
|
struct mgcp_client_pool_member;
|
|
|
|
struct mgcp_client_pool *mgcp_client_pool_alloc(void *talloc_ctx);
|
|
|
|
void mgcp_client_pool_vty_init(int parent_node, int mgw_node, const char *indent, struct mgcp_client_pool *pool);
|
|
int mgcp_client_pool_config_write(struct vty *vty, const char *indent);
|
|
unsigned int mgcp_client_pool_connect(struct mgcp_client_pool *pool);
|
|
void mgcp_client_pool_register_single(struct mgcp_client_pool *pool, struct mgcp_client *mgcp_client);
|
|
|
|
struct mgcp_client *mgcp_client_pool_get(struct mgcp_client_pool *pool);
|
|
void mgcp_client_pool_put(struct mgcp_client *mgcp_client);
|
|
|
|
struct mgcp_client_pool_member *mgcp_client_pool_find_member_by_nr(struct mgcp_client_pool *pool, unsigned int nr);
|
|
struct mgcp_client *mgcp_client_pool_member_get(struct mgcp_client_pool_member *pool_member);
|
|
bool mgcp_client_pool_member_is_blocked(const struct mgcp_client_pool_member *pool_member);
|