]> git.decadent.org.uk Git - nfs-utils.git/blob - utils/rquotad/rquota_xdr.c
46eb1e1ab13fa7a53a1da58fffc383891718a659
[nfs-utils.git] / utils / rquotad / rquota_xdr.c
1 #ifdef HAVE_CONFIG_H
2 #include <config.h>
3 #endif
4
5 #include <rpc/rpc.h>
6 #include "rquota.h"
7
8
9 bool_t
10 xdr_getquota_args(xdrs, objp)
11         XDR *xdrs;
12         getquota_args *objp;
13 {
14         if (!xdr_string(xdrs, &objp->gqa_pathp, RQ_PATHLEN)) {
15                 return (FALSE);
16         }
17         if (!xdr_int(xdrs, &objp->gqa_uid)) {
18                 return (FALSE);
19         }
20         return (TRUE);
21 }
22
23
24
25
26 bool_t
27 xdr_ext_getquota_args(xdrs, objp)
28         XDR *xdrs;
29         ext_getquota_args *objp;
30 {
31         if (!xdr_string(xdrs, &objp->gqa_pathp, RQ_PATHLEN)) {
32                 return (FALSE);
33         }
34         if (!xdr_int(xdrs, &objp->gqa_type)) {
35                 return (FALSE);
36         }
37         if (!xdr_int(xdrs, &objp->gqa_id)) {
38                 return (FALSE);
39         }
40         return (TRUE);
41 }
42
43
44
45
46 bool_t
47 xdr_rquota(xdrs, objp)
48         XDR *xdrs;
49         rquota *objp;
50 {
51         if (!xdr_int(xdrs, &objp->rq_bsize)) {
52                 return (FALSE);
53         }
54         if (!xdr_bool(xdrs, &objp->rq_active)) {
55                 return (FALSE);
56         }
57         if (!xdr_u_int(xdrs, &objp->rq_bhardlimit)) {
58                 return (FALSE);
59         }
60         if (!xdr_u_int(xdrs, &objp->rq_bsoftlimit)) {
61                 return (FALSE);
62         }
63         if (!xdr_u_int(xdrs, &objp->rq_curblocks)) {
64                 return (FALSE);
65         }
66         if (!xdr_u_int(xdrs, &objp->rq_fhardlimit)) {
67                 return (FALSE);
68         }
69         if (!xdr_u_int(xdrs, &objp->rq_fsoftlimit)) {
70                 return (FALSE);
71         }
72         if (!xdr_u_int(xdrs, &objp->rq_curfiles)) {
73                 return (FALSE);
74         }
75         if (!xdr_u_int(xdrs, &objp->rq_btimeleft)) {
76                 return (FALSE);
77         }
78         if (!xdr_u_int(xdrs, &objp->rq_ftimeleft)) {
79                 return (FALSE);
80         }
81         return (TRUE);
82 }
83
84
85
86
87 bool_t
88 xdr_gqr_status(xdrs, objp)
89         XDR *xdrs;
90         gqr_status *objp;
91 {
92         if (!xdr_enum(xdrs, (enum_t *)objp)) {
93                 return (FALSE);
94         }
95         return (TRUE);
96 }
97
98
99
100
101 bool_t
102 xdr_getquota_rslt(xdrs, objp)
103         XDR *xdrs;
104         getquota_rslt *objp;
105 {
106         if (!xdr_gqr_status(xdrs, &objp->status)) {
107                 return (FALSE);
108         }
109         switch (objp->status) {
110         case Q_OK:
111                 if (!xdr_rquota(xdrs, &objp->getquota_rslt_u.gqr_rquota)) {
112                         return (FALSE);
113                 }
114                 break;
115         case Q_NOQUOTA:
116                 break;
117         case Q_EPERM:
118                 break;
119         default:
120                 return (FALSE);
121         }
122         return (TRUE);
123 }
124
125