home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / lpopper.zip / passwd.c < prev    next >
C/C++ Source or Header  |  1999-07-12  |  942b  |  46 lines

  1. #include "popper.h"
  2.  
  3.  
  4. int ReadUser (struct Pwd * uPw, char * Passwd)
  5. { char * Buffer;
  6.   FILE * fPasswd;
  7.   register int i;
  8.  
  9.   strcpy(uPw->Pass, "*");
  10.  
  11.   Buffer=(char *)malloc(4096);
  12.   if(Buffer==NULL)
  13.     {
  14.       return(-1);
  15.     }
  16.   fPasswd=fopen(Passwd, "rb");
  17.   if(fPasswd==NULL)
  18.     {
  19.       free(Buffer);
  20.       return(-1);
  21.     }
  22.  
  23.   do { fgets(Buffer, 4095, fPasswd);
  24.        DelEndCRLF(Buffer);
  25.        DelSpaces(Buffer);
  26.  
  27.        if(Buffer[0]=='#') continue;
  28.        if((memcmp(Buffer, uPw->User, strlen(uPw->User))==0) && (Buffer[strlen(uPw->User)]==':'))
  29.          { for(i=strlen(uPw->User)+1;(Buffer[i]!=0) && (Buffer[i]!=':');i++)
  30.             { if(i>18) break;
  31.             }
  32.            Buffer[i]=0;
  33.            strcpy(uPw->Pass, &Buffer[strlen(uPw->User)+1]);
  34.            if(IsEmpty(uPw->Pass))
  35.              { strcpy(uPw->Pass, "*");
  36.              }
  37.            break;
  38.          }
  39.      } while(!feof(fPasswd));
  40.  
  41.   free(Buffer);
  42.  
  43.   return(0);
  44. }
  45.  
  46.