summaryrefslogtreecommitdiffstats
path: root/src
AgeCommit message (Collapse)Author
2018-01-03curses: Add CTRL-N/CTRL-P for next/previous elementAlexis Hildebrandt
2018-01-03curses: Fix seperator linesAlexis Hildebrandt
when section above or below is collapsed
2018-01-03Fix typographical errorsAlexis Hildebrandt
2017-02-02out_curses: use xcalloc instead of a fixed bufferNachiketa Prachanda
In put_line(), replace the fixed onstack buffer with a xcalloc-ed buffer. This fixes a bmon crash with terminal size larger than 2048 bytes. The crash be reproduced with $ stty cols 2100 $ bmon .... Signed-off-by: Nachiketa Prachanda <nchkta@gmail.com>
2016-12-13netlink: Add rx_nohandler link stat counterTobias Klauser
Hook up the device rx nohandler stat counter available in the upcoming libnl 3.2.29, added in libnl commit 5040fc8a4994 ("lib/route: add rx_nohandler link stats field"). Also add a compatibility define, so older libnl version will still work fine. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2016-11-12Use a monotonic clock instead of a realtime clockBaptiste Jonglez
Using a realtime clock is a bad idea: it is affected by any kind of time change, which can happen when the administrator modifies the system time, or more simply when a laptop suspends to RAM and then wakes up from sleep. With the current approach of using a realtime clock: - if the system time jumps forward (e.g. when resuming after a suspend-to-RAM), bmon would take 100% CPU and display random graph data extremely fast, until it "catches up" with the new time. - if the system time jumps backwards, bmon would freeze until *time* "catches up" to the point it was before. bmon then (incorrectly) displays a spike in the graph, because lots of packets have been sent/received since the last update. Instead of using gettimeofday(), switch to clock_gettime() with CLOCK_MONOTONIC on systems that support it. OS X does not provide clock_gettime(), so this commit also adds a Mach-specific implementation. This change has been tested on Linux 4.1 with glibc and musl, and on FreeBSD 10.0-RELEASE-p12.
2016-10-17Flushed stdout after every group is printed in an iteration. This allows us ↵Adam Drescher
to redirect ascii based output to a file.
2016-10-07Changed the long format string example to be one continuous string. While ↵Adam Drescher
this is less pretty than it was before, it allows the user to actually paste the format string directly into their bmon command to try it out. Before this change, the way the string was formatted you could not simply paste it in and run it (whether it had single or double quotes).
2016-10-07Replaced format string double quotes with single quotes to prevent the shell ↵Adam Drescher
from running our provided format placeholders.
2016-08-04Fix issue #43blastmaster
* Remove newline from put_line formatstring while drawing details.
2016-08-02Fix item selection after element subgroups have been removedThomas Graf
If the element currently selected is removed due to inactivity, the selection is fixed up to the previous element in the list. This step must be done after the entire element subgroup has been removed. Signed-off-by: Thomas Graf <tgraf@suug.ch>
2016-08-02Use DEFAULT_GROUP instead of hardcoded stringThomas Graf
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2016-08-02dummy: Use default group as first group nameThomas Graf
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2016-08-02Derive initial interface selection based on policyThomas Graf
So far, any output module with a selection capability defaulted to the first interface in the list as first pick. This uses the policy configuration instead and thus allows to select which interface to display first: Examples: bmon -p 'em1,*' bmon -p 'eth*,lo,*' The first rule that finds a matching interface is used and will trigger initial selection. Note that this is *ONLY* evaluated after the first read of the statistics so if a more preferred interface appears later, the selection will not be changed. Signed-off-by: Thomas Graf <tgraf@suug.ch>
2016-07-19enabling colors for bmonblastmaster
This commit enables colors in bmon. It adds configuration options to let the user decide, which colors should be used. Therefor the graph_rx and graph_tx layouts are introduced and applied respectively. * Add graph_rx, graph_tx and layout_cfg fields. * Setting default colors if colorized output is enabled. * draw_table accept additional layout parameter and apply the given layout for the table graph. * Apply layouts for rx, tx graph and header and statusbar. * Add include/layout.h, which provides functions to parse, color and attribute strings and set the layout. * Adding a default layout-config example in examples/bmon.conf. [Edit: Based on original work by eri!, #PR23]
2016-04-28format: Add missing braces around 'if' clauseTobias Klauser
When compiling bmon with gcc 6.1 it complains with the following warning: out_format.c: In function ‘get_token’: out_format.c:134:10: warning: this ‘if’ clause does not guard... [-Wmisleading-indentation] } else if (!strncasecmp(token+5, "txrate:", 7)) ^~ out_format.c:136:4: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘if’ return buf; ^~~~~~ Indeed, the 'return buf' should only be executed if it was snprintf()'ed to. Otherwise "unknown" should be returned. Fix this by adding braces. Also use the 'type' variable in strncasecmp() as in the other checks. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2016-03-29Add 'info' option to show additional info screen by defaultThomas Graf
Suggested-by: @Berzerker Signed-off-by: Thomas Graf <tgraf@suug.ch>
2016-03-26Use uintmax_t cast for some printfs.Benny Siegert
Some of the BSDs have 32-bit, some 64-bit vars for this.
2016-03-26NetBSD does not have send or receive quotas.Benny Siegert
2016-01-29curses: Add ability to reset statisticsThomas Graf
Press 'r' in curses mode to reset a statistic counter to start counting from 0 again. This does NOT reset the counter from the source itself but merely emulates a counter reset. If you restart bmon, the counter will be back to its total value. Signed-off-by: Thomas Graf <tgraf@suug.ch>
2015-12-16netlink: BUG() if we don't have parent informationThomas Graf
This would indicate that we hang a TC object to the tree root. Signed-off-by: Thomas Graf <tgraf@suug.ch>
2015-12-16netlink: Use ifindex of parent TC object when searching leaf qdiscsThomas Graf
The qdisc cache is host wide, the parent classid is not unique so the ifindex of the parent tc object must be set in the filter otherwise a leaf qdisc with an identical parent id in another device can be mistaken. This also converts the class_cache to be passed up through the stack to make clear it is not system wide but specific to the ifindex we are currently handling. Signed-off-by: Thomas Graf <tgraf@suug.ch>
2015-12-16bmon: Mark attr_def_free() and __lookup_element() staticThomas Graf
Fixes sparse warnings: attr.c:114:6: warning: symbol 'attr_def_free' was not declared. Should it be static? element.c:116:16: warning: symbol '__lookup_element' was not declared. Should it be static? Signed-off-by: Thomas Graf <tgraf@suug.ch>
2015-12-16bmon: Properly pass NULL pointers instead of 0Thomas Graf
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2015-12-16bmon: Remove dead code and make sig_exit() staticThomas Graf
Fixes sparse warnings: bmon.c:36:5: warning: symbol 'do_quit' was not declared. Should it be static? bmon.c:37:5: warning: symbol 'is_daemon' was not declared. Should it be static? bmon.c:91:12: warning: symbol 'sig_int' was not declared. Should it be static? bmon.c:98:6: warning: symbol 'sig_exit' was not declared. Should it be static? Signed-off-by: Thomas Graf <tgraf@suug.ch>
2015-12-16curses: Pass in proper NULL pointerThomas Graf
Fix sparse warning: out_curses.c:433:25: warning: Using plain integer as NULL pointer Signed-off-by: Thomas Graf <tgraf@suug.ch>
2015-12-16curses: Make float2str staticThomas Graf
Fix sparse message: out_curses.c:140:6: warning: symbol 'float2str' was not declared. Should it be static? Signed-off-by: Thomas Graf <tgraf@suug.ch>
2015-11-15Merge pull request #30 from tklauser/ip6-link-statsThomas Graf
Add additional IPv6 link stats
2015-08-06Add additional IPv6 link statsTobias Klauser
Hook up additional IPv6 link statistics counters available since libnl v3.2.25. Also add compatibility defines, so bmon can still be compiled against older libnl versions. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-07-25Update copyrightThomas Graf
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2015-07-25netlink: Only disable TC stats if QoS is not available in kernelThomas Graf
Up to now, the entire Netlink module was disable if QoS statistics were not available. Merely disable TC stats themselves but continue using the input module. Reported-by: Wen Chiu <Wen.Chiu@brocade.com> Signed-off-by: Thomas Graf <tgraf@suug.ch>
2015-06-30format: Don't print error message for unavailable attributesThomas Graf
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2015-05-31Fix wrong unit displayed when using "--use-bit" optionChocobo1
2015-05-31Fix inconsistency in format module exampleChocobo1
2015-04-30Explicitly include linux/if.h to fix cross-compile errorTobias Klauser
When compiling bmon with the Linaro 2014.01 ARM toolchain (gcc-linaro-arm-linux-gnueabihf-4.8-2014.01_linux) the following compile error occurs: in_netlink.c: In function ‘do_link’: in_netlink.c:688:53: error: ‘IFF_UP’ undeclared (first use in this function) Fix it by explicitly including linux/if.h, where IFF_UP is defined. Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
2015-01-19using `cfg_setint` is triggering an assertion in confuse library, should use ↵Chocobo1
`cfg_setbool` instead
2014-12-16BSD: Provide minimal interface informationThomas Graf
Including: - MTU - Metric - RX/TX IRQ Quota Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-25build: Enable -WallThomas Graf
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-25Annotate unused variablesThomas Graf
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-25Initialize t to silence uninit warningThomas Graf
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-25Remove unused write_column() functionThomas Graf
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-25Remove unused variablesThomas Graf
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-24curses: Handle out of memory return value of of vasprintf()fixesThomas Graf
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-24proc: Silence warning of unhandled fgets() return valueThomas Graf
Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-24element: Remove unneeded condition, element is always member of groupThomas Graf
Fixes: CID 49003 Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-24utils: Fix copy_timestamp() accuracyThomas Graf
Fixes: CID 49000 Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-24curses: Check if value is provided for ngraphThomas Graf
Fixes: CID 49001 Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-24proc: Fix leakage of fd if element lookup failedThomas Graf
Fixes: CID 49002 Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-24Fix uint64_t printf modifiersThomas Graf
Reported by clang. Repo compiles cleanly with clang at this point. Signed-off-by: Thomas Graf <tgraf@suug.ch>
2014-08-24curses: Fix '?' to toggle quick helpThomas Graf
Previously, pressing '?' only made the quick help appear but not disappear again. Reported-by: Bill [github id "broomdodger"] Signed-off-by: Thomas Graf <tgraf@suug.ch>