mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 05:41:26 +02:00
MINOR: proxy: create new function cli_find_frontend() to find a frontend
Several CLI commands require a frontend, so let's have a function to look this one up and prepare the appropriate error message and the appctx's state in case of failure.
This commit is contained in:
parent
21b069dca8
commit
960f2cb056
@ -25,6 +25,7 @@
|
|||||||
#include <common/config.h>
|
#include <common/config.h>
|
||||||
#include <common/ticks.h>
|
#include <common/ticks.h>
|
||||||
#include <common/time.h>
|
#include <common/time.h>
|
||||||
|
#include <types/applet.h>
|
||||||
#include <types/global.h>
|
#include <types/global.h>
|
||||||
#include <types/proxy.h>
|
#include <types/proxy.h>
|
||||||
#include <types/listener.h>
|
#include <types/listener.h>
|
||||||
@ -56,6 +57,7 @@ int proxy_cfg_ensure_no_http(struct proxy *curproxy);
|
|||||||
void init_new_proxy(struct proxy *p);
|
void init_new_proxy(struct proxy *p);
|
||||||
int get_backend_server(const char *bk_name, const char *sv_name,
|
int get_backend_server(const char *bk_name, const char *sv_name,
|
||||||
struct proxy **bk, struct server **sv);
|
struct proxy **bk, struct server **sv);
|
||||||
|
struct proxy *cli_find_frontend(struct appctx *appctx, const char *arg);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This function returns a string containing the type of the proxy in a format
|
* This function returns a string containing the type of the proxy in a format
|
||||||
|
24
src/proxy.c
24
src/proxy.c
@ -29,6 +29,7 @@
|
|||||||
#include <ebistree.h>
|
#include <ebistree.h>
|
||||||
|
|
||||||
#include <types/capture.h>
|
#include <types/capture.h>
|
||||||
|
#include <types/cli.h>
|
||||||
#include <types/global.h>
|
#include <types/global.h>
|
||||||
#include <types/obj_type.h>
|
#include <types/obj_type.h>
|
||||||
#include <types/peers.h>
|
#include <types/peers.h>
|
||||||
@ -1216,6 +1217,29 @@ static struct cfg_kw_list cfg_kws = {ILH, {
|
|||||||
{ 0, NULL, NULL },
|
{ 0, NULL, NULL },
|
||||||
}};
|
}};
|
||||||
|
|
||||||
|
/* Expects to find a frontend named <arg> and returns it, otherwise displays various
|
||||||
|
* adequate error messages and returns NULL. This function is designed to be used by
|
||||||
|
* functions requiring a frontend on the CLI.
|
||||||
|
*/
|
||||||
|
struct proxy *cli_find_frontend(struct appctx *appctx, const char *arg)
|
||||||
|
{
|
||||||
|
struct proxy *px;
|
||||||
|
|
||||||
|
if (!*arg) {
|
||||||
|
appctx->ctx.cli.msg = "A frontend name is expected.\n";
|
||||||
|
appctx->st0 = STAT_CLI_PRINT;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
px = proxy_fe_by_name(arg);
|
||||||
|
if (!px) {
|
||||||
|
appctx->ctx.cli.msg = "No such frontend.\n";
|
||||||
|
appctx->st0 = STAT_CLI_PRINT;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return px;
|
||||||
|
}
|
||||||
|
|
||||||
__attribute__((constructor))
|
__attribute__((constructor))
|
||||||
static void __proxy_module_init(void)
|
static void __proxy_module_init(void)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user