xref: /freebsd/include/rpcsvc/rnusers.x (revision 61e21613)
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 const MAXUSERS = 100;
37 const MAXUTLEN = 256;
38 
39 struct utmp {
40 	string ut_line<MAXUTLEN>;
41 	string ut_name<MAXUTLEN>;
42 	string ut_host<MAXUTLEN>;
43 	int ut_time;
44 };
45 
46 
47 struct utmpidle {
48 	utmp ui_utmp;
49 	unsigned int ui_idle;
50 };
51 
52 typedef utmp utmparr<MAXUSERS>;
53 
54 typedef utmpidle utmpidlearr<MAXUSERS>;
55 
56 const RUSERS_MAXUSERLEN = 32;
57 const RUSERS_MAXLINELEN = 32;
58 const RUSERS_MAXHOSTLEN = 257;
59 
60 struct rusers_utmp {
61 	string ut_user<RUSERS_MAXUSERLEN>;	/* aka ut_name */
62 	string ut_line<RUSERS_MAXLINELEN>;	/* device */
63 	string ut_host<RUSERS_MAXHOSTLEN>;	/* host user logged on from */
64 	int ut_type;				/* type of entry */
65 	int ut_time;				/* time entry was made */
66 	unsigned int ut_idle;			/* minutes idle */
67 };
68 
69 typedef rusers_utmp utmp_array<>;
70 
71 program RUSERSPROG {
72 	/*
73 	 * Old version does not include idle information
74 	 */
75 	version RUSERSVERS_ORIG {
76 		int
77 		RUSERSPROC_NUM(void) = 1;
78 
79 		utmparr
80 		RUSERSPROC_NAMES(void) = 2;
81 
82 		utmparr
83 		RUSERSPROC_ALLNAMES(void) = 3;
84 	} = 1;
85 
86 	/*
87 	 * Includes idle information
88 	 */
89 	version RUSERSVERS_IDLE {
90 		int
91 		RUSERSPROC_NUM(void) = 1;
92 
93 		utmpidlearr
94 		RUSERSPROC_NAMES(void) = 2;
95 
96 		utmpidlearr
97 		RUSERSPROC_ALLNAMES(void) = 3;
98 	} = 2;
99 
100 	/*
101 	 * Version 3 rusers procedures (from Solaris).
102 	 * (Thanks a lot Sun.)
103 	 */
104 	version RUSERSVERS_3 {
105 		int
106 		RUSERSPROC_NUM(void) = 1;
107 
108 		utmp_array
109 		RUSERSPROC_NAMES(void) = 2;
110 
111 		utmp_array
112 		RUSERSPROC_ALLNAMES(void) = 3;
113 	} = 3;
114 
115 } = 100002;
116 
117