0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00

Tracing of CLI connections/commands can be now controlled

by `debug commands <level>' in the configuration. Level 0 means
no tracing, 1 means connections only, 2 includes all commands.
This commit is contained in:
Martin Mares 2000-05-29 22:10:18 +00:00
parent 26eee1c33a
commit 4761efdb43
4 changed files with 14 additions and 6 deletions

View File

@ -23,6 +23,7 @@ struct config {
struct rtable_config *master_rtc; /* Configuration of master routing table */ struct rtable_config *master_rtc; /* Configuration of master routing table */
u32 router_id; /* Our Router ID */ u32 router_id; /* Our Router ID */
unsigned int proto_default_debug; /* Default protocol debug mask */ unsigned int proto_default_debug; /* Default protocol debug mask */
int cli_debug; /* Tracing of CLI connections and commands */
char *err_msg; /* Parser error message */ char *err_msg; /* Parser error message */
int err_lino; /* Line containing error */ int err_lino; /* Line containing error */
char *file_name; /* Name of configuration file */ char *file_name; /* Name of configuration file */

View File

@ -162,6 +162,8 @@ cli_command(struct cli *c)
struct config f; struct config f;
int res; int res;
if (config->cli_debug > 1)
log(L_TRACE "CLI: %s", c->rx_buf);
bzero(&f, sizeof(f)); bzero(&f, sizeof(f));
f.mem = c->parser_pool; f.mem = c->parser_pool;
cf_read_hook = cli_cmd_read_hook; cf_read_hook = cli_cmd_read_hook;

View File

@ -22,7 +22,7 @@ CF_DECLS
CF_KEYWORDS(ROUTER, ID, PROTOCOL, PREFERENCE, DISABLED, DEBUG, ALL, OFF, DIRECT) CF_KEYWORDS(ROUTER, ID, PROTOCOL, PREFERENCE, DISABLED, DEBUG, ALL, OFF, DIRECT)
CF_KEYWORDS(INTERFACE, IMPORT, EXPORT, FILTER, NONE, TABLE, STATES, ROUTES, FILTERS) CF_KEYWORDS(INTERFACE, IMPORT, EXPORT, FILTER, NONE, TABLE, STATES, ROUTES, FILTERS)
CF_KEYWORDS(PASSWORD, FROM, PASSIVE, TO, ID, EVENTS, PACKETS, PROTOCOLS, INTERFACES) CF_KEYWORDS(PASSWORD, FROM, PASSIVE, TO, ID, EVENTS, PACKETS, PROTOCOLS, INTERFACES)
CF_KEYWORDS(PRIMARY, STATS, COUNT, FOR) CF_KEYWORDS(PRIMARY, STATS, COUNT, FOR, COMMANDS)
CF_ENUM(T_ENUM_RTS, RTS_, DUMMY, STATIC, INHERIT, DEVICE, STATIC_DEVICE, REDIRECT, CF_ENUM(T_ENUM_RTS, RTS_, DUMMY, STATIC, INHERIT, DEVICE, STATIC_DEVICE, REDIRECT,
RIP, OSPF, OSPF_EXT, OSPF_IA, OSPF_BOUNDARY, BGP, PIPE) RIP, OSPF, OSPF_EXT, OSPF_IA, OSPF_BOUNDARY, BGP, PIPE)
@ -118,6 +118,7 @@ CF_ADDTO(conf, debug_default)
debug_default: debug_default:
DEBUG PROTOCOLS debug_mask { new_config->proto_default_debug = $3; } DEBUG PROTOCOLS debug_mask { new_config->proto_default_debug = $3; }
| DEBUG COMMANDS expr { new_config->cli_debug = $3; }
; ;
/* Interface patterns */ /* Interface patterns */

View File

@ -233,10 +233,13 @@ cli_tx(sock *s)
static void static void
cli_err(sock *s, int err) cli_err(sock *s, int err)
{ {
if (err) if (config->cli_debug)
log(L_INFO "CLI connection dropped: %s", strerror(err)); {
else if (err)
log(L_INFO "CLI connection closed"); log(L_INFO "CLI connection dropped: %s", strerror(err));
else
log(L_INFO "CLI connection closed");
}
cli_free(s->data); cli_free(s->data);
sk_close(s); sk_close(s);
} }
@ -246,7 +249,8 @@ cli_connect(sock *s, int size)
{ {
cli *c; cli *c;
log(L_INFO "CLI connect"); if (config->cli_debug)
log(L_INFO "CLI connect");
s->rx_hook = cli_rx; s->rx_hook = cli_rx;
s->tx_hook = cli_tx; s->tx_hook = cli_tx;
s->err_hook = cli_err; s->err_hook = cli_err;