aboutsummaryrefslogtreecommitdiffstats
path: root/src/firemon/route.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/firemon/route.c')
-rw-r--r--src/firemon/route.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/firemon/route.c b/src/firemon/route.c
index 398965671..fb58b169d 100644
--- a/src/firemon/route.c
+++ b/src/firemon/route.c
@@ -181,17 +181,15 @@ static void print_route(const char *fname) {
181 181
182} 182}
183 183
184void route(pid_t pid) { 184void route(pid_t pid, int print_procs) {
185 if (getuid() == 0)
186 firemon_drop_privs();
187
188 pid_read(pid); 185 pid_read(pid);
189 186
190 // print processes 187 // print processes
191 int i; 188 int i;
192 for (i = 0; i < max_pids; i++) { 189 for (i = 0; i < max_pids; i++) {
193 if (pids[i].level == 1) { 190 if (pids[i].level == 1) {
194 pid_print_list(i, 0); 191 if (print_procs || pid == 0)
192 pid_print_list(i, 0);
195 int child = find_child(i); 193 int child = find_child(i);
196 if (child != -1) { 194 if (child != -1) {
197 char *fname; 195 char *fname;
@@ -204,10 +202,10 @@ void route(pid_t pid) {
204 errExit("asprintf"); 202 errExit("asprintf");
205 print_route(fname); 203 print_route(fname);
206 free(fname); 204 free(fname);
207 printf("\n");
208 } 205 }
209 } 206 }
210 } 207 }
208 printf("\n");
211} 209}
212 210
213 211