]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Tracing of CLI connections/commands can be now controlled
authorMartin Mares <mj@ucw.cz>
Mon, 29 May 2000 22:10:18 +0000 (22:10 +0000)
committerMartin Mares <mj@ucw.cz>
Mon, 29 May 2000 22:10:18 +0000 (22:10 +0000)
by `debug commands <level>' in the configuration. Level 0 means
no tracing, 1 means connections only, 2 includes all commands.

conf/conf.h
nest/cli.c
nest/config.Y
sysdep/unix/main.c

index dbc747d615bc85d70c8caaa050e269c9ebc42a7a..b8bfd94765c5bde85f1ca6154080a98346527484 100644 (file)
@@ -23,6 +23,7 @@ struct config {
   struct rtable_config *master_rtc;    /* Configuration of master routing table */
   u32 router_id;                       /* Our Router ID */
   unsigned int proto_default_debug;    /* Default protocol debug mask */
+  int cli_debug;                       /* Tracing of CLI connections and commands */
   char *err_msg;                       /* Parser error message */
   int err_lino;                                /* Line containing error */
   char *file_name;                     /* Name of configuration file */
index fb2b6797ac0a343ef515d5e5eacfcd1ac0c8ba7f..ec18bc99124217350fa41afa8e5aaf94d0ea4f17 100644 (file)
@@ -162,6 +162,8 @@ cli_command(struct cli *c)
   struct config f;
   int res;
 
+  if (config->cli_debug > 1)
+    log(L_TRACE "CLI: %s", c->rx_buf);
   bzero(&f, sizeof(f));
   f.mem = c->parser_pool;
   cf_read_hook = cli_cmd_read_hook;
index e2668f55215ccccf149e734d0640fafa0c32bbaf..2918d255e5e466b7de91c9bfa3bd29e284b627cf 100644 (file)
@@ -22,7 +22,7 @@ CF_DECLS
 CF_KEYWORDS(ROUTER, ID, PROTOCOL, PREFERENCE, DISABLED, DEBUG, ALL, OFF, DIRECT)
 CF_KEYWORDS(INTERFACE, IMPORT, EXPORT, FILTER, NONE, TABLE, STATES, ROUTES, FILTERS)
 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,
        RIP, OSPF, OSPF_EXT, OSPF_IA, OSPF_BOUNDARY, BGP, PIPE)
@@ -118,6 +118,7 @@ CF_ADDTO(conf, debug_default)
 
 debug_default:
    DEBUG PROTOCOLS debug_mask { new_config->proto_default_debug = $3; }
+ | DEBUG COMMANDS expr { new_config->cli_debug = $3; }
  ;
 
 /* Interface patterns */
index 971c79ddff133419260f4a4d7814028420a6d237..fed833bb4bfcc1e3229956118e6ac82131f6314d 100644 (file)
@@ -233,10 +233,13 @@ cli_tx(sock *s)
 static void
 cli_err(sock *s, int err)
 {
-  if (err)
-    log(L_INFO "CLI connection dropped: %s", strerror(err));
-  else
-    log(L_INFO "CLI connection closed");
+  if (config->cli_debug)
+    {
+      if (err)
+       log(L_INFO "CLI connection dropped: %s", strerror(err));
+      else
+       log(L_INFO "CLI connection closed");
+    }
   cli_free(s->data);
   sk_close(s);
 }
@@ -246,7 +249,8 @@ cli_connect(sock *s, int size)
 {
   cli *c;
 
-  log(L_INFO "CLI connect");
+  if (config->cli_debug)
+    log(L_INFO "CLI connect");
   s->rx_hook = cli_rx;
   s->tx_hook = cli_tx;
   s->err_hook = cli_err;