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

Diff for /src/usr.bin/rlogin/Attic/rlogin.c between version 1.23 and 1.24

version 1.23, 2001/07/03 23:47:05 version 1.24, 2001/09/04 23:35:59
Line 128 
Line 128 
   
 void            catch_child __P((int));  void            catch_child __P((int));
 void            copytochild __P((int));  void            copytochild __P((int));
 __dead void     doit __P((int));  __dead void     doit __P((sigset_t *));
 __dead void     done __P((int));  __dead void     done __P((int));
 void            echo __P((char));  void            echo __P((char));
 u_int           getescape __P((char *));  u_int           getescape __P((char *));
Line 136 
Line 136 
 void            mode __P((int));  void            mode __P((int));
 void            msg __P((char *));  void            msg __P((char *));
 void            oob __P((int));  void            oob __P((int));
 int             reader __P((int));  int             reader __P((sigset_t *));
 void            sendwindow __P((void));  void            sendwindow __P((void));
 void            setsignal __P((int));  void            setsignal __P((int));
 void            sigwinch __P((int));  void            sigwinch __P((int));
Line 163 
Line 163 
         struct passwd *pw;          struct passwd *pw;
         struct servent *sp;          struct servent *sp;
         struct termios tty;          struct termios tty;
         int omask;          sigset_t mask, omask;
         int argoff, ch, dflag, one, uid;          int argoff, ch, dflag, one, uid;
         char *host, *p, *user, term[64];          char *host, *p, *user, term[64];
         struct sockaddr_storage ss;          struct sockaddr_storage ss;
Line 287 
Line 287 
   
         (void)signal(SIGPIPE, lostpeer);          (void)signal(SIGPIPE, lostpeer);
         /* will use SIGUSR1 for window size hack, so hold it off */          /* will use SIGUSR1 for window size hack, so hold it off */
         omask = sigblock(sigmask(SIGURG) | sigmask(SIGUSR1));          sigemptyset(&mask);
           sigaddset(&mask, SIGURG);
           sigaddset(&mask, SIGUSR1);
           sigprocmask(SIG_BLOCK, &mask, &omask);
         /*          /*
          * We set SIGURG and SIGUSR1 below so that an           * We set SIGURG and SIGUSR1 below so that an
          * incoming signal will be held pending rather than being           * incoming signal will be held pending rather than being
Line 367 
Line 370 
   
         (void)seteuid(uid);          (void)seteuid(uid);
         (void)setuid(uid);          (void)setuid(uid);
         doit(omask);          doit(&omask);
         /*NOTREACHED*/          /*NOTREACHED*/
   
         return 0;          return 0;
Line 377 
Line 380 
   
 void  void
 doit(omask)  doit(omask)
         int omask;          sigset_t *omask;
 {  {
         struct sigaction sa;          struct sigaction sa;
   
Line 419 
Line 422 
          * signals to the child. We can now unblock SIGURG and SIGUSR1           * signals to the child. We can now unblock SIGURG and SIGUSR1
          * that were set above.           * that were set above.
          */           */
         (void)sigsetmask(omask);          (void)sigprocmask(SIG_SETMASK, omask, NULL);
         writer();          writer();
         msg("closed connection.");          msg("closed connection.");
         done(0);          done(0);
Line 430 
Line 433 
 setsignal(sig)  setsignal(sig)
         int sig;          int sig;
 {  {
         int omask = sigblock(sigmask(sig));          sigset_t mask, omask;
   
           sigemptyset(&mask);
           sigaddset(&mask, sig);
           sigprocmask(SIG_BLOCK, &mask, &omask);
   
         if (signal(sig, exit) == SIG_IGN)          if (signal(sig, exit) == SIG_IGN)
                 (void)signal(sig, SIG_IGN);                  (void)signal(sig, SIG_IGN);
         (void)sigsetmask(omask);  
           sigprocmask(SIG_SETMASK, &omask, NULL);
 }  }
   
 __dead void  __dead void
Line 757 
Line 765 
 /* reader: read from remote: line -> 1 */  /* reader: read from remote: line -> 1 */
 int  int
 reader(omask)  reader(omask)
         int omask;          sigset_t *omask;
 {  {
         pid_t pid;          pid_t pid;
         int n, remaining;          int n, remaining;
Line 769 
Line 777 
         ppid = getppid();          ppid = getppid();
         (void)fcntl(rem, F_SETOWN, pid);          (void)fcntl(rem, F_SETOWN, pid);
         (void)setjmp(rcvtop);          (void)setjmp(rcvtop);
         (void)sigsetmask(omask);          (void)sigprocmask(SIG_SETMASK, omask, NULL);
         bufp = rcvbuf;          bufp = rcvbuf;
         for (;;) {          for (;;) {
                 while ((remaining = rcvcnt - (bufp - rcvbuf)) > 0) {                  while ((remaining = rcvcnt - (bufp - rcvbuf)) > 0) {

Legend:
Removed from v.1.23  
changed lines
  Added in v.1.24