static char *wifi_perc(const char *iface);
static char *wifi_essid(const char *iface);
static char *kernel_release(void);
-static void set_status(const char *str);
static void sighandler(const int signo);
static void usage(void);
fgets(buf, sizeof(buf), fp);
fclose(fp);
- datastart = strstr(buf, concat);
- if (datastart != NULL) {
- datastart = strstr(buf, ":");
- sscanf(datastart + 1, " %*d %d %*d %*d %*d %*d %*d %*d %*d %*d", &perc);
+ if ((datastart = strstr(buf, concat)) == NULL) {
+ return smprintf("%s", UNKNOWN_STR);
}
+ datastart = (datastart+(strlen(iface)+1));
+ sscanf(datastart + 1, " %*d %d %*d %*d %*d %*d %*d %*d %*d %*d", &perc);
return smprintf("%d%%", perc);
}
memset(&wreq, 0, sizeof(struct iwreq));
wreq.u.essid.length = IW_ESSID_MAX_SIZE+1;
- sprintf(wreq.ifr_name, iface);
+ snprintf(wreq.ifr_name, sizeof(wreq.ifr_name), "%s", iface);
+
if (sockfd == -1) {
warn("Failed to get ESSID for interface %s", iface);
return smprintf("%s", UNKNOWN_STR);
return smprintf("%s", udata.release);
}
-static void
-set_status(const char *str)
-{
- XStoreName(dpy, DefaultRootWindow(dpy), str);
- XSync(dpy, False);
-}
-
static void
sighandler(const int signo)
{
}
if (!oflag) {
- set_status(status_string);
+ XStoreName(dpy, DefaultRootWindow(dpy), status_string);
+ XSync(dpy, False);
} else {
printf("%s\n", status_string);
}
- /*
- * subtract delay time spend in function
- * calls from the actual global delay time
- */
if ((UPDATE_INTERVAL - delay) <= 0) {
delay = 0;
continue;
}
if (!oflag) {
- set_status(NULL);
+ XStoreName(dpy, DefaultRootWindow(dpy), NULL);
XCloseDisplay(dpy);
}