Annotation of embedaddon/bird/nest/cmds.c, revision 1.1.1.2

1.1       misho       1: /*
                      2:  *     BIRD Internet Routing Daemon -- CLI Commands Which Don't Fit Anywhere Else
                      3:  *
                      4:  *     (c) 2000 Martin Mares <mj@ucw.cz>
                      5:  *
                      6:  *     Can be freely distributed and used under the terms of the GNU GPL.
                      7:  */
                      8: 
                      9: #include "nest/bird.h"
                     10: #include "nest/protocol.h"
                     11: #include "nest/route.h"
                     12: #include "nest/cli.h"
                     13: #include "conf/conf.h"
                     14: #include "nest/cmds.h"
                     15: #include "lib/string.h"
                     16: #include "lib/resource.h"
                     17: #include "filter/filter.h"
                     18: 
                     19: extern int shutting_down;
                     20: extern int configuring;
                     21: 
                     22: void
                     23: cmd_show_status(void)
                     24: {
                     25:   byte tim[TM_DATETIME_BUFFER_SIZE];
                     26: 
                     27:   cli_msg(-1000, "BIRD " BIRD_VERSION);
                     28:   tm_format_datetime(tim, &config->tf_base, now);
                     29:   cli_msg(-1011, "Router ID is %R", config->router_id);
                     30:   cli_msg(-1011, "Current server time is %s", tim);
                     31:   tm_format_datetime(tim, &config->tf_base, boot_time);
                     32:   cli_msg(-1011, "Last reboot on %s", tim);
                     33:   tm_format_datetime(tim, &config->tf_base, config->load_time);
                     34:   cli_msg(-1011, "Last reconfiguration on %s", tim);
                     35: 
                     36:   graceful_restart_show_status();
                     37: 
                     38:   if (shutting_down)
                     39:     cli_msg(13, "Shutdown in progress");
                     40:   else if (configuring)
                     41:     cli_msg(13, "Reconfiguration in progress");
                     42:   else
                     43:     cli_msg(13, "Daemon is up and running");
                     44: }
                     45: 
                     46: void
                     47: cmd_show_symbols(struct sym_show_data *sd)
                     48: {
1.1.1.2 ! misho      49:   if (sd->sym)
        !            50:     cli_msg(1010, "%-8s\t%s", sd->sym->name, cf_symbol_class_name(sd->sym));
1.1       misho      51:   else
1.1.1.2 ! misho      52:   {
        !            53:     HASH_WALK(config->sym_hash, next, sym)
1.1       misho      54:     {
1.1.1.2 ! misho      55:       if (!sym->scope->active)
        !            56:        continue;
        !            57: 
        !            58:       if (sd->type && (sym->class != sd->type))
        !            59:        continue;
        !            60: 
        !            61:       cli_msg(-1010, "%-8s\t%s", sym->name, cf_symbol_class_name(sym));
1.1       misho      62:     }
1.1.1.2 ! misho      63:     HASH_WALK_END;
        !            64: 
        !            65:     cli_msg(0, "");
        !            66:   }
1.1       misho      67: }
                     68: 
                     69: static void
                     70: print_size(char *dsc, size_t val)
                     71: {
                     72:   char *px = " kMG";
                     73:   int i = 0;
                     74:   while ((val >= 10000) && (i < 3))
                     75:     {
                     76:       val = (val + 512) / 1024;
                     77:       i++;
                     78:     }
                     79: 
                     80:   cli_msg(-1018, "%-17s %4u %cB", dsc, (unsigned) val, px[i]);
                     81: }
                     82: 
                     83: extern pool *rt_table_pool;
                     84: extern pool *rta_pool;
                     85: extern pool *roa_pool;
                     86: extern pool *proto_pool;
                     87: 
                     88: void
                     89: cmd_show_memory(void)
                     90: {
                     91:   cli_msg(-1018, "BIRD memory usage");
                     92:   print_size("Routing tables:", rmemsize(rt_table_pool));
                     93:   print_size("Route attributes:", rmemsize(rta_pool));
                     94:   print_size("ROA tables:", rmemsize(roa_pool));
                     95:   print_size("Protocols:", rmemsize(proto_pool));
                     96:   print_size("Total:", rmemsize(&root_pool));
                     97:   cli_msg(0, "");
                     98: }
                     99: 
                    100: void
                    101: cmd_eval(struct f_inst *expr)
                    102: {
                    103:   struct f_val v = f_eval(expr, this_cli->parser_pool);
                    104: 
                    105:   if (v.type == T_RETURN)
                    106:     {
                    107:       cli_msg(8008, "runtime error");
                    108:       return;
                    109:     }
                    110: 
                    111:   buffer buf;
                    112:   LOG_BUFFER_INIT(buf);
                    113:   val_format(v, &buf);
                    114:   cli_msg(23, "%s", buf.start);
                    115: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>