summaryrefslogtreecommitdiffstats
path: root/usr.bin/fetch
diff options
context:
space:
mode:
authordes <des@FreeBSD.org>2001-09-23 22:03:39 +0000
committerdes <des@FreeBSD.org>2001-09-23 22:03:39 +0000
commit3274d63b58830e318cb5bacbd61d1cebd8a80ca4 (patch)
tree95b17091fcfdf8d7d8dc64dba56df752fdd0466c /usr.bin/fetch
parent74ff6b8f7e014aa3bc9072d379cce3edc7e34e79 (diff)
downloadFreeBSD-src-3274d63b58830e318cb5bacbd61d1cebd8a80ca4.zip
FreeBSD-src-3274d63b58830e318cb5bacbd61d1cebd8a80ca4.tar.gz
Don't print running stats unless we're the foreground process.
PR: 30764
Diffstat (limited to 'usr.bin/fetch')
-rw-r--r--usr.bin/fetch/fetch.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/usr.bin/fetch/fetch.c b/usr.bin/fetch/fetch.c
index 5b321cd..fc6ba2a 100644
--- a/usr.bin/fetch/fetch.c
+++ b/usr.bin/fetch/fetch.c
@@ -31,6 +31,7 @@
#include <sys/param.h>
#include <sys/stat.h>
#include <sys/socket.h>
+#include <sys/ioctl.h>
#include <ctype.h>
#include <err.h>
@@ -75,6 +76,7 @@ int t_flag; /*! -t: workaround TCP bug */
int U_flag; /* -U: do not use high ports */
int v_level = 1; /* -v: verbosity level */
int v_tty; /* stdout is a tty */
+pid_t pgrp; /* our process group */
u_int w_secs; /* -w: retry delay */
int family = PF_UNSPEC; /* -[46]: address family to use */
@@ -123,10 +125,16 @@ static void
stat_display(struct xferstat *xs, int force)
{
struct timeval now;
+ int ctty_pgrp;
if (!v_tty || !v_level)
return;
+ /* check if we're the foreground process */
+ if (ioctl(STDERR_FILENO, TIOCGPGRP, &ctty_pgrp) == -1 ||
+ (pid_t)ctty_pgrp != pgrp)
+ return;
+
gettimeofday(&now, NULL);
if (!force && now.tv_sec <= xs->last.tv_sec)
return;
@@ -827,6 +835,9 @@ main(int argc, char *argv[])
/* check if output is to a tty (for progress report) */
v_tty = isatty(STDERR_FILENO);
+ if (v_tty)
+ pgrp = getpgrp();
+
r = 0;
/* authentication */
OpenPOWER on IntegriCloud