diff options
author | startx2017 <vradu.startx@yandex.com> | 2017-07-07 07:50:51 -0400 |
---|---|---|
committer | startx2017 <vradu.startx@yandex.com> | 2017-07-07 07:50:51 -0400 |
commit | a76c80859abb53b75a2438f548c8e137305e6fbc (patch) | |
tree | ffac2fdcdc3ceaee7aa9c487843979028795b636 /src | |
parent | shorter firejail name in --top and --netstats (diff) | |
download | firejail-a76c80859abb53b75a2438f548c8e137305e6fbc.tar.gz firejail-a76c80859abb53b75a2438f548c8e137305e6fbc.tar.zst firejail-a76c80859abb53b75a2438f548c8e137305e6fbc.zip |
run --netstats on 1s interval; caching user name.
Diffstat (limited to 'src')
-rw-r--r-- | src/firemon/netstats.c | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/firemon/netstats.c b/src/firemon/netstats.c index 53399300c..f83be9823 100644 --- a/src/firemon/netstats.c +++ b/src/firemon/netstats.c | |||
@@ -29,6 +29,20 @@ | |||
29 | // ip -s link: device stats | 29 | // ip -s link: device stats |
30 | // ss -s: socket stats | 30 | // ss -s: socket stats |
31 | 31 | ||
32 | static uid_t cached_uid = 0; | ||
33 | static char *cached_user_name = NULL; | ||
34 | |||
35 | static char *get_user_name(uid_t uid) { | ||
36 | if (cached_user_name == NULL) { | ||
37 | cached_uid = uid; | ||
38 | cached_user_name = pid_get_user_name(uid); | ||
39 | return strdup(cached_user_name); | ||
40 | } | ||
41 | else if (uid == cached_uid) | ||
42 | return strdup(cached_user_name); | ||
43 | else | ||
44 | return pid_get_user_name(uid); | ||
45 | } | ||
32 | 46 | ||
33 | static char *get_header(void) { | 47 | static char *get_header(void) { |
34 | char *rv; | 48 | char *rv; |
@@ -151,7 +165,7 @@ static void print_proc(int index, int itv, int col) { | |||
151 | snprintf(pidstr, 10, "%u", index); | 165 | snprintf(pidstr, 10, "%u", index); |
152 | 166 | ||
153 | // user | 167 | // user |
154 | char *user = pid_get_user_name(pids[index].uid); | 168 | char *user = get_user_name(pids[index].uid); |
155 | char *ptruser; | 169 | char *ptruser; |
156 | if (user) | 170 | if (user) |
157 | ptruser = user; | 171 | ptruser = user; |
@@ -190,7 +204,7 @@ void netstats(void) { | |||
190 | while (1) { | 204 | while (1) { |
191 | // set pid table | 205 | // set pid table |
192 | int i; | 206 | int i; |
193 | int itv = 5; // 5 second interval | 207 | int itv = 1; // 1 second interval |
194 | pid_read(0); | 208 | pid_read(0); |
195 | 209 | ||
196 | // start rx/tx measurements | 210 | // start rx/tx measurements |
@@ -199,7 +213,7 @@ void netstats(void) { | |||
199 | get_stats(i); | 213 | get_stats(i); |
200 | } | 214 | } |
201 | 215 | ||
202 | // wait 5 seconds | 216 | // wait 1 seconds |
203 | firemon_sleep(itv); | 217 | firemon_sleep(itv); |
204 | 218 | ||
205 | // grab screen size | 219 | // grab screen size |