X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=dump%2Ftape.c;h=71de659ba9f40cc8b60d243d209140155ea105f2;hp=f61fc879ee395b2228fe61d4e510d0348ea96210;hb=a7556ed9f60fca78ee087b858c1b380513d0d40b;hpb=103245b6fea8e7d77722e85ccb404ac1d928987d diff --git a/dump/tape.c b/dump/tape.c index f61fc87..71de659 100644 --- a/dump/tape.c +++ b/dump/tape.c @@ -41,7 +41,7 @@ #ifndef lint static const char rcsid[] = - "$Id: tape.c,v 1.55 2001/09/06 09:00:32 stelian Exp $"; + "$Id: tape.c,v 1.58 2001/11/17 10:44:18 stelian Exp $"; #endif /* not lint */ #include @@ -68,7 +68,6 @@ int write(), read(); #endif #include #include -#include #include #include #ifdef __linux__ @@ -1041,6 +1040,12 @@ doslave(int cmd, int slave_number, int first) union u_spcl *uspclptr; struct s_spcl *spclptr; #endif /* USE_QFA */ + sigset_t set; + + sigemptyset(&set); + sigaddset(&set, SIGUSR2); + sigprocmask(SIG_BLOCK, &set, NULL); + sigemptyset(&set); /* * Need our own seek pointer. @@ -1123,6 +1128,7 @@ doslave(int cmd, int slave_number, int first) if (compressed && do_compress) { comp_buf->length = bufsize; worklen = TP_BSIZE + writesize; + compresult = 1; #ifdef HAVE_ZLIB if (!bzipflag) { compresult = compress2(comp_buf->buf, @@ -1178,7 +1184,7 @@ doslave(int cmd, int slave_number, int first) if (sigsetjmp(jmpbuf, 1) == 0) { ready = 1; if (!caught) - (void) pause(); + sigsuspend(&set); } ready = 0; caught = 0;