home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / security / logdaemon-2 / lib / login.c next >
Encoding:
C/C++ Source or Header  |  1988-09-27  |  1.5 KB  |  49 lines

  1. /*
  2.  * Copyright (c) 1988 The Regents of the University of California.
  3.  * All rights reserved.
  4.  *
  5.  * Redistribution and use in source and binary forms are permitted
  6.  * provided that the above copyright notice and this paragraph are
  7.  * duplicated in all such forms and that any documentation,
  8.  * advertising materials, and other materials related to such
  9.  * distribution and use acknowledge that the software was developed
  10.  * by the University of California, Berkeley.  The name of the
  11.  * University may not be used to endorse or promote products derived
  12.  * from this software without specific prior written permission.
  13.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
  14.  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
  15.  * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  16.  */
  17.  
  18. #if defined(LIBC_SCCS) && !defined(lint)
  19. static char sccsid[] = "@(#)login.c    5.1 (Berkeley) 9/27/88";
  20. #endif /* LIBC_SCCS and not lint */
  21.  
  22. #include <sys/types.h>
  23. #include <sys/file.h>
  24. #include <utmp.h>
  25. #include <stdio.h>
  26.  
  27. #define    UTMPFILE    "/etc/utmp"
  28. #define    WTMPFILE    "/usr/adm/wtmp"
  29.  
  30. void
  31. login(ut)
  32.     struct utmp *ut;
  33. {
  34.     register int fd;
  35.     int tty;
  36.     off_t lseek();
  37.  
  38.     tty = ttyslot();
  39.     if (tty > 0 && (fd = open(UTMPFILE, O_WRONLY, 0)) >= 0) {
  40.         (void)lseek(fd, (long)(tty * sizeof(struct utmp)), L_SET);
  41.         (void)write(fd, (char *)ut, sizeof(struct utmp));
  42.         (void)close(fd);
  43.     }
  44.     if ((fd = open(WTMPFILE, O_WRONLY|O_APPEND, 0)) >= 0) {
  45.         (void)write(fd, (char *)ut, sizeof(struct utmp));
  46.         (void)close(fd);
  47.     }
  48. }
  49.