]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - usr.sbin/rpc.lockd/test.c
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / usr.sbin / rpc.lockd / test.c
1 /*      $NetBSD: test.c,v 1.2 1997/10/18 04:01:21 lukem Exp $   */
2
3 #include <sys/cdefs.h>
4 #include <rpc/rpc.h>
5 #include <rpcsvc/nlm_prot.h>
6 #ifndef lint
7 #if 0
8 static char sccsid[] = "from: @(#)nlm_prot.x 1.8 87/09/21 Copyr 1987 Sun Micro";
9 static char sccsid[] = "from: * @(#)nlm_prot.x  2.1 88/08/01 4.0 RPCSRC";
10 #else
11 __RCSID("$NetBSD: test.c,v 1.2 1997/10/18 04:01:21 lukem Exp $");
12 static const char rcsid[] = "$FreeBSD$";
13 #endif
14 #endif                          /* not lint */
15
16 /* Default timeout can be changed using clnt_control() */
17 static struct timeval TIMEOUT = { 0, 0 };
18
19 nlm_testres *
20 nlm_test_1(argp, clnt)
21         struct nlm_testargs *argp;
22         CLIENT *clnt;
23 {
24         static nlm_testres res;
25
26         bzero((char *)&res, sizeof(res));
27         if (clnt_call(clnt, NLM_TEST, xdr_nlm_testargs, argp, xdr_nlm_testres, &res, TIMEOUT) != RPC_SUCCESS) {
28                 return (NULL);
29         }
30         return (&res);
31 }
32
33
34 nlm_res *
35 nlm_lock_1(argp, clnt)
36         struct nlm_lockargs *argp;
37         CLIENT *clnt;
38 {
39         enum clnt_stat st;
40         static nlm_res res;
41
42         bzero((char *)&res, sizeof(res));
43         if (st = clnt_call(clnt, NLM_LOCK, xdr_nlm_lockargs, argp, xdr_nlm_res, &res, TIMEOUT) != RPC_SUCCESS) {
44                 printf("clnt_call returns %d\n", st);
45                 clnt_perror(clnt, "humbug");
46                 return (NULL);
47         }
48         return (&res);
49 }
50
51
52 nlm_res *
53 nlm_cancel_1(argp, clnt)
54         struct nlm_cancargs *argp;
55         CLIENT *clnt;
56 {
57         static nlm_res res;
58
59         bzero((char *)&res, sizeof(res));
60         if (clnt_call(clnt, NLM_CANCEL, xdr_nlm_cancargs, argp, xdr_nlm_res, &res, TIMEOUT) != RPC_SUCCESS) {
61                 return (NULL);
62         }
63         return (&res);
64 }
65
66
67 nlm_res *
68 nlm_unlock_1(argp, clnt)
69         struct nlm_unlockargs *argp;
70         CLIENT *clnt;
71 {
72         static nlm_res res;
73
74         bzero((char *)&res, sizeof(res));
75         if (clnt_call(clnt, NLM_UNLOCK, xdr_nlm_unlockargs, argp, xdr_nlm_res, &res, TIMEOUT) != RPC_SUCCESS) {
76                 return (NULL);
77         }
78         return (&res);
79 }
80
81
82 nlm_res *
83 nlm_granted_1(argp, clnt)
84         struct nlm_testargs *argp;
85         CLIENT *clnt;
86 {
87         static nlm_res res;
88
89         bzero((char *)&res, sizeof(res));
90         if (clnt_call(clnt, NLM_GRANTED, xdr_nlm_testargs, argp, xdr_nlm_res, &res, TIMEOUT) != RPC_SUCCESS) {
91                 return (NULL);
92         }
93         return (&res);
94 }
95
96
97 void *
98 nlm_test_msg_1(argp, clnt)
99         struct nlm_testargs *argp;
100         CLIENT *clnt;
101 {
102         static char res;
103
104         bzero((char *)&res, sizeof(res));
105         if (clnt_call(clnt, NLM_TEST_MSG, xdr_nlm_testargs, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) {
106                 return (NULL);
107         }
108         return ((void *)&res);
109 }
110
111
112 void *
113 nlm_lock_msg_1(argp, clnt)
114         struct nlm_lockargs *argp;
115         CLIENT *clnt;
116 {
117         static char res;
118
119         bzero((char *)&res, sizeof(res));
120         if (clnt_call(clnt, NLM_LOCK_MSG, xdr_nlm_lockargs, argp, xdr_void, NULL, TIMEOUT) != RPC_SUCCESS) {
121                 clnt_perror(clnt, "nlm_lock_msg_1");
122                 return (NULL);
123         }
124         return ((void *)&res);
125 }
126
127
128 void *
129 nlm_cancel_msg_1(argp, clnt)
130         struct nlm_cancargs *argp;
131         CLIENT *clnt;
132 {
133         static char res;
134
135         bzero((char *)&res, sizeof(res));
136         if (clnt_call(clnt, NLM_CANCEL_MSG, xdr_nlm_cancargs, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) {
137                 return (NULL);
138         }
139         return ((void *)&res);
140 }
141
142
143 void *
144 nlm_unlock_msg_1(argp, clnt)
145         struct nlm_unlockargs *argp;
146         CLIENT *clnt;
147 {
148         static char res;
149
150         bzero((char *)&res, sizeof(res));
151         if (clnt_call(clnt, NLM_UNLOCK_MSG, xdr_nlm_unlockargs, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) {
152                 return (NULL);
153         }
154         return ((void *)&res);
155 }
156
157
158 void *
159 nlm_granted_msg_1(argp, clnt)
160         struct nlm_testargs *argp;
161         CLIENT *clnt;
162 {
163         static char res;
164
165         bzero((char *)&res, sizeof(res));
166         if (clnt_call(clnt, NLM_GRANTED_MSG, xdr_nlm_testargs, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) {
167                 return (NULL);
168         }
169         return ((void *)&res);
170 }
171
172
173 void *
174 nlm_test_res_1(argp, clnt)
175         nlm_testres *argp;
176         CLIENT *clnt;
177 {
178         static char res;
179
180         bzero((char *)&res, sizeof(res));
181         if (clnt_call(clnt, NLM_TEST_RES, xdr_nlm_testres, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) {
182                 return (NULL);
183         }
184         return ((void *)&res);
185 }
186
187
188 void *
189 nlm_lock_res_1(argp, clnt)
190         nlm_res *argp;
191         CLIENT *clnt;
192 {
193         static char res;
194
195         bzero((char *)&res, sizeof(res));
196         if (clnt_call(clnt, NLM_LOCK_RES, xdr_nlm_res, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) {
197                 return (NULL);
198         }
199         return ((void *)&res);
200 }
201
202
203 void *
204 nlm_cancel_res_1(argp, clnt)
205         nlm_res *argp;
206         CLIENT *clnt;
207 {
208         static char res;
209
210         bzero((char *)&res, sizeof(res));
211         if (clnt_call(clnt, NLM_CANCEL_RES, xdr_nlm_res, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) {
212                 return (NULL);
213         }
214         return ((void *)&res);
215 }
216
217
218 void *
219 nlm_unlock_res_1(argp, clnt)
220         nlm_res *argp;
221         CLIENT *clnt;
222 {
223         static char res;
224
225         bzero((char *)&res, sizeof(res));
226         if (clnt_call(clnt, NLM_UNLOCK_RES, xdr_nlm_res, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) {
227                 return (NULL);
228         }
229         return ((void *)&res);
230 }
231
232
233 void *
234 nlm_granted_res_1(argp, clnt)
235         nlm_res *argp;
236         CLIENT *clnt;
237 {
238         static char res;
239
240         bzero((char *)&res, sizeof(res));
241         if (clnt_call(clnt, NLM_GRANTED_RES, xdr_nlm_res, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) {
242                 return (NULL);
243         }
244         return ((void *)&res);
245 }
246
247
248 nlm_shareres *
249 nlm_share_3(argp, clnt)
250         nlm_shareargs *argp;
251         CLIENT *clnt;
252 {
253         static nlm_shareres res;
254
255         bzero((char *)&res, sizeof(res));
256         if (clnt_call(clnt, NLM_SHARE, xdr_nlm_shareargs, argp, xdr_nlm_shareres, &res, TIMEOUT) != RPC_SUCCESS) {
257                 return (NULL);
258         }
259         return (&res);
260 }
261
262
263 nlm_shareres *
264 nlm_unshare_3(argp, clnt)
265         nlm_shareargs *argp;
266         CLIENT *clnt;
267 {
268         static nlm_shareres res;
269
270         bzero((char *)&res, sizeof(res));
271         if (clnt_call(clnt, NLM_UNSHARE, xdr_nlm_shareargs, argp, xdr_nlm_shareres, &res, TIMEOUT) != RPC_SUCCESS) {
272                 return (NULL);
273         }
274         return (&res);
275 }
276
277
278 nlm_res *
279 nlm_nm_lock_3(argp, clnt)
280         nlm_lockargs *argp;
281         CLIENT *clnt;
282 {
283         static nlm_res res;
284
285         bzero((char *)&res, sizeof(res));
286         if (clnt_call(clnt, NLM_NM_LOCK, xdr_nlm_lockargs, argp, xdr_nlm_res, &res, TIMEOUT) != RPC_SUCCESS) {
287                 return (NULL);
288         }
289         return (&res);
290 }
291
292
293 void *
294 nlm_free_all_3(argp, clnt)
295         nlm_notify *argp;
296         CLIENT *clnt;
297 {
298         static char res;
299
300         bzero((char *)&res, sizeof(res));
301         if (clnt_call(clnt, NLM_FREE_ALL, xdr_nlm_notify, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) {
302                 return (NULL);
303         }
304         return ((void *)&res);
305 }
306
307
308 int main(int argc, char **argv)
309 {
310         CLIENT *cli;
311         nlm_res res_block;
312         nlm_res *out;
313         nlm_lockargs arg;
314         struct timeval tim;
315
316         printf("Creating client for host %s\n", argv[1]);
317         cli = clnt_create(argv[1], NLM_PROG, NLM_VERS, "udp");
318         if (!cli) {
319                 errx(1, "Failed to create client\n");
320                 /* NOTREACHED */
321         }
322         clnt_control(cli, CLGET_TIMEOUT, &tim);
323         printf("Default timeout was %d.%d\n", tim.tv_sec, tim.tv_usec);
324         tim.tv_usec = -1;
325         tim.tv_sec = -1;
326         clnt_control(cli, CLSET_TIMEOUT, &tim);
327         clnt_control(cli, CLGET_TIMEOUT, &tim);
328         printf("timeout now %d.%d\n", tim.tv_sec, tim.tv_usec);
329
330
331         arg.cookie.n_len = 4;
332         arg.cookie.n_bytes = "hello";
333         arg.block = 0;
334         arg.exclusive = 0;
335         arg.reclaim = 0;
336         arg.state = 0x1234;
337         arg.alock.caller_name = "localhost";
338         arg.alock.fh.n_len = 32;
339         arg.alock.fh.n_bytes = "\x04\x04\x02\x00\x01\x00\x00\x00\x0c\x00\x00\x00\xff\xff\xff\xd0\x16\x00\x00\x5b\x7c\xff\xff\xff\xec\x2f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x54\xef\xbf\xd7\x94";
340         arg.alock.oh.n_len = 8;
341         arg.alock.oh.n_bytes = "\x00\x00\x02\xff\xff\xff\xd3";
342         arg.alock.svid = 0x5678;
343         arg.alock.l_offset = 0;
344         arg.alock.l_len = 100;
345
346         res_block.stat.stat = nlm_granted;
347         res_block.cookie.n_bytes = "hello";
348         res_block.cookie.n_len = 5;
349
350 #if 0
351         if (nlm_lock_res_1(&res_block, cli))
352                 printf("Success!\n");
353         else
354                 printf("Fail\n");
355 #else
356         if (out = nlm_lock_msg_1(&arg, cli)) {
357                 printf("Success!\n");
358                 printf("out->stat = %d", out->stat);
359         } else {
360                 printf("Fail\n");
361         }
362 #endif
363
364         return 0;
365 }