summaryrefslogtreecommitdiffstats
path: root/lib/vty.h
diff options
context:
space:
mode:
authorDavid Lamparter <equinox@diac24.net>2010-02-05 09:48:45 +0100
committerDavid Lamparter <equinox@diac24.net>2010-02-05 09:51:24 +0100
commit55d24e7f3dbc69db37781dbff325bda0779778df (patch)
treea2b2525677332fd92ccc66a4c6082c620ba27802 /lib/vty.h
parent647e8e064d8e5316fc89587714a056b1240fa298 (diff)
downloadquagga-55d24e7f3dbc69db37781dbff325bda0779778df.tar.bz2
quagga-55d24e7f3dbc69db37781dbff325bda0779778df.tar.xz
lib: get rid of extraneous output with vty_prepend
the vty_*prepend* family can be used to reduce the amount of output produced by "show running-config" and "write ...". it buffers output in struct vty->prepend (1024 bytes) and outputs it when vty_out is called. if vty_out isn't called, it can be removed with vty_unprepend later. applied on zebra and ospfd to get rid of empty interface blocks.
Diffstat (limited to 'lib/vty.h')
-rw-r--r--lib/vty.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/vty.h b/lib/vty.h
index 7df04b5f..d8f47d86 100644
--- a/lib/vty.h
+++ b/lib/vty.h
@@ -118,6 +118,10 @@ struct vty
/* Timeout seconds and thread. */
unsigned long v_timeout;
struct thread *t_timeout;
+
+ /* Auto-prepending; any vty_out will print this buffer, then clear it: */
+ int prepend_pos;
+ char prepend[1024];
};
/* Integrated configuration file. */
@@ -207,6 +211,9 @@ extern void vty_terminate (void);
extern void vty_reset (void);
extern struct vty *vty_new (void);
extern int vty_out (struct vty *, const char *, ...) PRINTF_ATTRIBUTE(2, 3);
+extern void vty_prepend (struct vty *, const char *, ...) PRINTF_ATTRIBUTE(2, 3);
+extern void vty_unprepend (struct vty *);
+#define vty_prepending(v) ((v)->prepend_pos)
extern void vty_read_config (char *, char *);
extern void vty_time_print (struct vty *, int);
extern void vty_serv_sock (const char *, unsigned short, const char *);