diff options
Diffstat (limited to 'lib/librpcsvc/rnusers.x')
-rw-r--r-- | lib/librpcsvc/rnusers.x | 95 |
1 files changed, 52 insertions, 43 deletions
diff --git a/lib/librpcsvc/rnusers.x b/lib/librpcsvc/rnusers.x index 5b175d75474..88d0bbc4f48 100644 --- a/lib/librpcsvc/rnusers.x +++ b/lib/librpcsvc/rnusers.x @@ -1,4 +1,4 @@ -/* $OpenBSD: rnusers.x,v 1.6 1997/08/19 07:54:49 niklas Exp $ */ +/* $OpenBSD: rnusers.x,v 1.7 1998/02/11 04:32:28 gene Exp $ */ /* * Sun RPC is a product of Sun Microsystems, Inc. and is provided for @@ -34,10 +34,11 @@ */ #ifndef RPC_HDR +%#include <sys/cdefs.h> %#ifndef lint %/*static char sccsid[] = "from: @(#)rnusers.x 1.2 87/09/20 Copyr 1987 Sun Micro";*/ %/*static char sccsid[] = "from: @(#)rnusers.x 2.1 88/08/01 4.0 RPCSRC";*/ -%static char rcsid[] = "$OpenBSD: rnusers.x,v 1.6 1997/08/19 07:54:49 niklas Exp $"; +% static char rcsid[] = "$OpenBSD: rnusers.x,v 1.7 1998/02/11 04:32:28 gene Exp $"; %#endif /* not lint */ #endif @@ -56,25 +57,19 @@ % * This is the structure used in version 2 of the rusersd RPC service. % * It corresponds to the utmp structure for BSD sytems. % */ -% -%#define RNUSERS_MAXUSERLEN 8 -%#define RNUSERS_MAXLINELEN 8 -%#define RNUSERS_MAXHOSTLEN 16 -% %struct ru_utmp { -% char *ut_line; /* tty name */ -% char *ut_name; /* user id */ -% char *ut_host; /* host name, if remote */ -% int ut_time; /* time on */ +% char ut_line[8]; /* tty name */ +% char ut_name[8]; /* user id */ +% char ut_host[16]; /* host name, if remote */ +% time_t ut_time; /* time on */ %}; %typedef struct ru_utmp rutmp; % %struct utmparr { -% struct ru_utmp **uta_arr; +% struct utmp **uta_arr; % int uta_cnt; %}; %typedef struct utmparr utmparr; -%int xdr_utmparr(); % %struct utmpidle { % struct ru_utmp ui_utmp; @@ -86,21 +81,30 @@ % int uia_cnt; %}; %typedef struct utmpidlearr utmpidlearr; -%int xdr_utmpidlearr(); % -%#define RUSERSVERS_1 ((u_long)1) -%#define RUSERSVERS_2 ((u_long)2) +%#include <sys/cdefs.h> +%__BEGIN_DECLS +%bool_t xdr_utmp __P((XDR *, struct ru_utmp *)); +%bool_t xdr_utmpptr __P((XDR *, struct ru_utmp **)); +%bool_t xdr_utmparr __P((XDR *, struct utmparr *)); +%bool_t xdr_utmpidle __P((XDR *, struct utmpidle *)); +%bool_t xdr_utmpidleptr __P((XDR *, struct utmpidle **)); +%bool_t xdr_utmpidlearr __P((XDR *, struct utmpidlearr *)); +%__END_DECLS +% +%#define RUSERSVERS_1 ((u_int32_t)1) +%#define RUSERSVERS_2 ((u_int32_t)2) %#ifndef RUSERSPROG -%#define RUSERSPROG ((u_long)100002) +%#define RUSERSPROG ((u_int32_t)100002) %#endif %#ifndef RUSERSPROC_NUM -%#define RUSERSPROC_NUM ((u_long)1) +%#define RUSERSPROC_NUM ((u_int32_t)1) %#endif %#ifndef RUSERSPROC_NAMES -%#define RUSERSPROC_NAMES ((u_long)2) +%#define RUSERSPROC_NAMES ((u_int32_t)2) %#endif %#ifndef RUSERSPROC_ALLNAMES -%#define RUSERSPROC_ALLNAMES ((u_long)3) +%#define RUSERSPROC_ALLNAMES ((u_int32_t)3) %#endif % #endif /* RPC_HDR */ @@ -111,23 +115,29 @@ % XDR *xdrs; % struct ru_utmp *objp; %{ +% char *ptr; % int size; % -% size = RNUSERS_MAXLINELEN; -% if (!xdr_bytes(xdrs, &objp->ut_line, &size, RNUSERS_MAXLINELEN)) { +% /* +% * We are using a non-malloc allocated array, +% * so we are not supposed to call xdr_free with it. +% */ +% if (xdrs->x_op == XDR_FREE) +% return (TRUE); +% ptr = objp->ut_line; +% size = sizeof(objp->ut_line); +% if (!xdr_bytes(xdrs, &ptr, &size, size)) % return (FALSE); -% } -% size = RNUSERS_MAXUSERLEN; -% if (!xdr_bytes(xdrs, &objp->ut_name, &size, RNUSERS_MAXUSERLEN)) { +% ptr = objp->ut_name; +% size = sizeof(objp->ut_name); +% if (!xdr_bytes(xdrs, &ptr, &size, size)) % return (FALSE); -% } -% size = RNUSERS_MAXHOSTLEN; -% if (!xdr_bytes(xdrs, &objp->ut_host, &size, RNUSERS_MAXHOSTLEN)) { +% ptr = objp->ut_host; +% size = sizeof(objp->ut_host); +% if (!xdr_bytes(xdrs, &ptr, &size, size)) % return (FALSE); -% } -% if (!xdr_int(xdrs, &objp->ut_time)) { +% if (!xdr_long(xdrs, &objp->ut_time)) % return (FALSE); -% } % return (TRUE); %} % @@ -136,10 +146,10 @@ % XDR *xdrs; % struct ru_utmp **objpp; %{ +% % if (!xdr_reference(xdrs, (char **) objpp, sizeof (struct ru_utmp), -% xdr_utmp)) { +% xdr_utmp)) % return (FALSE); -% } % return (TRUE); %} % @@ -148,10 +158,10 @@ % XDR *xdrs; % struct utmparr *objp; %{ +% % if (!xdr_array(xdrs, (char **)&objp->uta_arr, (u_int *)&objp->uta_cnt, -% MAXUSERS, sizeof(struct ru_utmp *), xdr_utmpptr)) { +% MAXUSERS, sizeof(struct utmp *), xdr_utmpptr)) % return (FALSE); -% } % return (TRUE); %} % @@ -160,12 +170,11 @@ % XDR *xdrs; % struct utmpidle *objp; %{ -% if (!xdr_utmp(xdrs, &objp->ui_utmp)) { +% +% if (!xdr_utmp(xdrs, &objp->ui_utmp)) % return (FALSE); -% } -% if (!xdr_u_int(xdrs, &objp->ui_idle)) { +% if (!xdr_u_int(xdrs, &objp->ui_idle)) % return (FALSE); -% } % return (TRUE); %} % @@ -174,10 +183,10 @@ % XDR *xdrs; % struct utmpidle **objpp; %{ +% % if (!xdr_reference(xdrs, (char **) objpp, sizeof (struct utmpidle), -% xdr_utmpidle)) { +% xdr_utmpidle)) % return (FALSE); -% } % return (TRUE); %} % @@ -186,10 +195,10 @@ % XDR *xdrs; % struct utmpidlearr *objp; %{ +% % if (!xdr_array(xdrs, (char **)&objp->uia_arr, (u_int *)&objp->uia_cnt, -% MAXUSERS, sizeof(struct utmpidle *), xdr_utmpidleptr)) { +% MAXUSERS, sizeof(struct utmpidle *), xdr_utmpidleptr)) % return (FALSE); -% } % return (TRUE); %} #endif |