mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-04 18:44:54 +00:00
lib: mgmtd: enable conn debugs when user enables client debug
Signed-off-by: Christian Hopps <chopps@labn.net>
This commit is contained in:
parent
83018e2178
commit
c37c19a9ec
@ -112,7 +112,11 @@ struct mgmt_be_client {
|
||||
#define FOREACH_BE_TXN_IN_LIST(client_ctx, txn) \
|
||||
frr_each_safe (mgmt_be_txns, &(client_ctx)->txn_head, (txn))
|
||||
|
||||
struct debug mgmt_dbg_be_client = {0, "Management backend client operations"};
|
||||
struct debug mgmt_dbg_be_client = {
|
||||
.desc = "Management backend client operations"
|
||||
};
|
||||
|
||||
struct mgmt_be_client *mgmt_be_client;
|
||||
|
||||
static int mgmt_be_client_send_msg(struct mgmt_be_client *client_ctx,
|
||||
Mgmtd__BeMessage *be_msg)
|
||||
@ -820,24 +824,28 @@ static int mgmt_be_client_notify_disconenct(struct msg_conn *conn)
|
||||
* Debug Flags
|
||||
*/
|
||||
|
||||
static void mgmt_debug_client_be_set(uint32_t flags, bool set)
|
||||
{
|
||||
DEBUG_FLAGS_SET(&mgmt_dbg_be_client, flags, set);
|
||||
|
||||
if (!mgmt_be_client)
|
||||
return;
|
||||
|
||||
mgmt_be_client->client.conn.debug =
|
||||
DEBUG_MODE_CHECK(&mgmt_dbg_be_client, DEBUG_MODE_ALL);
|
||||
}
|
||||
|
||||
DEFPY(debug_mgmt_client_be, debug_mgmt_client_be_cmd,
|
||||
"[no] debug mgmt client backend",
|
||||
NO_STR DEBUG_STR MGMTD_STR
|
||||
"client\n"
|
||||
"backend\n")
|
||||
{
|
||||
uint32_t mode = DEBUG_NODE2MODE(vty->node);
|
||||
|
||||
DEBUG_MODE_SET(&mgmt_dbg_be_client, mode, !no);
|
||||
mgmt_debug_client_be_set(DEBUG_NODE2MODE(vty->node), !no);
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
static void mgmt_debug_client_be_set_all(uint32_t flags, bool set)
|
||||
{
|
||||
DEBUG_FLAGS_SET(&mgmt_dbg_be_client, flags, set);
|
||||
}
|
||||
|
||||
static int mgmt_debug_be_client_config_write(struct vty *vty)
|
||||
{
|
||||
if (DEBUG_MODE_CHECK(&mgmt_dbg_be_client, DEBUG_MODE_CONF))
|
||||
@ -853,7 +861,8 @@ void mgmt_debug_be_client_show_debug(struct vty *vty)
|
||||
}
|
||||
|
||||
static struct debug_callbacks mgmt_dbg_be_client_cbs = {
|
||||
.debug_set_all = mgmt_debug_client_be_set_all};
|
||||
.debug_set_all = mgmt_debug_client_be_set
|
||||
};
|
||||
|
||||
static struct cmd_node mgmt_dbg_node = {
|
||||
.name = "debug mgmt client backend",
|
||||
@ -867,8 +876,13 @@ struct mgmt_be_client *mgmt_be_client_create(const char *client_name,
|
||||
uintptr_t user_data,
|
||||
struct event_loop *event_loop)
|
||||
{
|
||||
struct mgmt_be_client *client =
|
||||
XCALLOC(MTYPE_MGMTD_BE_CLIENT, sizeof(*client));
|
||||
struct mgmt_be_client *client;
|
||||
|
||||
if (mgmt_be_client)
|
||||
return NULL;
|
||||
|
||||
client = XCALLOC(MTYPE_MGMTD_BE_CLIENT, sizeof(*client));
|
||||
mgmt_be_client = client;
|
||||
|
||||
/* Only call after frr_init() */
|
||||
assert(running_config);
|
||||
@ -902,6 +916,8 @@ void mgmt_be_client_lib_vty_init(void)
|
||||
|
||||
void mgmt_be_client_destroy(struct mgmt_be_client *client)
|
||||
{
|
||||
assert(client == mgmt_be_client);
|
||||
|
||||
MGMTD_BE_CLIENT_DBG("Destroying MGMTD Backend Client '%s'",
|
||||
client->name);
|
||||
|
||||
@ -912,4 +928,6 @@ void mgmt_be_client_destroy(struct mgmt_be_client *client)
|
||||
|
||||
XFREE(MTYPE_MGMTD_BE_CLIENT_NAME, client->name);
|
||||
XFREE(MTYPE_MGMTD_BE_CLIENT, client);
|
||||
|
||||
mgmt_be_client = NULL;
|
||||
}
|
||||
|
@ -47,8 +47,11 @@ struct mgmt_fe_client {
|
||||
#define FOREACH_SESSION_IN_LIST(client, session) \
|
||||
frr_each_safe (mgmt_sessions, &(client)->sessions, (session))
|
||||
|
||||
struct debug mgmt_dbg_fe_client = {0, "Management frontend client operations"};
|
||||
struct debug mgmt_dbg_fe_client = {
|
||||
.desc = "Management frontend client operations"
|
||||
};
|
||||
|
||||
struct mgmt_fe_client *mgmt_fe_client;
|
||||
|
||||
static inline const char *dsid2name(Mgmtd__DatastoreId id)
|
||||
{
|
||||
@ -543,6 +546,16 @@ static int mgmt_fe_client_notify_disconnect(struct msg_conn *conn)
|
||||
return _notify_connect_disconnect(client, false);
|
||||
}
|
||||
|
||||
static void mgmt_debug_client_fe_set(uint32_t mode, bool set)
|
||||
{
|
||||
DEBUG_FLAGS_SET(&mgmt_dbg_fe_client, mode, set);
|
||||
|
||||
if (!mgmt_fe_client)
|
||||
return;
|
||||
|
||||
mgmt_fe_client->client.conn.debug =
|
||||
DEBUG_MODE_CHECK(&mgmt_dbg_fe_client, DEBUG_MODE_ALL);
|
||||
}
|
||||
|
||||
DEFPY(debug_mgmt_client_fe, debug_mgmt_client_fe_cmd,
|
||||
"[no] debug mgmt client frontend",
|
||||
@ -550,18 +563,11 @@ DEFPY(debug_mgmt_client_fe, debug_mgmt_client_fe_cmd,
|
||||
"client\n"
|
||||
"frontend\n")
|
||||
{
|
||||
uint32_t mode = DEBUG_NODE2MODE(vty->node);
|
||||
|
||||
DEBUG_MODE_SET(&mgmt_dbg_fe_client, mode, !no);
|
||||
mgmt_debug_client_fe_set(DEBUG_NODE2MODE(vty->node), !no);
|
||||
|
||||
return CMD_SUCCESS;
|
||||
}
|
||||
|
||||
static void mgmt_debug_client_fe_set_all(uint32_t flags, bool set)
|
||||
{
|
||||
DEBUG_FLAGS_SET(&mgmt_dbg_fe_client, flags, set);
|
||||
}
|
||||
|
||||
static int mgmt_debug_fe_client_config_write(struct vty *vty)
|
||||
{
|
||||
if (DEBUG_MODE_CHECK(&mgmt_dbg_fe_client, DEBUG_MODE_CONF))
|
||||
@ -577,7 +583,8 @@ void mgmt_debug_fe_client_show_debug(struct vty *vty)
|
||||
}
|
||||
|
||||
static struct debug_callbacks mgmt_dbg_fe_client_cbs = {
|
||||
.debug_set_all = mgmt_debug_client_fe_set_all};
|
||||
.debug_set_all = mgmt_debug_client_fe_set
|
||||
};
|
||||
|
||||
static struct cmd_node mgmt_dbg_node = {
|
||||
.name = "debug mgmt client frontend",
|
||||
@ -594,8 +601,13 @@ struct mgmt_fe_client *mgmt_fe_client_create(const char *client_name,
|
||||
uintptr_t user_data,
|
||||
struct event_loop *event_loop)
|
||||
{
|
||||
struct mgmt_fe_client *client =
|
||||
XCALLOC(MTYPE_MGMTD_FE_CLIENT, sizeof(*client));
|
||||
struct mgmt_fe_client *client;
|
||||
|
||||
if (mgmt_fe_client)
|
||||
return NULL;
|
||||
|
||||
client = XCALLOC(MTYPE_MGMTD_FE_CLIENT, sizeof(*client));
|
||||
mgmt_fe_client = client;
|
||||
|
||||
client->name = XSTRDUP(MTYPE_MGMTD_FE_CLIENT_NAME, client_name);
|
||||
client->user_data = user_data;
|
||||
@ -692,6 +704,8 @@ void mgmt_fe_client_destroy(struct mgmt_fe_client *client)
|
||||
{
|
||||
struct mgmt_fe_client_session *session;
|
||||
|
||||
assert(client == mgmt_fe_client);
|
||||
|
||||
MGMTD_FE_CLIENT_DBG("Destroying MGMTD Frontend Client '%s'",
|
||||
client->name);
|
||||
|
||||
@ -702,4 +716,6 @@ void mgmt_fe_client_destroy(struct mgmt_fe_client *client)
|
||||
|
||||
XFREE(MTYPE_MGMTD_FE_CLIENT_NAME, client->name);
|
||||
XFREE(MTYPE_MGMTD_FE_CLIENT, client);
|
||||
|
||||
mgmt_fe_client = NULL;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user