1 0 stevel /* 2 0 stevel * CDDL HEADER START 3 0 stevel * 4 0 stevel * The contents of this file are subject to the terms of the 5 0 stevel * Common Development and Distribution License, Version 1.0 only 6 0 stevel * (the "License"). You may not use this file except in compliance 7 0 stevel * with the License. 8 0 stevel * 9 0 stevel * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10 0 stevel * or http://www.opensolaris.org/os/licensing. 11 0 stevel * See the License for the specific language governing permissions 12 0 stevel * and limitations under the License. 13 0 stevel * 14 0 stevel * When distributing Covered Code, include this CDDL HEADER in each 15 0 stevel * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16 0 stevel * If applicable, add the following below this CDDL HEADER, with the 17 0 stevel * fields enclosed by brackets "[]" replaced with your own identifying 18 0 stevel * information: Portions Copyright [yyyy] [name of copyright owner] 19 0 stevel * 20 0 stevel * CDDL HEADER END 21 0 stevel */ 22 0 stevel /* 23 0 stevel * Copyright 1991 Sun Microsystems, Inc. 24 0 stevel * #ident "%Z%%M% %I% %E% SMI" 25 0 stevel */ 26 0 stevel 27 0 stevel %/* 28 0 stevel % * Find out about remote users 29 0 stevel % */ 30 0 stevel 31 0 stevel const RUSERS_MAXUSERLEN = 32; 32 0 stevel const RUSERS_MAXLINELEN = 32; 33 0 stevel const RUSERS_MAXHOSTLEN = 257; 34 0 stevel 35 0 stevel struct rusers_utmp { 36 0 stevel string ut_user<RUSERS_MAXUSERLEN>; /* aka ut_name */ 37 0 stevel string ut_line<RUSERS_MAXLINELEN>; /* device */ 38 0 stevel string ut_host<RUSERS_MAXHOSTLEN>; /* host user logged on from */ 39 0 stevel int ut_type; /* type of entry */ 40 0 stevel int ut_time; /* time entry was made */ 41 0 stevel unsigned int ut_idle; /* minutes idle */ 42 0 stevel }; 43 0 stevel 44 0 stevel typedef rusers_utmp utmp_array<>; 45 0 stevel 46 0 stevel #ifdef RPC_HDR 47 0 stevel % 48 0 stevel %/* 49 0 stevel % * Values for ut_type field above. 50 0 stevel % */ 51 0 stevel #endif 52 0 stevel const RUSERS_EMPTY = 0; 53 0 stevel const RUSERS_RUN_LVL = 1; 54 0 stevel const RUSERS_BOOT_TIME = 2; 55 0 stevel const RUSERS_OLD_TIME = 3; 56 0 stevel const RUSERS_NEW_TIME = 4; 57 0 stevel const RUSERS_INIT_PROCESS = 5; 58 0 stevel const RUSERS_LOGIN_PROCESS = 6; 59 0 stevel const RUSERS_USER_PROCESS = 7; 60 0 stevel const RUSERS_DEAD_PROCESS = 8; 61 0 stevel const RUSERS_ACCOUNTING = 9; 62 0 stevel 63 0 stevel program RUSERSPROG { 64 0 stevel 65 0 stevel version RUSERSVERS_3 { 66 0 stevel int 67 0 stevel RUSERSPROC_NUM(void) = 1; 68 0 stevel 69 0 stevel utmp_array 70 0 stevel RUSERSPROC_NAMES(void) = 2; 71 0 stevel 72 0 stevel utmp_array 73 0 stevel RUSERSPROC_ALLNAMES(void) = 3; 74 0 stevel } = 3; 75 0 stevel 76 0 stevel } = 100002; 77 0 stevel 78 0 stevel #ifdef RPC_HDR 79 0 stevel % 80 0 stevel % 81 0 stevel % 82 0 stevel %/* 83 0 stevel % * The following structures are used by version 2 of the rusersd protocol. 84 0 stevel % * They were not developed with rpcgen, so they do not appear as RPCL. 85 0 stevel % */ 86 0 stevel % 87 0 stevel %#define RUSERSVERS_IDLE 2 88 0 stevel %#define RUSERSVERS 3 /* current version */ 89 0 stevel %#define MAXUSERS 100 90 0 stevel % 91 0 stevel %/* 92 0 stevel % * This is the structure used in version 2 of the rusersd RPC service. 93 0 stevel % * It corresponds to the utmp structure for BSD sytems. 94 0 stevel % */ 95 0 stevel %struct ru_utmp { 96 0 stevel % char ut_line[8]; /* tty name */ 97 0 stevel % char ut_name[8]; /* user id */ 98 0 stevel % char ut_host[16]; /* host name, if remote */ 99 0 stevel % time_t ut_time; /* time on */ 100 0 stevel %}; 101 0 stevel % 102 0 stevel %struct utmpidle { 103 0 stevel % struct ru_utmp ui_utmp; 104 0 stevel % unsigned ui_idle; 105 0 stevel %}; 106 0 stevel % 107 0 stevel %struct utmpidlearr { 108 0 stevel % struct utmpidle **uia_arr; 109 0 stevel % int uia_cnt; 110 0 stevel %}; 111 0 stevel % 112 0 stevel %int xdr_utmpidlearr(); 113 0 stevel % 114 0 stevel %#if defined(__STDC__) || defined(__cplusplus) 115 0 stevel %enum clnt_stat rusers(char *host, struct utmpidlearr *up); 116 0 stevel %int rnusers(char *host); 117 0 stevel %#else 118 0 stevel %enum clnt_stat rusers(); 119 0 stevel %int rnusers(); 120 0 stevel %#endif 121 0 stevel % 122 0 stevel #endif 123