From: Brendan O'Dea Date: Fri, 3 Dec 2004 06:41:11 +0000 (+0000) Subject: skip newlines in ringbuffer messages X-Git-Tag: 2.2.1-2fdn3.1~19^2^2~1^2~288 X-Git-Url: http://git.sameswireless.fr/l2tpns.git/commitdiff_plain/502ab2735286f7933991f37f80932c943d8cd10c?ds=inline;hp=f5fb6dea8634c6c3d41857225c4b26d4c0f1c960 skip newlines in ringbuffer messages --- diff --git a/Changes b/Changes index 676e2aa..e6ac0bf 100644 --- a/Changes +++ b/Changes @@ -3,6 +3,7 @@ changes, propagated in the heartbeats; the master with the highest # of changes (that has kept in contact with the LAC through the outage) prevails. +- Skip newlines in ringbuffer messages to CLI. * Wed Dec 1 2004 Brendan O'Dea 2.0.12 - The "This time, for sure!" release. diff --git a/cli.c b/cli.c index 86751ea..daeee2b 100644 --- a/cli.c +++ b/cli.c @@ -2,7 +2,7 @@ // vim: sw=8 ts=8 char const *cvs_name = "$Name: $"; -char const *cvs_id_cli = "$Id: cli.c,v 1.38 2004-12-01 02:51:06 bodea Exp $"; +char const *cvs_id_cli = "$Id: cli.c,v 1.39 2004-12-03 06:41:11 bodea Exp $"; #include #include @@ -1861,42 +1861,44 @@ static int cmd_set(struct cli_def *cli, char *command, char **argv, int argc) int regular_stuff(struct cli_def *cli) { - int i = debug_rb_tail; - int reprompt = 0; + int out = 0; + int i; #ifdef RINGBUFFER - while (i != ringbuffer->tail) + for (i = debug_rb_tail; i != ringbuffer->tail; i = (i + 1) % RINGBUFFER_SIZE) { - int show_message = 0; + char *m = ringbuffer->buffer[i].message; + char *p; + int show = 0; + + if (!*m) continue; - if (*ringbuffer->buffer[i].message) + switch (ringbuffer->buffer[i].level) { - // Always show messages if we are doing general debug - if (ringbuffer->buffer[i].level == 0 && debug_flags.critical) show_message = 1; - if (ringbuffer->buffer[i].level == 1 && debug_flags.error) show_message = 1; - if (ringbuffer->buffer[i].level == 2 && debug_flags.warning) show_message = 1; - if (ringbuffer->buffer[i].level == 3 && debug_flags.info) show_message = 1; - if (ringbuffer->buffer[i].level == 4 && debug_flags.calls) show_message = 1; - if (ringbuffer->buffer[i].level == 5 && debug_flags.data) show_message = 1; + case 0: show = debug_flags.critical; break; + case 1: show = debug_flags.error; break; + case 2: show = debug_flags.warning; break; + case 3: show = debug_flags.info; break; + case 4: show = debug_flags.calls; break; + case 5: show = debug_flags.data; break; } - if (show_message) - { - cli_print(cli, "\r%s-%u-%u %s", - debug_levels[(int)ringbuffer->buffer[i].level], - ringbuffer->buffer[i].tunnel, - ringbuffer->buffer[i].session, - ringbuffer->buffer[i].message); + if (!show) continue; - reprompt = 1; - } + if (!(p = strchr(m, '\n'))) + p = m + strlen(p); + + cli_print(cli, "\r%s-%u-%u %.*s", + debug_levels[(int)ringbuffer->buffer[i].level], + ringbuffer->buffer[i].tunnel, + ringbuffer->buffer[i].session, + p - m, m); - if (++i == ringbuffer->tail) break; - if (i == RINGBUFFER_SIZE) i = 0; + out++; } debug_rb_tail = ringbuffer->tail; - if (reprompt) + if (out) cli_reprompt(cli); #endif return CLI_OK;