Annotation of embedaddon/bird2/nest/cmds.c, revision 1.1

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_time(tim, &config->tf_base, current_time());
        !            29:   cli_msg(-1011, "Router ID is %R", config->router_id);
        !            30:   cli_msg(-1011, "Current server time is %s", tim);
        !            31:   tm_format_time(tim, &config->tf_base, boot_time);
        !            32:   cli_msg(-1011, "Last reboot on %s", tim);
        !            33:   tm_format_time(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: {
        !            49:   if (sd->sym)
        !            50:     cli_msg(1010, "%-8s\t%s", sd->sym->name, cf_symbol_class_name(sd->sym));
        !            51:   else
        !            52:   {
        !            53:     HASH_WALK(config->sym_hash, next, sym)
        !            54:     {
        !            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));
        !            62:     }
        !            63:     HASH_WALK_END;
        !            64: 
        !            65:     cli_msg(0, "");
        !            66:   }
        !            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: 
        !            86: void
        !            87: cmd_show_memory(void)
        !            88: {
        !            89:   cli_msg(-1018, "BIRD memory usage");
        !            90:   print_size("Routing tables:", rmemsize(rt_table_pool));
        !            91:   print_size("Route attributes:", rmemsize(rta_pool));
        !            92:   print_size("Protocols:", rmemsize(proto_pool));
        !            93:   print_size("Total:", rmemsize(&root_pool));
        !            94:   cli_msg(0, "");
        !            95: }
        !            96: 
        !            97: void
        !            98: cmd_eval(const struct f_line *expr)
        !            99: {
        !           100:   buffer buf;
        !           101:   LOG_BUFFER_INIT(buf);
        !           102: 
        !           103:   if (f_eval_buf(expr, this_cli->parser_pool, &buf) > F_RETURN)
        !           104:     {
        !           105:       cli_msg(8008, "runtime error");
        !           106:       return;
        !           107:     }
        !           108: 
        !           109:   cli_msg(23, "%s", buf.start);
        !           110: }

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