#pragma once #include #include enum match_kind { MATCH_NAME, MATCH_HOST, MATCH_BOTH, MATCH_EITHER, }; /* a client config */ struct host_cfg { /* name of this client */ const char *name; /* remote host/IP */ char *remote_host; /* remote port */ uint16_t remote_port; }; struct host_cfg *host_cfg_alloc(void *ctx, const char *name, const char *host, uint16_t port); bool match_config(const struct host_cfg *cfg, const char *match, enum match_kind k); char *make_authority(void *ctx, const struct host_cfg *cfg); struct osmo_stream_cli *make_tcp_client(struct host_cfg *cfg); void update_name(struct host_cfg *cfg, const char *new_name); void update_host(struct host_cfg *cfg, const char *new_host);