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