Print this page
3124 Remove any existing references to utmp, use utmpx instead

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/acct/utmp2wtmp.c
          +++ new/usr/src/cmd/acct/utmp2wtmp.c
↓ open down ↓ 18 lines elided ↑ open up ↑
  19   19   *
  20   20   * CDDL HEADER END
  21   21   */
  22   22  /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
  23   23  /*        All Rights Reserved   */
  24   24  
  25   25  /*
  26   26   * Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
  27   27   * Use is subject to license terms.
  28   28   */
  29      -#pragma ident   "%Z%%M% %I%     %E% SMI"
       29 +
  30   30  /*
  31   31   *      create entries for users who are still logged on when accounting
  32   32   *      is being run. Look at utmpx, and update the time stamp. New info
  33      - *      goes to wtmpx. Called by runacct. 
       33 + *      goes to wtmpx. Called by runacct.
  34   34   */
  35   35  
  36   36  #include <stdio.h>
  37   37  #include <sys/types.h>
  38   38  #include <utmpx.h>
  39   39  #include <time.h>
  40   40  #include <string.h>
  41   41  #include <errno.h>
  42   42  #include <stdlib.h>
  43   43  
↓ open down ↓ 4 lines elided ↑ open up ↑
  48   48          FILE *fp;
  49   49  
  50   50          fp = fopen(WTMPX_FILE, "a+");
  51   51          if (fp == NULL) {
  52   52                  fprintf(stderr, "%s: %s: %s\n", argv[0],
  53   53                      WTMPX_FILE, strerror(errno));
  54   54                  exit(1);
  55   55          }
  56   56  
  57   57          while ((utmpx = getutxent()) != NULL) {
  58      -                if ((utmpx->ut_type == USER_PROCESS) && !(nonuser(*utmpx))) {
       58 +                if ((utmpx->ut_type == USER_PROCESS) && !(nonuserx(*utmpx))) {
  59   59                          time(&utmpx->ut_xtime);
  60      -                        fwrite(utmpx, sizeof(*utmpx), 1, fp);
       60 +                        fwrite(utmpx, sizeof (*utmpx), 1, fp);
  61   61                  }
  62   62          }
  63   63          fclose(fp);
  64   64          exit(0);
  65   65  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX