]> git.wh0rd.org - dump.git/blobdiff - common/dumprmt.c
Fix the treatment for an interrupt signal when dump access the remote tape through...
[dump.git] / common / dumprmt.c
index db18d328547cb717a37cc586b04b950d68313c62..b56cc27c9659d41fe6ca7a77edfae223ef99fd3b 100644 (file)
@@ -40,7 +40,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: dumprmt.c,v 1.7 1999/10/30 22:55:50 tiniou Exp $";
+       "$Id: dumprmt.c,v 1.9 2000/01/11 12:33:44 tiniou Exp $";
 #endif /* not lint */
 
 #ifdef __linux__
@@ -97,6 +97,7 @@ static const char rcsid[] =
 static int rmtstate = TS_CLOSED;
 static int tormtape = -1;
 static int fromrmtape = -1;
+int rshpid = -1;
 static const char *rmtpeer = 0;
 
 static int okname __P((const char *));
@@ -203,7 +204,7 @@ rmtgetconn(void)
                rshcmd[4] = rmt;
                rshcmd[5] = NULL;
 
-               if (piped_child(rshcmd) < 0) {
+               if ((rshpid = piped_child(rshcmd)) < 0) {
                        msg("cannot open connection\n");
                        return 0;
                }
@@ -449,6 +450,7 @@ int piped_child(const char **command) {
                        msg ("cannot dup2 pipe: %s\n", strerror(errno));
                        exit(1);
                }
+               setpgid(0, getpid());
                execvp (command[0], (char *const *) command);
                msg("cannot exec %s: %s\n", command[0], strerror(errno));
                exit(1);