From 582d3ed4bbbe1527ec244188d2e9c63bce737d38 Mon Sep 17 00:00:00 2001 From: marschap Date: Thu, 27 Apr 2006 20:17:47 +0000 Subject: [PATCH] add iface screen to lcdproc; change option -d back to -f --- clients/lcdproc/Makefile.am | 2 +- clients/lcdproc/lcdproc.conf | 27 +++++++++++++++++++++++++++ clients/lcdproc/main.c | 20 ++++++++++++-------- clients/lcdproc/main.h | 2 ++ clients/lcdproc/mem.c | 4 +++- 5 files changed, 45 insertions(+), 10 deletions(-) diff --git a/clients/lcdproc/Makefile.am b/clients/lcdproc/Makefile.am index b0379bc..45aa5ff 100644 --- a/clients/lcdproc/Makefile.am +++ b/clients/lcdproc/Makefile.am @@ -4,7 +4,7 @@ sysconf_DATA = lcdproc.conf bin_PROGRAMS = lcdproc -lcdproc_SOURCES = main.c main.h mode.c mode.h batt.c batt.h chrono.c chrono.h cpu.c cpu.h cpu_smp.c cpu_smp.h disk.c disk.h load.c load.h mem.c mem.h machine.h machine_Linux.c machine_OpenBSD.c machine_FreeBSD.c machine_NetBSD.c machine_Darwin.c machine_SunOS.c util.c util.h +lcdproc_SOURCES = main.c main.h mode.c mode.h batt.c batt.h chrono.c chrono.h cpu.c cpu.h cpu_smp.c cpu_smp.h disk.c disk.h load.c load.h mem.c mem.h machine.h machine_Linux.c machine_OpenBSD.c machine_FreeBSD.c machine_NetBSD.c machine_Darwin.c machine_SunOS.c util.c util.h iface.c iface.h lcdproc_LDADD = @ldap_libs@ ../../shared/libLCDstuff.a diff --git a/clients/lcdproc/lcdproc.conf b/clients/lcdproc/lcdproc.conf index 7fd59c5..deb9dc4 100644 --- a/clients/lcdproc/lcdproc.conf +++ b/clients/lcdproc/lcdproc.conf @@ -30,6 +30,33 @@ OnTime=1 OffTime=2 ShowInvisible=false +[Iface] +# Show screen +Active=True + +# Show stats for Interface0 +Interface0=eth0 +# Interface0 alias name to display +Alias0=LAN + +# Show stats for Interface1 +#Interface1=eth1 +# Interface1 alias name to display +#Alias1=WAN + +# Show stats for Interface2 +#Interface2=eth2 +# Interface2 alias name to display +#Alias2=MGMT + +# for more than 3 interfaces change iface.h and rebuild + +# Units to display byte, bit or packet +unit=bit + +# add screen with transferred traffic +#transfer=TRUE + [Memory] # Show screen Active=True diff --git a/clients/lcdproc/main.c b/clients/lcdproc/main.c index 489bbe5..30ca8cc 100644 --- a/clients/lcdproc/main.c +++ b/clients/lcdproc/main.c @@ -32,6 +32,7 @@ #include "load.h" #include "mem.h" #include "machine.h" +#include "iface.h" // TODO: Commenting... Everything! @@ -82,6 +83,7 @@ mode sequence[] = // flags default ACTIVE will run by default // longname which on off inv timer flags { "CPU", 'C', 1, 2, 0, 0xffff, ACTIVE, cpu_screen }, // [C]PU + { "Iface", 'I', 1, 2, 0, 0xffff, 0, iface_screen }, // [I]face { "Memory", 'M', 4, 16, 0, 0xffff, ACTIVE, mem_screen }, // [M]emory { "Load", 'L', 64, 128, 1, 0xffff, ACTIVE, xload_screen }, // [L]oad (load histogram) { "TimeDate", 'T', 4, 64, 0, 0xffff, ACTIVE, time_screen }, // [T]ime/Date @@ -105,7 +107,7 @@ static int islow = -1; char * progname = "lcdproc"; char * server = NULL; int port = LCDPORT; -int daemonize = UNSET_INT; +int foreground = UNSET_INT; static int report_level = UNSET_INT; static int report_dest = UNSET_INT; char configfile[256]; /* a lot of space in the executable. */ @@ -217,7 +219,7 @@ main(int argc, char **argv) lcd_cellwid = 5; lcd_cellhgt = 8; - if (daemonize) { + if (foreground == 0) { if (daemon(1,0) != 0) { fprintf(stderr, "Error: daemonize failed"); return(EXIT_FAILURE); @@ -247,7 +249,7 @@ process_command_line(int argc, char **argv) opterr = 0; /* get options */ - while ((c = getopt( argc, argv, "s:p:e:c:dhv")) > 0) { + while ((c = getopt( argc, argv, "s:p:e:c:fhv")) > 0) { switch (c) { // c is for config file case 'c': @@ -272,8 +274,8 @@ process_command_line(int argc, char **argv) case 'e': islow = atoi(optarg); break; - case 'd': - daemonize = TRUE; + case 'f': + foreground = TRUE; break; case 'h': HelpScreen(EXIT_SUCCESS); @@ -341,8 +343,8 @@ process_configfile(char *configfile) report_dest = RPT_DEST_STDERR; } } - if (daemonize == UNSET_INT) { - daemonize = config_get_bool(progname, "Daemonize", 0, 1); + if (foreground == UNSET_INT) { + foreground = config_get_bool(progname, "Foreground", 0, 0); } if (islow < 0) { islow = config_get_int(progname, "delay", 0, -1); @@ -374,7 +376,7 @@ HelpScreen (int exit_state) " where are\n" " -s connect to LCDd daemon on \n" " -p connect to LCDd daemon using \n" - " -d daemonize\n" + " -f run in foreground\n" " -e slow down initial announcement of modes (in 1/100s)\n" " -c use a configuration file other than %s\n" " -h show this help screen\n" @@ -387,6 +389,7 @@ HelpScreen (int exit_state) " M Memory memory & swap usage\n" " S ProcSize biggest processes size\n" " D Disk disk usage\n" + " I Iface network interface usage\n" " B Battery battery status\n" " T TimeDate time & date information\n" " O OldTime old time screen\n" @@ -415,6 +418,7 @@ exit_program(int val) exit(val); } +#define LCDPROC_MENUS #ifdef LCDPROC_MENUS int menus_init () diff --git a/clients/lcdproc/main.h b/clients/lcdproc/main.h index 9a58d12..7c4aff0 100644 --- a/clients/lcdproc/main.h +++ b/clients/lcdproc/main.h @@ -61,6 +61,8 @@ const char *get_hostname(); const char *get_sysname(); const char *get_sysrelease(); +extern char configfile[]; + #ifndef min # define min(a,b) (((a) < (b)) ? (a) : (b)) #endif diff --git a/clients/lcdproc/mem.c b/clients/lcdproc/mem.c index 3aa59e7..25277e1 100644 --- a/clients/lcdproc/mem.c +++ b/clients/lcdproc/mem.c @@ -255,7 +255,9 @@ mem_top_screen (int rep, int display, int *flags_ptr) // frame from (2nd line, left) to (last line, right) sock_send_string(sock, "widget_add S f frame\n"); sprintf(buffer, "widget_set S f 1 2 %i %i %i 5 v %i\n", - lcd_wid, lcd_hgt, lcd_wid, ((lcd_hgt >= 4) ? 8 : 12)); + lcd_wid, lcd_hgt, lcd_wid, + // scroll rate: 1 line every X ticks (= 1/8 sec) + ((lcd_hgt >= 4) ? 8 : 12)); sock_send_string(sock, buffer); // frame contents