Xinqi Bao's Git
projects
/
slstatus.git
/ blobdiff
summary
|
log
|
commit
|
diff
|
tree
raw
|
inline
| side by side
Merge branch 'master' into master
[slstatus.git]
/
slstatus.c
diff --git
a/slstatus.c
b/slstatus.c
index
7b02205
..
46e13c9
100644
(file)
--- a/
slstatus.c
+++ b/
slstatus.c
@@
-51,6
+51,7
@@
static char *entropy(void);
static char *gid(void);
static char *hostname(void);
static char *ip(const char *iface);
static char *gid(void);
static char *hostname(void);
static char *ip(const char *iface);
+static char *kernel_release(void);
static char *load_avg(void);
static char *ram_free(void);
static char *ram_perc(void);
static char *load_avg(void);
static char *ram_free(void);
static char *ram_perc(void);
@@
-68,9
+69,8
@@
static char *username(void);
static char *vol_perc(const char *card);
static char *wifi_perc(const char *iface);
static char *wifi_essid(const char *iface);
static char *vol_perc(const char *card);
static char *wifi_perc(const char *iface);
static char *wifi_essid(const char *iface);
-static char *kernel_release(void);
static void sighandler(const int signo);
static void sighandler(const int signo);
-static void usage(
void
);
+static void usage(
int
);
char *argv0;
char concat[];
char *argv0;
char concat[];
@@
-314,6
+314,18
@@
ip(const char *iface)
return smprintf("%s", UNKNOWN_STR);
}
return smprintf("%s", UNKNOWN_STR);
}
+static char *
+kernel_release(void)
+{
+ struct utsname udata;
+
+ if (uname(&udata) < 0) {
+ return smprintf(UNKNOWN_STR);
+ }
+
+ return smprintf("%s", udata.release);
+}
+
static char *
load_avg(void)
{
static char *
load_avg(void)
{
@@
-717,7
+729,8
@@
wifi_essid(const char *iface)
memset(&wreq, 0, sizeof(struct iwreq));
wreq.u.essid.length = IW_ESSID_MAX_SIZE+1;
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);
if (sockfd == -1) {
warn("Failed to get ESSID for interface %s", iface);
return smprintf("%s", UNKNOWN_STR);
@@
-736,16
+749,6
@@
wifi_essid(const char *iface)
return smprintf("%s", (char *)wreq.u.essid.pointer);
}
return smprintf("%s", (char *)wreq.u.essid.pointer);
}
-static char *
-kernel_release(void)
-{
- struct utsname udata;
- if (uname(&udata) < 0)
- return smprintf("%s", UNKNOWN_STR);
-
- return smprintf("%s", udata.release);
-}
-
static void
sighandler(const int signo)
{
static void
sighandler(const int signo)
{
@@
-755,10
+758,10
@@
sighandler(const int signo)
}
static void
}
static void
-usage(
void
)
+usage(
int eval
)
{
{
- fprintf(stderr, "usage: %s [-d
hov
]\n", argv0);
- exit(
1
);
+ fprintf(stderr, "usage: %s [-d
] [-o] [-v] [-h
]\n", argv0);
+ exit(
eval
);
}
int
}
int
@@
-780,12
+783,14
@@
main(int argc, char *argv[])
case 'v':
printf("slstatus %s (C) 2016 slstatus engineers\n", VERSION);
return 0;
case 'v':
printf("slstatus %s (C) 2016 slstatus engineers\n", VERSION);
return 0;
+ case 'h':
+ usage(0);
default:
default:
- usage();
+ usage(
1
);
} ARGEND
if (dflag && oflag) {
} ARGEND
if (dflag && oflag) {
- usage();
+ usage(
1
);
}
if (dflag && daemon(1, 1) < 0) {
err(1, "daemon");
}
if (dflag && daemon(1, 1) < 0) {
err(1, "daemon");
@@
-817,8
+822,9
@@
main(int argc, char *argv[])
element = smprintf("%s", UNKNOWN_STR);
warnx("Failed to format output");
}
element = smprintf("%s", UNKNOWN_STR);
warnx("Failed to format output");
}
- if (strlcat(status_string, element, sizeof(status_string)) >= sizeof(status_string))
+ if (strlcat(status_string, element, sizeof(status_string)) >= sizeof(status_string))
{
warnx("Output too long");
warnx("Output too long");
+ }
free(res);
free(element);
}
free(res);
free(element);
}