[BACK]Return to rsh.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / rsh

Diff for /src/usr.bin/rsh/Attic/rsh.c between version 1.19 and 1.20

version 1.19, 2000/02/01 03:23:37 version 1.20, 2001/09/04 23:35:59
Line 87 
Line 87 
   
 void usage __P((void));  void usage __P((void));
   
 void talk __P((int, int, int, register int));  void talk __P((int, sigset_t *, int, register int));
   
 /*  /*
  * rsh - remote shell   * rsh - remote shell
Line 103 
Line 103 
         extern int optind;          extern int optind;
         struct passwd *pw;          struct passwd *pw;
         struct servent *sp;          struct servent *sp;
         int omask;          sigset_t mask, omask;
         int argoff, asrsh, ch, dflag, nflag, one, pid = 0, rem, uid;          int argoff, asrsh, ch, dflag, nflag, one, pid = 0, rem, uid;
         register char *p;          register char *p;
         char *args, *host, *user, *copyargs();          char *args, *host, *user, *copyargs();
Line 292 
Line 292 
   
         (void)seteuid(uid);          (void)seteuid(uid);
         (void)setuid(uid);          (void)setuid(uid);
         omask = sigblock(sigmask(SIGINT)|sigmask(SIGQUIT)|sigmask(SIGTERM));          sigemptyset(&mask);
           sigaddset(&mask, SIGINT);
           sigaddset(&mask, SIGQUIT);
           sigaddset(&mask, SIGTERM);
           sigprocmask(SIG_BLOCK, &mask, &omask);
         if (signal(SIGINT, SIG_IGN) != SIG_IGN)          if (signal(SIGINT, SIG_IGN) != SIG_IGN)
                 (void)signal(SIGINT, sendsig);                  (void)signal(SIGINT, sendsig);
         if (signal(SIGQUIT, SIG_IGN) != SIG_IGN)          if (signal(SIGQUIT, SIG_IGN) != SIG_IGN)
Line 317 
Line 321 
                 (void)ioctl(rem, FIONBIO, &one);                  (void)ioctl(rem, FIONBIO, &one);
         }          }
   
         talk(nflag, omask, pid, rem);          talk(nflag, &omask, pid, rem);
   
         if (!nflag)          if (!nflag)
                 (void)kill(pid, SIGKILL);                  (void)kill(pid, SIGKILL);
Line 328 
Line 332 
 void  void
 talk(nflag, omask, pid, rem)  talk(nflag, omask, pid, rem)
         int nflag, pid;          int nflag, pid;
         int omask;          sigset_t *omask;
         register int rem;          register int rem;
 {  {
         register int cc, wc;          register int cc, wc;
Line 377 
Line 381 
                 exit(0);                  exit(0);
         }          }
   
         (void)sigsetmask(omask);          sigprocmask(SIG_SETMASK, &omask, NULL);
         FD_ZERO(&readfrom);          FD_ZERO(&readfrom);
         FD_SET(rfd2, &readfrom);          FD_SET(rfd2, &readfrom);
         FD_SET(rem, &readfrom);          FD_SET(rem, &readfrom);

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20