1*53ee8cc1Swenshuai.xi /* 2*53ee8cc1Swenshuai.xi * Please do not edit this file. 3*53ee8cc1Swenshuai.xi * It was generated using rpcgen. 4*53ee8cc1Swenshuai.xi */ 5*53ee8cc1Swenshuai.xi 6*53ee8cc1Swenshuai.xi #ifndef _RUSERS_H_RPCGEN 7*53ee8cc1Swenshuai.xi #define _RUSERS_H_RPCGEN 8*53ee8cc1Swenshuai.xi 9*53ee8cc1Swenshuai.xi #include <rpc/rpc.h> 10*53ee8cc1Swenshuai.xi 11*53ee8cc1Swenshuai.xi 12*53ee8cc1Swenshuai.xi #ifdef __cplusplus 13*53ee8cc1Swenshuai.xi extern "C" { 14*53ee8cc1Swenshuai.xi #endif 15*53ee8cc1Swenshuai.xi 16*53ee8cc1Swenshuai.xi /* 17*53ee8cc1Swenshuai.xi * Find out about remote users 18*53ee8cc1Swenshuai.xi */ 19*53ee8cc1Swenshuai.xi #define RUSERS_MAXUSERLEN 32 20*53ee8cc1Swenshuai.xi #define RUSERS_MAXLINELEN 32 21*53ee8cc1Swenshuai.xi #define RUSERS_MAXHOSTLEN 257 22*53ee8cc1Swenshuai.xi 23*53ee8cc1Swenshuai.xi struct rusers_utmp { 24*53ee8cc1Swenshuai.xi char *ut_user; 25*53ee8cc1Swenshuai.xi char *ut_line; 26*53ee8cc1Swenshuai.xi char *ut_host; 27*53ee8cc1Swenshuai.xi int ut_type; 28*53ee8cc1Swenshuai.xi int ut_time; 29*53ee8cc1Swenshuai.xi u_int ut_idle; 30*53ee8cc1Swenshuai.xi }; 31*53ee8cc1Swenshuai.xi typedef struct rusers_utmp rusers_utmp; 32*53ee8cc1Swenshuai.xi 33*53ee8cc1Swenshuai.xi typedef struct { 34*53ee8cc1Swenshuai.xi u_int utmp_array_len; 35*53ee8cc1Swenshuai.xi rusers_utmp *utmp_array_val; 36*53ee8cc1Swenshuai.xi } utmp_array; 37*53ee8cc1Swenshuai.xi 38*53ee8cc1Swenshuai.xi /* 39*53ee8cc1Swenshuai.xi * Values for ut_type field above. 40*53ee8cc1Swenshuai.xi */ 41*53ee8cc1Swenshuai.xi #define RUSERS_EMPTY 0 42*53ee8cc1Swenshuai.xi #define RUSERS_RUN_LVL 1 43*53ee8cc1Swenshuai.xi #define RUSERS_BOOT_TIME 2 44*53ee8cc1Swenshuai.xi #define RUSERS_OLD_TIME 3 45*53ee8cc1Swenshuai.xi #define RUSERS_NEW_TIME 4 46*53ee8cc1Swenshuai.xi #define RUSERS_INIT_PROCESS 5 47*53ee8cc1Swenshuai.xi #define RUSERS_LOGIN_PROCESS 6 48*53ee8cc1Swenshuai.xi #define RUSERS_USER_PROCESS 7 49*53ee8cc1Swenshuai.xi #define RUSERS_DEAD_PROCESS 8 50*53ee8cc1Swenshuai.xi #define RUSERS_ACCOUNTING 9 51*53ee8cc1Swenshuai.xi 52*53ee8cc1Swenshuai.xi 53*53ee8cc1Swenshuai.xi #ifdef __cplusplus 54*53ee8cc1Swenshuai.xi extern "C" { 55*53ee8cc1Swenshuai.xi #endif 56*53ee8cc1Swenshuai.xi 57*53ee8cc1Swenshuai.xi #include <rpc/xdr.h> 58*53ee8cc1Swenshuai.xi 59*53ee8cc1Swenshuai.xi /* 60*53ee8cc1Swenshuai.xi * The following structures are used by version 2 of the rusersd protocol. 61*53ee8cc1Swenshuai.xi * They were not developed with rpcgen, so they do not appear as RPCL. 62*53ee8cc1Swenshuai.xi */ 63*53ee8cc1Swenshuai.xi 64*53ee8cc1Swenshuai.xi #define RUSERSVERS_IDLE 2 65*53ee8cc1Swenshuai.xi #define RUSERSVERS 3 /* current version */ 66*53ee8cc1Swenshuai.xi #define MAXUSERS 100 67*53ee8cc1Swenshuai.xi 68*53ee8cc1Swenshuai.xi /* 69*53ee8cc1Swenshuai.xi * This is the structure used in version 2 of the rusersd RPC service. 70*53ee8cc1Swenshuai.xi * It corresponds to the utmp structure for BSD systems. 71*53ee8cc1Swenshuai.xi */ 72*53ee8cc1Swenshuai.xi struct ru_utmp { 73*53ee8cc1Swenshuai.xi char ut_line[8]; /* tty name */ 74*53ee8cc1Swenshuai.xi char ut_name[8]; /* user id */ 75*53ee8cc1Swenshuai.xi char ut_host[16]; /* host name, if remote */ 76*53ee8cc1Swenshuai.xi long int ut_time; /* time on */ 77*53ee8cc1Swenshuai.xi }; 78*53ee8cc1Swenshuai.xi 79*53ee8cc1Swenshuai.xi struct utmparr { 80*53ee8cc1Swenshuai.xi struct ru_utmp **uta_arr; 81*53ee8cc1Swenshuai.xi int uta_cnt; 82*53ee8cc1Swenshuai.xi }; 83*53ee8cc1Swenshuai.xi typedef struct utmparr utmparr; 84*53ee8cc1Swenshuai.xi 85*53ee8cc1Swenshuai.xi extern bool_t xdr_utmparr (XDR *xdrs, struct utmparr *objp) __THROW; 86*53ee8cc1Swenshuai.xi 87*53ee8cc1Swenshuai.xi struct utmpidle { 88*53ee8cc1Swenshuai.xi struct ru_utmp ui_utmp; 89*53ee8cc1Swenshuai.xi unsigned int ui_idle; 90*53ee8cc1Swenshuai.xi }; 91*53ee8cc1Swenshuai.xi 92*53ee8cc1Swenshuai.xi struct utmpidlearr { 93*53ee8cc1Swenshuai.xi struct utmpidle **uia_arr; 94*53ee8cc1Swenshuai.xi int uia_cnt; 95*53ee8cc1Swenshuai.xi }; 96*53ee8cc1Swenshuai.xi 97*53ee8cc1Swenshuai.xi extern bool_t xdr_utmpidlearr (XDR *xdrs, struct utmpidlearr *objp) __THROW; 98*53ee8cc1Swenshuai.xi 99*53ee8cc1Swenshuai.xi #ifdef __cplusplus 100*53ee8cc1Swenshuai.xi } 101*53ee8cc1Swenshuai.xi #endif 102*53ee8cc1Swenshuai.xi 103*53ee8cc1Swenshuai.xi #define RUSERSPROG 100002 104*53ee8cc1Swenshuai.xi #define RUSERSVERS_3 3 105*53ee8cc1Swenshuai.xi 106*53ee8cc1Swenshuai.xi #if defined(__STDC__) || defined(__cplusplus) 107*53ee8cc1Swenshuai.xi #define RUSERSPROC_NUM 1 108*53ee8cc1Swenshuai.xi extern int * rusersproc_num_3(void *, CLIENT *); 109*53ee8cc1Swenshuai.xi extern int * rusersproc_num_3_svc(void *, struct svc_req *); 110*53ee8cc1Swenshuai.xi #define RUSERSPROC_NAMES 2 111*53ee8cc1Swenshuai.xi extern utmp_array * rusersproc_names_3(void *, CLIENT *); 112*53ee8cc1Swenshuai.xi extern utmp_array * rusersproc_names_3_svc(void *, struct svc_req *); 113*53ee8cc1Swenshuai.xi #define RUSERSPROC_ALLNAMES 3 114*53ee8cc1Swenshuai.xi extern utmp_array * rusersproc_allnames_3(void *, CLIENT *); 115*53ee8cc1Swenshuai.xi extern utmp_array * rusersproc_allnames_3_svc(void *, struct svc_req *); 116*53ee8cc1Swenshuai.xi extern int rusersprog_3_freeresult (SVCXPRT *, xdrproc_t, caddr_t); 117*53ee8cc1Swenshuai.xi 118*53ee8cc1Swenshuai.xi #else /* K&R C */ 119*53ee8cc1Swenshuai.xi #define RUSERSPROC_NUM 1 120*53ee8cc1Swenshuai.xi extern int * rusersproc_num_3(); 121*53ee8cc1Swenshuai.xi extern int * rusersproc_num_3_svc(); 122*53ee8cc1Swenshuai.xi #define RUSERSPROC_NAMES 2 123*53ee8cc1Swenshuai.xi extern utmp_array * rusersproc_names_3(); 124*53ee8cc1Swenshuai.xi extern utmp_array * rusersproc_names_3_svc(); 125*53ee8cc1Swenshuai.xi #define RUSERSPROC_ALLNAMES 3 126*53ee8cc1Swenshuai.xi extern utmp_array * rusersproc_allnames_3(); 127*53ee8cc1Swenshuai.xi extern utmp_array * rusersproc_allnames_3_svc(); 128*53ee8cc1Swenshuai.xi extern int rusersprog_3_freeresult (); 129*53ee8cc1Swenshuai.xi #endif /* K&R C */ 130*53ee8cc1Swenshuai.xi 131*53ee8cc1Swenshuai.xi /* the xdr functions */ 132*53ee8cc1Swenshuai.xi 133*53ee8cc1Swenshuai.xi #if defined(__STDC__) || defined(__cplusplus) 134*53ee8cc1Swenshuai.xi extern bool_t xdr_rusers_utmp (XDR *, rusers_utmp*); 135*53ee8cc1Swenshuai.xi extern bool_t xdr_utmp_array (XDR *, utmp_array*); 136*53ee8cc1Swenshuai.xi 137*53ee8cc1Swenshuai.xi #else /* K&R C */ 138*53ee8cc1Swenshuai.xi extern bool_t xdr_rusers_utmp (); 139*53ee8cc1Swenshuai.xi extern bool_t xdr_utmp_array (); 140*53ee8cc1Swenshuai.xi 141*53ee8cc1Swenshuai.xi #endif /* K&R C */ 142*53ee8cc1Swenshuai.xi 143*53ee8cc1Swenshuai.xi #ifdef __cplusplus 144*53ee8cc1Swenshuai.xi } 145*53ee8cc1Swenshuai.xi #endif 146*53ee8cc1Swenshuai.xi 147*53ee8cc1Swenshuai.xi #endif /* !_RUSERS_H_RPCGEN */ 148