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

Diff for /src/usr.bin/login/failedlogin.c between version 1.4 and 1.5

version 1.4, 1998/06/21 22:13:59 version 1.5, 1998/07/13 02:11:35
Line 71 
Line 71 
   
         /* Add O_CREAT if you want to create failedlogin if it doesn't exist */          /* Add O_CREAT if you want to create failedlogin if it doesn't exist */
         if ((fd = open(_PATH_FAILEDLOGIN, O_RDWR, S_IREAD|S_IWRITE)) >= 0) {          if ((fd = open(_PATH_FAILEDLOGIN, O_RDWR, S_IREAD|S_IWRITE)) >= 0) {
                 (void)lseek(fd, (off_t)uid * sizeof(failedlogin), L_SET);                  (void)lseek(fd, (off_t)uid * sizeof(failedlogin), SEEK_SET);
   
                 /* Read in last bad login so can get the count */                  /* Read in last bad login so can get the count */
                 if (read(fd, (char *)&failedlogin, sizeof(failedlogin)) !=                  if (read(fd, (char *)&failedlogin, sizeof(failedlogin)) !=
                         sizeof(failedlogin) || failedlogin.bl_time == 0)                          sizeof(failedlogin) || failedlogin.bl_time == 0)
                         memset((void *)&failedlogin, 0, sizeof(failedlogin));                          memset((void *)&failedlogin, 0, sizeof(failedlogin));
   
                 (void)lseek(fd, (off_t)uid * sizeof(failedlogin), L_SET);                  (void)lseek(fd, (off_t)uid * sizeof(failedlogin), SEEK_SET);
                 /* Increment count of bad logins */                  /* Increment count of bad logins */
                 ++failedlogin.count;                  ++failedlogin.count;
                 (void)time(&failedlogin.bl_time);                  (void)time(&failedlogin.bl_time);
Line 113 
Line 113 
         (void)memset((void *)&failedlogin, 0, sizeof(failedlogin));          (void)memset((void *)&failedlogin, 0, sizeof(failedlogin));
   
         if ((fd = open(_PATH_FAILEDLOGIN, O_RDWR, 0)) >= 0) {          if ((fd = open(_PATH_FAILEDLOGIN, O_RDWR, 0)) >= 0) {
                 (void)lseek(fd, (off_t)uid * sizeof(failedlogin), L_SET);                  (void)lseek(fd, (off_t)uid * sizeof(failedlogin), SEEK_SET);
                 if (read(fd, (char *)&failedlogin, sizeof(failedlogin)) ==                  if (read(fd, (char *)&failedlogin, sizeof(failedlogin)) ==
                     sizeof(failedlogin) && failedlogin.count > 0 ) {                      sizeof(failedlogin) && failedlogin.count > 0 ) {
                         /* There was a bad login */                          /* There was a bad login */
Line 142 
Line 142 
   
                         /* Reset since this is a good login and write record */                          /* Reset since this is a good login and write record */
                         failedlogin.count = 0;                          failedlogin.count = 0;
                         (void)lseek(fd, (off_t)uid * sizeof(failedlogin), L_SET);                          (void)lseek(fd, (off_t)uid * sizeof(failedlogin),
                         (void)write(fd, (char *)&failedlogin, sizeof(failedlogin));                              SEEK_SET);
                           (void)write(fd, (char *)&failedlogin,
                               sizeof(failedlogin));
                 }                  }
                 (void)close(fd);                  (void)close(fd);
         }          }

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5