]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - include/rpcsvc/rnusers.x
MFC r368207,368607:
[FreeBSD/stable/10.git] / include / rpcsvc / rnusers.x
1 /*-
2  * Copyright (c) 2010, Oracle America, Inc.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
8  *     * Redistributions of source code must retain the above copyright
9  *       notice, this list of conditions and the following disclaimer.
10  *     * Redistributions in binary form must reproduce the above
11  *       copyright notice, this list of conditions and the following
12  *       disclaimer in the documentation and/or other materials
13  *       provided with the distribution.
14  *     * Neither the name of the "Oracle America, Inc." nor the names of its
15  *       contributors may be used to endorse or promote products derived
16  *       from this software without specific prior written permission.
17  *
18  *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19  *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20  *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21  *   FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
22  *   COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23  *   INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24  *   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
25  *   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26  *   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
27  *   WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28  *   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30  */
31
32 /*
33  * Find out about remote users
34  */
35
36 #ifndef RPC_HDR
37 %#ifndef lint
38 %/*static char sccsid[] = "from: @(#)rnusers.x 1.2 87/09/20 Copyr 1987 Sun Micro";*/
39 %/*static char sccsid[] = "from: @(#)rnusers.x  2.1 88/08/01 4.0 RPCSRC";*/
40 %#endif /* not lint */
41 %#include <sys/cdefs.h>
42 %__FBSDID("$FreeBSD$");
43 #endif
44
45 const MAXUSERS = 100;
46 const MAXUTLEN = 256;
47
48 struct utmp {
49         string ut_line<MAXUTLEN>;
50         string ut_name<MAXUTLEN>;
51         string ut_host<MAXUTLEN>;
52         int ut_time;
53 };
54
55
56 struct utmpidle {
57         utmp ui_utmp;
58         unsigned int ui_idle;
59 };
60
61 typedef utmp utmparr<MAXUSERS>;
62
63 typedef utmpidle utmpidlearr<MAXUSERS>;
64
65 const RUSERS_MAXUSERLEN = 32;
66 const RUSERS_MAXLINELEN = 32;
67 const RUSERS_MAXHOSTLEN = 257;
68
69 struct rusers_utmp {
70         string ut_user<RUSERS_MAXUSERLEN>;      /* aka ut_name */
71         string ut_line<RUSERS_MAXLINELEN>;      /* device */
72         string ut_host<RUSERS_MAXHOSTLEN>;      /* host user logged on from */
73         int ut_type;                            /* type of entry */
74         int ut_time;                            /* time entry was made */
75         unsigned int ut_idle;                   /* minutes idle */
76 };
77
78 typedef rusers_utmp utmp_array<>;
79
80 program RUSERSPROG {
81         /*
82          * Old version does not include idle information
83          */
84         version RUSERSVERS_ORIG {
85                 int
86                 RUSERSPROC_NUM(void) = 1;
87
88                 utmparr
89                 RUSERSPROC_NAMES(void) = 2;
90
91                 utmparr
92                 RUSERSPROC_ALLNAMES(void) = 3;
93         } = 1;
94
95         /*
96          * Includes idle information
97          */
98         version RUSERSVERS_IDLE {
99                 int
100                 RUSERSPROC_NUM(void) = 1;
101
102                 utmpidlearr
103                 RUSERSPROC_NAMES(void) = 2;
104
105                 utmpidlearr
106                 RUSERSPROC_ALLNAMES(void) = 3;
107         } = 2;
108
109         /*
110          * Version 3 rusers procedures (from Solaris).
111          * (Thanks a lot Sun.)
112          */
113         version RUSERSVERS_3 {
114                 int
115                 RUSERSPROC_NUM(void) = 1;
116
117                 utmp_array
118                 RUSERSPROC_NAMES(void) = 2;
119
120                 utmp_array
121                 RUSERSPROC_ALLNAMES(void) = 3;
122         } = 3;
123
124 } = 100002;
125