]>
Commit | Line | Data |
---|---|---|
1f2f436a A |
1 | .\" $NetBSD: getlastlogx.3,v 1.2 2008/04/30 13:10:50 martin Exp $ |
2 | .\" | |
3 | .\" Copyright (c) 2003 The NetBSD Foundation, Inc. | |
4 | .\" All rights reserved. | |
5 | .\" | |
6 | .\" This code is derived from software contributed to The NetBSD Foundation | |
7 | .\" by Thomas Klausner. | |
8 | .\" | |
9 | .\" Redistribution and use in source and binary forms, with or without | |
10 | .\" modification, are permitted provided that the following conditions | |
11 | .\" are met: | |
12 | .\" 1. Redistributions of source code must retain the above copyright | |
13 | .\" notice, this list of conditions and the following disclaimer. | |
14 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
15 | .\" notice, this list of conditions and the following disclaimer in the | |
16 | .\" documentation and/or other materials provided with the distribution. | |
17 | .\" | |
18 | .\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS | |
19 | .\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED | |
20 | .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
21 | .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS | |
22 | .\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR | |
23 | .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF | |
24 | .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS | |
25 | .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN | |
26 | .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) | |
27 | .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE | |
28 | .\" POSSIBILITY OF SUCH DAMAGE. | |
29 | .\" | |
30 | .Dd August 26, 2003 | |
31 | .Dt GETLASTLOGX 3 | |
32 | .Os | |
33 | .Sh NAME | |
34 | .Nm getlastlogx , | |
35 | .Nm getutmp , | |
36 | .Nm getutmpx , | |
37 | .Nm updlastlogx , | |
38 | .Nm updwtmpx , | |
39 | .Nm utmpxname | |
40 | .Nd user accounting database functions | |
41 | .Sh LIBRARY | |
42 | .Lb libc | |
43 | .Sh SYNOPSIS | |
44 | .In utmpx.h | |
45 | .Ft struct lastlogx * | |
46 | .Fn getlastlogx "const char *fname" "uid_t uid" "struct lastlogx *ll" | |
47 | .Ft void | |
48 | .Fn getutmp "const struct utmpx *ux" "struct utmp *u" | |
49 | .Ft void | |
50 | .Fn getutmpx "const struct utmp *u" "struct utmpx *ux" | |
51 | .Ft int | |
52 | .Fn updlastlogx "const char *fname" "uid_t uid" "struct lastlogx *ll" | |
53 | .Ft int | |
54 | .Fn updwtmpx "const char *file" "const struct utmpx *utx" | |
55 | .Ft int | |
56 | .Fn utmpxname "const char *fname" | |
57 | .Sh DESCRIPTION | |
58 | The | |
59 | .Fn getlastlogx | |
60 | function looks up the entry for the user with user id | |
61 | .Fa uid | |
62 | in the | |
63 | .Xr lastlogx 5 | |
64 | file given by | |
65 | .Fa fname | |
66 | and returns it in | |
67 | .Fa \&ll . | |
68 | If the provided | |
69 | .Fa \&ll | |
70 | is | |
71 | .Dv NULL , | |
72 | the necessary space will be allocated by | |
73 | .Fn getlastlogx | |
74 | and should be | |
75 | .Fn free Ns d | |
76 | by the caller. | |
77 | .Pp | |
78 | The | |
79 | .Fn getutmp | |
80 | function fills out the entries in the struct utmp | |
81 | .Fa u | |
82 | with the data provided in the struct utmpx | |
83 | .Fa ux . | |
84 | .Fn getutmpx | |
85 | does the opposite, filling out the entries in the struct utmpx | |
86 | .Fa ux | |
87 | with the data provided in the struct utmp | |
88 | .Fa u , | |
89 | and initializing all the unknown fields to 0. | |
90 | The sole exception is the | |
91 | .Fa ut_type | |
92 | field, which will be initialized to | |
93 | .Dv USER_PROCESS . | |
94 | .Pp | |
95 | The | |
96 | .Fn updlastlogx | |
97 | function tries to update the information for the user with the user id | |
98 | .Fa uid | |
99 | in the | |
100 | .Xr lastlogx 5 | |
101 | file given by | |
102 | .Fa fname | |
103 | with the data supplied in | |
104 | .Fa \&ll . | |
105 | A | |
106 | .Ft struct lastlogx | |
107 | is defined like this: | |
108 | .Bd -literal | |
109 | struct lastlogx { | |
110 | struct timeval ll_tv; /* time entry was created */ | |
111 | char ll_line[_UTX_LINESIZE]; /* tty name */ | |
112 | char ll_host[_UTX_HOSTSIZE]; /* host name */ | |
113 | struct sockaddr_storage ll_ss; /* address where entry was made from */ | |
114 | }; | |
115 | .Ed | |
116 | All the fields should be filled out by the caller. | |
117 | .Pp | |
118 | The | |
119 | .Fn updwtmpx | |
120 | function updates the | |
121 | .Xr wtmpx 5 | |
122 | file | |
123 | .Fa file | |
124 | with the | |
125 | .Xr utmpx 5 | |
126 | entry | |
127 | .Fa utx . | |
128 | .Pp | |
129 | The | |
130 | .Fn utmpxname | |
131 | function sets the default | |
132 | .Xr utmpx 5 | |
133 | database file name to | |
134 | .Fa fname . | |
135 | .Sh RETURN VALUES | |
136 | .Fn getlastlogx | |
137 | returns the found entry on success, or | |
138 | .Dv NULL | |
139 | if it could not open the database, could not find an entry matching | |
140 | .Fa uid | |
141 | in there, or could not allocate the necessary space (in case | |
142 | .Fa \&ll | |
143 | was | |
144 | .Dv NULL ) . | |
145 | .Pp | |
146 | .Fn utmpxname | |
147 | returns 1 on success, or 0 if the supplied file name was too long or | |
148 | did not end with | |
149 | .Sq x . | |
150 | .Pp | |
151 | .Fn updlastlogx | |
152 | and | |
153 | .Fn updwtmpx | |
154 | return 0 on success, or \-1 in case the database or file respectively | |
155 | could not be opened or the data not written into it. | |
156 | .Sh SEE ALSO | |
157 | .Xr endutxent 3 , | |
158 | .Xr loginx 3 , | |
159 | .Xr utmpx 5 | |
160 | .Sh HISTORY | |
161 | The functions | |
162 | .Fn getutmp , | |
163 | .Fn getutmpx , | |
164 | .Fn updwtmpx , | |
165 | and | |
166 | .Fn utmpxname | |
167 | first appeared in | |
168 | .Tn Solaris . | |
169 | .Nm getlastlogx | |
170 | and | |
171 | .Nm updlastlogx | |
172 | first appeared in | |
173 | .Nx 2.0 . |