1df82e9baSPhilippe Charnier #ifndef lint 2df82e9baSPhilippe Charnier #if 0 3df82e9baSPhilippe Charnier static char sccsid[] = "from: @(#)nlm_prot.x 1.8 87/09/21 Copyr 1987 Sun Micro"; 4df82e9baSPhilippe Charnier static char sccsid[] = "from: * @(#)nlm_prot.x 2.1 88/08/01 4.0 RPCSRC"; 5df82e9baSPhilippe Charnier #endif 6df82e9baSPhilippe Charnier static const char rcsid[] = 7df82e9baSPhilippe Charnier "$Id$"; 8df82e9baSPhilippe Charnier #endif /* not lint */ 9df82e9baSPhilippe Charnier 10503d2aa8SPeter Wemm #include <rpc/rpc.h> 11503d2aa8SPeter Wemm #include <rpcsvc/nlm_prot.h> 12503d2aa8SPeter Wemm 13503d2aa8SPeter Wemm /* Default timeout can be changed using clnt_control() */ 14503d2aa8SPeter Wemm static struct timeval TIMEOUT = { 0, 0 }; 15503d2aa8SPeter Wemm 16503d2aa8SPeter Wemm nlm_testres * 17503d2aa8SPeter Wemm nlm_test_1(argp, clnt) 18503d2aa8SPeter Wemm struct nlm_testargs *argp; 19503d2aa8SPeter Wemm CLIENT *clnt; 20503d2aa8SPeter Wemm { 21503d2aa8SPeter Wemm static nlm_testres res; 22503d2aa8SPeter Wemm 23503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 24503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_TEST, xdr_nlm_testargs, argp, xdr_nlm_testres, &res, TIMEOUT) != RPC_SUCCESS) { 25503d2aa8SPeter Wemm return (NULL); 26503d2aa8SPeter Wemm } 27503d2aa8SPeter Wemm return (&res); 28503d2aa8SPeter Wemm } 29503d2aa8SPeter Wemm 30503d2aa8SPeter Wemm 31503d2aa8SPeter Wemm nlm_res * 32503d2aa8SPeter Wemm nlm_lock_1(argp, clnt) 33503d2aa8SPeter Wemm struct nlm_lockargs *argp; 34503d2aa8SPeter Wemm CLIENT *clnt; 35503d2aa8SPeter Wemm { 36503d2aa8SPeter Wemm enum clnt_stat st; 37503d2aa8SPeter Wemm static nlm_res res; 38503d2aa8SPeter Wemm 39503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 40503d2aa8SPeter Wemm if (st = clnt_call(clnt, NLM_LOCK, xdr_nlm_lockargs, argp, xdr_nlm_res, &res, TIMEOUT) != RPC_SUCCESS) { 41503d2aa8SPeter Wemm printf("clnt_call returns %d\n", st); 42503d2aa8SPeter Wemm clnt_perror(clnt, "humbug"); 43503d2aa8SPeter Wemm return (NULL); 44503d2aa8SPeter Wemm } 45503d2aa8SPeter Wemm return (&res); 46503d2aa8SPeter Wemm } 47503d2aa8SPeter Wemm 48503d2aa8SPeter Wemm 49503d2aa8SPeter Wemm nlm_res * 50503d2aa8SPeter Wemm nlm_cancel_1(argp, clnt) 51503d2aa8SPeter Wemm struct nlm_cancargs *argp; 52503d2aa8SPeter Wemm CLIENT *clnt; 53503d2aa8SPeter Wemm { 54503d2aa8SPeter Wemm static nlm_res res; 55503d2aa8SPeter Wemm 56503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 57503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_CANCEL, xdr_nlm_cancargs, argp, xdr_nlm_res, &res, TIMEOUT) != RPC_SUCCESS) { 58503d2aa8SPeter Wemm return (NULL); 59503d2aa8SPeter Wemm } 60503d2aa8SPeter Wemm return (&res); 61503d2aa8SPeter Wemm } 62503d2aa8SPeter Wemm 63503d2aa8SPeter Wemm 64503d2aa8SPeter Wemm nlm_res * 65503d2aa8SPeter Wemm nlm_unlock_1(argp, clnt) 66503d2aa8SPeter Wemm struct nlm_unlockargs *argp; 67503d2aa8SPeter Wemm CLIENT *clnt; 68503d2aa8SPeter Wemm { 69503d2aa8SPeter Wemm static nlm_res res; 70503d2aa8SPeter Wemm 71503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 72503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_UNLOCK, xdr_nlm_unlockargs, argp, xdr_nlm_res, &res, TIMEOUT) != RPC_SUCCESS) { 73503d2aa8SPeter Wemm return (NULL); 74503d2aa8SPeter Wemm } 75503d2aa8SPeter Wemm return (&res); 76503d2aa8SPeter Wemm } 77503d2aa8SPeter Wemm 78503d2aa8SPeter Wemm 79503d2aa8SPeter Wemm nlm_res * 80503d2aa8SPeter Wemm nlm_granted_1(argp, clnt) 81503d2aa8SPeter Wemm struct nlm_testargs *argp; 82503d2aa8SPeter Wemm CLIENT *clnt; 83503d2aa8SPeter Wemm { 84503d2aa8SPeter Wemm static nlm_res res; 85503d2aa8SPeter Wemm 86503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 87503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_GRANTED, xdr_nlm_testargs, argp, xdr_nlm_res, &res, TIMEOUT) != RPC_SUCCESS) { 88503d2aa8SPeter Wemm return (NULL); 89503d2aa8SPeter Wemm } 90503d2aa8SPeter Wemm return (&res); 91503d2aa8SPeter Wemm } 92503d2aa8SPeter Wemm 93503d2aa8SPeter Wemm 94503d2aa8SPeter Wemm void * 95503d2aa8SPeter Wemm nlm_test_msg_1(argp, clnt) 96503d2aa8SPeter Wemm struct nlm_testargs *argp; 97503d2aa8SPeter Wemm CLIENT *clnt; 98503d2aa8SPeter Wemm { 99503d2aa8SPeter Wemm static char res; 100503d2aa8SPeter Wemm 101503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 102503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_TEST_MSG, xdr_nlm_testargs, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) { 103503d2aa8SPeter Wemm return (NULL); 104503d2aa8SPeter Wemm } 105503d2aa8SPeter Wemm return ((void *)&res); 106503d2aa8SPeter Wemm } 107503d2aa8SPeter Wemm 108503d2aa8SPeter Wemm 109503d2aa8SPeter Wemm void * 110503d2aa8SPeter Wemm nlm_lock_msg_1(argp, clnt) 111503d2aa8SPeter Wemm struct nlm_lockargs *argp; 112503d2aa8SPeter Wemm CLIENT *clnt; 113503d2aa8SPeter Wemm { 114503d2aa8SPeter Wemm static char res; 115503d2aa8SPeter Wemm 116503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 117503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_LOCK_MSG, xdr_nlm_lockargs, argp, xdr_void, NULL, TIMEOUT) != RPC_SUCCESS) { 118503d2aa8SPeter Wemm clnt_perror(clnt, "nlm_lock_msg_1"); 119503d2aa8SPeter Wemm return (NULL); 120503d2aa8SPeter Wemm } 121503d2aa8SPeter Wemm return ((void *)&res); 122503d2aa8SPeter Wemm } 123503d2aa8SPeter Wemm 124503d2aa8SPeter Wemm 125503d2aa8SPeter Wemm void * 126503d2aa8SPeter Wemm nlm_cancel_msg_1(argp, clnt) 127503d2aa8SPeter Wemm struct nlm_cancargs *argp; 128503d2aa8SPeter Wemm CLIENT *clnt; 129503d2aa8SPeter Wemm { 130503d2aa8SPeter Wemm static char res; 131503d2aa8SPeter Wemm 132503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 133503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_CANCEL_MSG, xdr_nlm_cancargs, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) { 134503d2aa8SPeter Wemm return (NULL); 135503d2aa8SPeter Wemm } 136503d2aa8SPeter Wemm return ((void *)&res); 137503d2aa8SPeter Wemm } 138503d2aa8SPeter Wemm 139503d2aa8SPeter Wemm 140503d2aa8SPeter Wemm void * 141503d2aa8SPeter Wemm nlm_unlock_msg_1(argp, clnt) 142503d2aa8SPeter Wemm struct nlm_unlockargs *argp; 143503d2aa8SPeter Wemm CLIENT *clnt; 144503d2aa8SPeter Wemm { 145503d2aa8SPeter Wemm static char res; 146503d2aa8SPeter Wemm 147503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 148503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_UNLOCK_MSG, xdr_nlm_unlockargs, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) { 149503d2aa8SPeter Wemm return (NULL); 150503d2aa8SPeter Wemm } 151503d2aa8SPeter Wemm return ((void *)&res); 152503d2aa8SPeter Wemm } 153503d2aa8SPeter Wemm 154503d2aa8SPeter Wemm 155503d2aa8SPeter Wemm void * 156503d2aa8SPeter Wemm nlm_granted_msg_1(argp, clnt) 157503d2aa8SPeter Wemm struct nlm_testargs *argp; 158503d2aa8SPeter Wemm CLIENT *clnt; 159503d2aa8SPeter Wemm { 160503d2aa8SPeter Wemm static char res; 161503d2aa8SPeter Wemm 162503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 163503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_GRANTED_MSG, xdr_nlm_testargs, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) { 164503d2aa8SPeter Wemm return (NULL); 165503d2aa8SPeter Wemm } 166503d2aa8SPeter Wemm return ((void *)&res); 167503d2aa8SPeter Wemm } 168503d2aa8SPeter Wemm 169503d2aa8SPeter Wemm 170503d2aa8SPeter Wemm void * 171503d2aa8SPeter Wemm nlm_test_res_1(argp, clnt) 172503d2aa8SPeter Wemm nlm_testres *argp; 173503d2aa8SPeter Wemm CLIENT *clnt; 174503d2aa8SPeter Wemm { 175503d2aa8SPeter Wemm static char res; 176503d2aa8SPeter Wemm 177503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 178503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_TEST_RES, xdr_nlm_testres, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) { 179503d2aa8SPeter Wemm return (NULL); 180503d2aa8SPeter Wemm } 181503d2aa8SPeter Wemm return ((void *)&res); 182503d2aa8SPeter Wemm } 183503d2aa8SPeter Wemm 184503d2aa8SPeter Wemm 185503d2aa8SPeter Wemm void * 186503d2aa8SPeter Wemm nlm_lock_res_1(argp, clnt) 187503d2aa8SPeter Wemm nlm_res *argp; 188503d2aa8SPeter Wemm CLIENT *clnt; 189503d2aa8SPeter Wemm { 190503d2aa8SPeter Wemm static char res; 191503d2aa8SPeter Wemm 192503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 193503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_LOCK_RES, xdr_nlm_res, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) { 194503d2aa8SPeter Wemm return (NULL); 195503d2aa8SPeter Wemm } 196503d2aa8SPeter Wemm return ((void *)&res); 197503d2aa8SPeter Wemm } 198503d2aa8SPeter Wemm 199503d2aa8SPeter Wemm 200503d2aa8SPeter Wemm void * 201503d2aa8SPeter Wemm nlm_cancel_res_1(argp, clnt) 202503d2aa8SPeter Wemm nlm_res *argp; 203503d2aa8SPeter Wemm CLIENT *clnt; 204503d2aa8SPeter Wemm { 205503d2aa8SPeter Wemm static char res; 206503d2aa8SPeter Wemm 207503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 208503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_CANCEL_RES, xdr_nlm_res, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) { 209503d2aa8SPeter Wemm return (NULL); 210503d2aa8SPeter Wemm } 211503d2aa8SPeter Wemm return ((void *)&res); 212503d2aa8SPeter Wemm } 213503d2aa8SPeter Wemm 214503d2aa8SPeter Wemm 215503d2aa8SPeter Wemm void * 216503d2aa8SPeter Wemm nlm_unlock_res_1(argp, clnt) 217503d2aa8SPeter Wemm nlm_res *argp; 218503d2aa8SPeter Wemm CLIENT *clnt; 219503d2aa8SPeter Wemm { 220503d2aa8SPeter Wemm static char res; 221503d2aa8SPeter Wemm 222503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 223503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_UNLOCK_RES, xdr_nlm_res, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) { 224503d2aa8SPeter Wemm return (NULL); 225503d2aa8SPeter Wemm } 226503d2aa8SPeter Wemm return ((void *)&res); 227503d2aa8SPeter Wemm } 228503d2aa8SPeter Wemm 229503d2aa8SPeter Wemm 230503d2aa8SPeter Wemm void * 231503d2aa8SPeter Wemm nlm_granted_res_1(argp, clnt) 232503d2aa8SPeter Wemm nlm_res *argp; 233503d2aa8SPeter Wemm CLIENT *clnt; 234503d2aa8SPeter Wemm { 235503d2aa8SPeter Wemm static char res; 236503d2aa8SPeter Wemm 237503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 238503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_GRANTED_RES, xdr_nlm_res, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) { 239503d2aa8SPeter Wemm return (NULL); 240503d2aa8SPeter Wemm } 241503d2aa8SPeter Wemm return ((void *)&res); 242503d2aa8SPeter Wemm } 243503d2aa8SPeter Wemm 244503d2aa8SPeter Wemm 245503d2aa8SPeter Wemm nlm_shareres * 246503d2aa8SPeter Wemm nlm_share_3(argp, clnt) 247503d2aa8SPeter Wemm nlm_shareargs *argp; 248503d2aa8SPeter Wemm CLIENT *clnt; 249503d2aa8SPeter Wemm { 250503d2aa8SPeter Wemm static nlm_shareres res; 251503d2aa8SPeter Wemm 252503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 253503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_SHARE, xdr_nlm_shareargs, argp, xdr_nlm_shareres, &res, TIMEOUT) != RPC_SUCCESS) { 254503d2aa8SPeter Wemm return (NULL); 255503d2aa8SPeter Wemm } 256503d2aa8SPeter Wemm return (&res); 257503d2aa8SPeter Wemm } 258503d2aa8SPeter Wemm 259503d2aa8SPeter Wemm 260503d2aa8SPeter Wemm nlm_shareres * 261503d2aa8SPeter Wemm nlm_unshare_3(argp, clnt) 262503d2aa8SPeter Wemm nlm_shareargs *argp; 263503d2aa8SPeter Wemm CLIENT *clnt; 264503d2aa8SPeter Wemm { 265503d2aa8SPeter Wemm static nlm_shareres res; 266503d2aa8SPeter Wemm 267503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 268503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_UNSHARE, xdr_nlm_shareargs, argp, xdr_nlm_shareres, &res, TIMEOUT) != RPC_SUCCESS) { 269503d2aa8SPeter Wemm return (NULL); 270503d2aa8SPeter Wemm } 271503d2aa8SPeter Wemm return (&res); 272503d2aa8SPeter Wemm } 273503d2aa8SPeter Wemm 274503d2aa8SPeter Wemm 275503d2aa8SPeter Wemm nlm_res * 276503d2aa8SPeter Wemm nlm_nm_lock_3(argp, clnt) 277503d2aa8SPeter Wemm nlm_lockargs *argp; 278503d2aa8SPeter Wemm CLIENT *clnt; 279503d2aa8SPeter Wemm { 280503d2aa8SPeter Wemm static nlm_res res; 281503d2aa8SPeter Wemm 282503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 283503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_NM_LOCK, xdr_nlm_lockargs, argp, xdr_nlm_res, &res, TIMEOUT) != RPC_SUCCESS) { 284503d2aa8SPeter Wemm return (NULL); 285503d2aa8SPeter Wemm } 286503d2aa8SPeter Wemm return (&res); 287503d2aa8SPeter Wemm } 288503d2aa8SPeter Wemm 289503d2aa8SPeter Wemm 290503d2aa8SPeter Wemm void * 291503d2aa8SPeter Wemm nlm_free_all_3(argp, clnt) 292503d2aa8SPeter Wemm nlm_notify *argp; 293503d2aa8SPeter Wemm CLIENT *clnt; 294503d2aa8SPeter Wemm { 295503d2aa8SPeter Wemm static char res; 296503d2aa8SPeter Wemm 297503d2aa8SPeter Wemm bzero((char *)&res, sizeof(res)); 298503d2aa8SPeter Wemm if (clnt_call(clnt, NLM_FREE_ALL, xdr_nlm_notify, argp, xdr_void, &res, TIMEOUT) != RPC_SUCCESS) { 299503d2aa8SPeter Wemm return (NULL); 300503d2aa8SPeter Wemm } 301503d2aa8SPeter Wemm return ((void *)&res); 302503d2aa8SPeter Wemm } 303503d2aa8SPeter Wemm 304503d2aa8SPeter Wemm 305503d2aa8SPeter Wemm int main(int argc, char **argv) 306503d2aa8SPeter Wemm { 307503d2aa8SPeter Wemm CLIENT *cli; 308503d2aa8SPeter Wemm nlm_res res_block; 309503d2aa8SPeter Wemm nlm_res *out; 310503d2aa8SPeter Wemm nlm_lockargs arg; 311503d2aa8SPeter Wemm struct timeval tim; 312503d2aa8SPeter Wemm 313503d2aa8SPeter Wemm printf("Creating client for host %s\n", argv[1]); 314503d2aa8SPeter Wemm cli = clnt_create(argv[1], NLM_PROG, NLM_VERS, "udp"); 315503d2aa8SPeter Wemm if (!cli) 316503d2aa8SPeter Wemm { 317503d2aa8SPeter Wemm printf("Failed to create client\n"); 318503d2aa8SPeter Wemm exit(1); 319503d2aa8SPeter Wemm } 320503d2aa8SPeter Wemm 321ce81d24bSPeter Wemm 322503d2aa8SPeter Wemm clnt_control(cli, CLGET_TIMEOUT, &tim); 323503d2aa8SPeter Wemm printf("Default timeout was %d.%d\n", tim.tv_sec, tim.tv_usec); 324503d2aa8SPeter Wemm tim.tv_usec = -1; 325503d2aa8SPeter Wemm tim.tv_sec = -1; 326503d2aa8SPeter Wemm clnt_control(cli, CLSET_TIMEOUT, &tim); 327ce81d24bSPeter Wemm clnt_control(cli, CLGET_TIMEOUT, &tim); 328ce81d24bSPeter Wemm printf("timeout now %d.%d\n", tim.tv_sec, tim.tv_usec); 329ce81d24bSPeter Wemm 330503d2aa8SPeter Wemm 331503d2aa8SPeter Wemm arg.cookie.n_len = 4; 332503d2aa8SPeter Wemm arg.cookie.n_bytes = "hello"; 333503d2aa8SPeter Wemm arg.block = 0; 334503d2aa8SPeter Wemm arg.exclusive = 0; 335503d2aa8SPeter Wemm arg.reclaim = 0; 336503d2aa8SPeter Wemm arg.state = 0x1234; 337503d2aa8SPeter Wemm arg.alock.caller_name = "localhost"; 338503d2aa8SPeter Wemm arg.alock.fh.n_len = 32; 339503d2aa8SPeter Wemm 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"; 340503d2aa8SPeter Wemm arg.alock.oh.n_len = 8; 341503d2aa8SPeter Wemm arg.alock.oh.n_bytes = "\x00\x00\x02\xff\xff\xff\xd3"; 342503d2aa8SPeter Wemm arg.alock.svid = 0x5678; 343503d2aa8SPeter Wemm arg.alock.l_offset = 0; 344503d2aa8SPeter Wemm arg.alock.l_len = 100; 345503d2aa8SPeter Wemm 346503d2aa8SPeter Wemm res_block.stat.stat = nlm_granted; 347503d2aa8SPeter Wemm res_block.cookie.n_bytes = "hello"; 348503d2aa8SPeter Wemm res_block.cookie.n_len = 5; 349503d2aa8SPeter Wemm 350503d2aa8SPeter Wemm #if 0 351503d2aa8SPeter Wemm if (nlm_lock_res_1(&res_block, cli)) printf("Success!\n"); 352503d2aa8SPeter Wemm else printf("Fail\n"); 353503d2aa8SPeter Wemm #else 354503d2aa8SPeter Wemm if (out = nlm_lock_msg_1(&arg, cli)) 355503d2aa8SPeter Wemm { 356503d2aa8SPeter Wemm printf("Success!\n"); 357503d2aa8SPeter Wemm printf("out->stat = %d", out->stat); 358503d2aa8SPeter Wemm } 359503d2aa8SPeter Wemm else 360503d2aa8SPeter Wemm { 361503d2aa8SPeter Wemm printf("Fail\n"); 362503d2aa8SPeter Wemm } 363503d2aa8SPeter Wemm #endif 364503d2aa8SPeter Wemm 365503d2aa8SPeter Wemm return 0; 366503d2aa8SPeter Wemm } 367