From 296eb5e7063b4051927f2e2bf94e1034bf64f60c Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Wed, 9 May 2012 18:56:57 +0200 Subject: [PATCH] Error handling: Never output null as full_text (JSON), prefix messages with i3status (Thanks Artemis) The former made i3bar crash, the latter is helpful for debugging. --- src/print_cpu_temperature.c | 1 + src/print_cpu_usage.c | 3 ++- src/print_ip_addr.c | 2 +- src/print_ipv6_addr.c | 2 +- src/print_load.c | 3 ++- src/print_volume.c | 12 ++++++------ 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/print_cpu_temperature.c b/src/print_cpu_temperature.c index 7797f06..8e7d7f9 100644 --- a/src/print_cpu_temperature.c +++ b/src/print_cpu_temperature.c @@ -113,5 +113,6 @@ void print_cpu_temperature_info(yajl_gen json_gen, char *buffer, int zone, const return; error: #endif + OUTPUT_FULL_TEXT("cant read temp"); (void)fputs("i3status: Cannot read temperature. Verify that you have a thermal zone in /sys/class/thermal or disable the cpu_temperature module in your i3status config.\n", stderr); } diff --git a/src/print_cpu_usage.c b/src/print_cpu_usage.c index 7113eae..7820840 100644 --- a/src/print_cpu_usage.c +++ b/src/print_cpu_usage.c @@ -92,5 +92,6 @@ void print_cpu_usage(yajl_gen json_gen, char *buffer, const char *format) { OUTPUT_FULL_TEXT(buffer); return; error: - (void)fputs("Cannot read usage\n", stderr); + OUTPUT_FULL_TEXT("cant read cpu usage"); + (void)fputs("i3status: Cannot read CPU usage\n", stderr); } diff --git a/src/print_ip_addr.c b/src/print_ip_addr.c index 778427c..909a8b2 100644 --- a/src/print_ip_addr.c +++ b/src/print_ip_addr.c @@ -56,7 +56,7 @@ const char *get_ip_addr(const char *interface) { int ret; if ((ret = getnameinfo(addrp->ifa_addr, len, part, sizeof(part), NULL, 0, NI_NUMERICHOST)) != 0) { - fprintf(stderr, "getnameinfo(): %s\n", gai_strerror(ret)); + fprintf(stderr, "i3status: getnameinfo(): %s\n", gai_strerror(ret)); freeifaddrs(ifaddr); return "no IP"; } diff --git a/src/print_ipv6_addr.c b/src/print_ipv6_addr.c index f987b59..b7f668a 100644 --- a/src/print_ipv6_addr.c +++ b/src/print_ipv6_addr.c @@ -51,7 +51,7 @@ static char *get_sockname(struct addrinfo *addr) { if ((ret = getnameinfo((struct sockaddr*)&local, local_len, buf, sizeof(buf), NULL, 0, NI_NUMERICHOST)) != 0) { - fprintf(stderr, "getnameinfo(): %s\n", gai_strerror(ret)); + fprintf(stderr, "i3status: getnameinfo(): %s\n", gai_strerror(ret)); (void)close(fd); return NULL; } diff --git a/src/print_load.c b/src/print_load.c index d0d65f7..7fd54ca 100644 --- a/src/print_load.c +++ b/src/print_load.c @@ -45,5 +45,6 @@ void print_load(yajl_gen json_gen, char *buffer, const char *format) { return; error: #endif - (void)fputs("Cannot read load\n", stderr); + OUTPUT_FULL_TEXT("cant read load"); + (void)fputs("i3status: Cannot read system load using getloadavg()\n", stderr); } diff --git a/src/print_volume.c b/src/print_volume.c index 7b38e63..dbf5e1f 100644 --- a/src/print_volume.c +++ b/src/print_volume.c @@ -97,14 +97,14 @@ void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char * } if ((err = snd_mixer_open(&(hdl->m), 0)) < 0) { - fprintf(stderr, "ALSA: Cannot open mixer: %s\n", snd_strerror(err)); + fprintf(stderr, "i3status: ALSA: Cannot open mixer: %s\n", snd_strerror(err)); free_hdl(hdl); return; } /* Attach this mixer handle to the given device */ if ((err = snd_mixer_attach(hdl->m, device)) < 0) { - fprintf(stderr, "ALSA: Cannot attach mixer to device: %s\n", snd_strerror(err)); + fprintf(stderr, "i3status: ALSA: Cannot attach mixer to device: %s\n", snd_strerror(err)); snd_mixer_close(hdl->m); free_hdl(hdl); return; @@ -112,14 +112,14 @@ void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char * /* Register this mixer */ if ((err = snd_mixer_selem_register(hdl->m, NULL, NULL)) < 0) { - fprintf(stderr, "ALSA: snd_mixer_selem_register: %s\n", snd_strerror(err)); + fprintf(stderr, "i3status: ALSA: snd_mixer_selem_register: %s\n", snd_strerror(err)); snd_mixer_close(hdl->m); free_hdl(hdl); return; } if ((err = snd_mixer_load(hdl->m)) < 0) { - fprintf(stderr, "ALSA: snd_mixer_load: %s\n", snd_strerror(err)); + fprintf(stderr, "i3status: ALSA: snd_mixer_load: %s\n", snd_strerror(err)); snd_mixer_close(hdl->m); free_hdl(hdl); return; @@ -129,7 +129,7 @@ void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char * snd_mixer_selem_id_set_index(hdl->sid, mixer_idx); snd_mixer_selem_id_set_name(hdl->sid, mixer); if (!(hdl->elem = snd_mixer_find_selem(hdl->m, hdl->sid))) { - fprintf(stderr, "ALSA: Cannot find mixer %s (index %i)\n", + fprintf(stderr, "i3status: ALSA: Cannot find mixer %s (index %i)\n", snd_mixer_selem_id_get_name(hdl->sid), snd_mixer_selem_id_get_index(hdl->sid)); snd_mixer_close(hdl->m); free_hdl(hdl); @@ -155,7 +155,7 @@ void print_volume(yajl_gen json_gen, char *buffer, const char *fmt, const char * if (snd_mixer_selem_has_playback_switch(hdl->elem)) { int pbval; if ((err = snd_mixer_selem_get_playback_switch(hdl->elem, 0, &pbval)) < 0) - fprintf (stderr, "ALSA: playback_switch: %s\n", snd_strerror(err)); + fprintf (stderr, "i3status: ALSA: playback_switch: %s\n", snd_strerror(err)); if (!pbval) avg = 0; } -- 2.39.5