]> git.proxmox.com Git - mirror_frr.git/blob - lib/grammar_sandbox_main.c
zebra, lib: fix the ZEBRA_INTERFACE_VRF_UPDATE zapi message
[mirror_frr.git] / lib / grammar_sandbox_main.c
1 /*
2 * Testing shim and API examples for the new CLI backend.
3 *
4 * Minimal main() to run grammar_sandbox standalone.
5 * [split off grammar_sandbox.c 2017-01-23]
6 * --
7 * Copyright (C) 2016 Cumulus Networks, Inc.
8 * Copyright (C) 2017 David Lamparter for NetDEF, Inc.
9 *
10 * This file is part of FreeRangeRouting (FRR).
11 *
12 * FRR is free software; you can redistribute it and/or modify it under the
13 * terms of the GNU General Public License as published by the Free Software
14 * Foundation; either version 2, or (at your option) any later version.
15 *
16 * FRR is distributed in the hope that it will be useful, but WITHOUT ANY
17 * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
18 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
19 * details.
20 *
21 * You should have received a copy of the GNU General Public License along
22 * with this program; see the file COPYING; if not, write to the Free Software
23 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
24 */
25
26 #ifdef HAVE_CONFIG_H
27 #include "config.h"
28 #endif
29
30 #include "command.h"
31 #include "memory_vty.h"
32
33 static void vty_do_exit(int isexit)
34 {
35 printf("\nend.\n");
36 if (!isexit)
37 exit(0);
38 }
39
40 struct thread_master *master;
41
42 int main(int argc, char **argv)
43 {
44 struct thread thread;
45
46 master = thread_master_create(NULL);
47
48 openzlog("grammar_sandbox", "NONE", 0, LOG_CONS | LOG_NDELAY | LOG_PID,
49 LOG_DAEMON);
50 zlog_set_level(ZLOG_DEST_SYSLOG, ZLOG_DISABLED);
51 zlog_set_level(ZLOG_DEST_STDOUT, LOG_DEBUG);
52 zlog_set_level(ZLOG_DEST_MONITOR, ZLOG_DISABLED);
53
54 /* Library inits. */
55 cmd_init(1);
56 host.name = strdup("test");
57 host.domainname = strdup("testdomainname");
58
59 vty_init(master);
60 memory_init();
61
62 vty_stdio(vty_do_exit);
63
64 /* Fetch next active thread. */
65 while (thread_fetch(master, &thread))
66 thread_call(&thread);
67
68 /* Not reached. */
69 exit(0);
70 }