home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / mmdf / mmdf-IIb.43 / lib / util / getllog.v7.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-02-01  |  870 b   |  54 lines

  1. #include "util.h"
  2. #include <utmp.h>
  3.  
  4. /* get informtion about who is logged in */
  5.  
  6. /* this is modeled after the getpw v7 set of routines */
  7.  
  8. LOCVAR char LLPATH[]  = "/usr/adm/lastlog";
  9. LOCVAR FILE *llogfp = NULL;
  10. LOCVAR union tmpunion
  11. {
  12.     char        io[sizeof (struct utmp)];
  13.     struct utmp entry;
  14. }       llogentry;
  15.  
  16. setllog()
  17. {
  18.     if( llogfp == NULL )
  19.         llogfp = fopen( LLPATH, "r" );
  20.     else
  21.         rewind( llogfp );
  22. }
  23.  
  24. endllog()
  25. {
  26.     if( llogfp != NULL ){
  27.         fclose( llogfp );
  28.         llogfp = NULL;
  29.     }
  30. }
  31.  
  32. struct utmp *
  33. getllog()
  34. {
  35.     if (llogfp == NULL) {
  36.         if( (llogfp = fopen( LLPATH, "r" )) == NULL )
  37.             return(0);
  38.     }
  39.     if (fread (llogentry.io, sizeof (struct utmp), 1, llogfp) != 1)
  40.         return(0);
  41.     return(&llogentry.entry);
  42. }
  43.  
  44. struct utmp *
  45. getllnam(name)
  46. char name[];
  47. {
  48.     register struct utmp *p;
  49.  
  50.     while( (p = getllog()) && !equal(name,p->ut_name, strlen(name)));
  51.  
  52.     return(p);
  53. }
  54.