1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
$NetBSD: patch-ah,v 1.1 2002/06/17 22:13:45 agc Exp $
--- src/utmp.c 2002/06/17 21:59:32 1.1
+++ src/utmp.c 2002/06/17 22:03:43
@@ -39,6 +39,7 @@
# undef HAVE_UTMPX_H
#endif
#ifdef HAVE_UTMPX_H
+# include <utmp.h>
# include <utmpx.h>
# define USE_SYSV_UTMP
#else
@@ -95,7 +96,11 @@
# ifdef HAVE_UTMPX_H
# undef WTMP_FILENAME
-# define WTMP_FILENAME WTMPX_FILE
+# if defined(WTMPX_FILE)
+# define WTMP_FILENAME WTMPX_FILE
+# else
+# define WTMP_FILENAME _PATH_WTMPX
+# endif
# define update_wtmp updwtmpx
# else /* HAVE_UTMPX_H */
@@ -179,7 +184,7 @@
privileges(INVOKE);
#ifdef HAVE_UTMPX_H
getutmp(&utmp, &utmp2);
- getutid(&utmp2); /* position to entry in utmp file */
+ getutxid(&utmp); /* position to entry in utmp file */
#else
getutid(&utmp); /* position to entry in utmp file */
#endif
@@ -203,16 +208,15 @@
/*
* write a utmp entry to the utmp file
*/
- utmpname(UTMP_FILENAME);
+ utmpxname(UTMP_FILENAME);
#ifdef HAVE_UTMPX_H
getutmp(&utmp, &utmp2);
- pututline(&utmp2);
pututxline(&utmp);
#else
pututline(&utmp);
#endif
update_wtmp(WTMP_FILENAME, &utmp);
- endutent(); /* close the file */
+ endutxent(); /* close the file */
privileges(REVERT);
}
@@ -228,16 +232,16 @@
return; /* entry not made */
privileges(INVOKE);
- utmpname(UTMP_FILENAME);
- setutent();
- if (getutid(&utmp) == NULL)
+ utmpxname(UTMP_FILENAME);
+ setutxent();
+ if (getutxid(&utmpx) == NULL)
return;
- utmp.ut_type = DEAD_PROCESS;
+ utmpx.ut_type = DEAD_PROCESS;
utmp.ut_time = time(NULL);
- pututline(&utmp);
+ pututxline(&utmpx);
getutmpx(&utmp, &utmpx);
update_wtmp(WTMP_FILENAME, &utmpx);
- endutent();
+ endutxent();
privileges(REVERT);
#else /* HAVE_UTMPX_H */
|