summaryrefslogtreecommitdiff
path: root/util-linux/nfsmount.c
diff options
context:
space:
mode:
authorErik Andersen <andersen@codepoet.org>2000-02-08 19:58:47 +0000
committerErik Andersen <andersen@codepoet.org>2000-02-08 19:58:47 +0000
commite49d5ecbbe51718fa925b6890a735e5937cc2aa2 (patch)
treec90bda10731ad9333ce3b404f993354c9fc104b8 /util-linux/nfsmount.c
parentc0bf817bbc5c7867fbe8fb76d5c39f8ee802692f (diff)
downloadbusybox-w32-e49d5ecbbe51718fa925b6890a735e5937cc2aa2.tar.gz
busybox-w32-e49d5ecbbe51718fa925b6890a735e5937cc2aa2.tar.bz2
busybox-w32-e49d5ecbbe51718fa925b6890a735e5937cc2aa2.zip
Some formatting updates (ran the code through indent)
-Erik
Diffstat (limited to 'util-linux/nfsmount.c')
-rw-r--r--util-linux/nfsmount.c933
1 files changed, 457 insertions, 476 deletions
diff --git a/util-linux/nfsmount.c b/util-linux/nfsmount.c
index f2bd2f49c..03ce58447 100644
--- a/util-linux/nfsmount.c
+++ b/util-linux/nfsmount.c
@@ -1,3 +1,4 @@
1/* vi: set sw=4 ts=4: */
1/* 2/*
2 * nfsmount.c -- Linux NFS mount 3 * nfsmount.c -- Linux NFS mount
3 * Copyright (C) 1993 Rick Sladkey <jrs@world.std.com> 4 * Copyright (C) 1993 Rick Sladkey <jrs@world.std.com>
@@ -53,7 +54,7 @@
53 54
54#define _ 55#define _
55#define HAVE_inet_aton 56#define HAVE_inet_aton
56#define MS_REMOUNT 32 /* Alter flags of a mounted FS */ 57#define MS_REMOUNT 32 /* Alter flags of a mounted FS */
57#define sloppy 0 58#define sloppy 0
58#define EX_FAIL 1 59#define EX_FAIL 1
59#define EX_BG 1 60#define EX_BG 1
@@ -65,8 +66,8 @@ static char *nfs_strerror(int stat);
65 66
66#define MAKE_VERSION(p,q,r) (65536*(p) + 256*(q) + (r)) 67#define MAKE_VERSION(p,q,r) (65536*(p) + 256*(q) + (r))
67 68
68static int 69static int linux_version_code(void)
69linux_version_code(void) { 70{
70 struct utsname my_utsname; 71 struct utsname my_utsname;
71 int p, q, r; 72 int p, q, r;
72 73
@@ -74,7 +75,7 @@ linux_version_code(void) {
74 p = atoi(strtok(my_utsname.release, ".")); 75 p = atoi(strtok(my_utsname.release, "."));
75 q = atoi(strtok(NULL, ".")); 76 q = atoi(strtok(NULL, "."));
76 r = atoi(strtok(NULL, ".")); 77 r = atoi(strtok(NULL, "."));
77 return MAKE_VERSION(p,q,r); 78 return MAKE_VERSION(p, q, r);
78 } 79 }
79 return 0; 80 return 0;
80} 81}
@@ -95,22 +96,22 @@ static int nfs_mount_version = NFS_MOUNT_VERSION;
95 * NFS_MOUNT_VERSION: these nfsmount sources at compile time 96 * NFS_MOUNT_VERSION: these nfsmount sources at compile time
96 * nfs_mount_version: version this source and running kernel can handle 97 * nfs_mount_version: version this source and running kernel can handle
97 */ 98 */
98static void 99static void find_kernel_nfs_mount_version(void)
99find_kernel_nfs_mount_version(void) { 100{
100 int kernel_version = linux_version_code(); 101 int kernel_version = linux_version_code();
101 102
102 if (kernel_version) { 103 if (kernel_version) {
103 if (kernel_version < MAKE_VERSION(2,1,32)) 104 if (kernel_version < MAKE_VERSION(2, 1, 32))
104 nfs_mount_version = 1; 105 nfs_mount_version = 1;
105 else 106 else
106 nfs_mount_version = 3; 107 nfs_mount_version = 3;
107 } 108 }
108 if (nfs_mount_version > NFS_MOUNT_VERSION) 109 if (nfs_mount_version > NFS_MOUNT_VERSION)
109 nfs_mount_version = NFS_MOUNT_VERSION; 110 nfs_mount_version = NFS_MOUNT_VERSION;
110} 111}
111 112
112int nfsmount(const char *spec, const char *node, unsigned long *flags, 113int nfsmount(const char *spec, const char *node, unsigned long *flags,
113 char **extra_opts, char **mount_opts, int running_bg) 114 char **extra_opts, char **mount_opts, int running_bg)
114{ 115{
115 static char *prev_bg_host; 116 static char *prev_bg_host;
116 char hostdir[1024]; 117 char hostdir[1024];
@@ -118,7 +119,7 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
118 char *hostname; 119 char *hostname;
119 char *dirname; 120 char *dirname;
120 char *old_opts; 121 char *old_opts;
121 char *mounthost=NULL; 122 char *mounthost = NULL;
122 char new_opts[1024]; 123 char new_opts[1024];
123 fhandle root_fhandle; 124 fhandle root_fhandle;
124 struct timeval total_timeout; 125 struct timeval total_timeout;
@@ -161,7 +162,7 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
161 mclient = NULL; 162 mclient = NULL;
162 if (strlen(spec) >= sizeof(hostdir)) { 163 if (strlen(spec) >= sizeof(hostdir)) {
163 fprintf(stderr, _("mount: " 164 fprintf(stderr, _("mount: "
164 "excessively long host:dir argument\n")); 165 "excessively long host:dir argument\n"));
165 goto fail; 166 goto fail;
166 } 167 }
167 strcpy(hostdir, spec); 168 strcpy(hostdir, spec);
@@ -174,11 +175,11 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
174 if ((s = strchr(hostdir, ','))) { 175 if ((s = strchr(hostdir, ','))) {
175 *s = '\0'; 176 *s = '\0';
176 fprintf(stderr, _("mount: warning: " 177 fprintf(stderr, _("mount: warning: "
177 "multiple hostnames not supported\n")); 178 "multiple hostnames not supported\n"));
178 } 179 }
179 } else { 180 } else {
180 fprintf(stderr, _("mount: " 181 fprintf(stderr, _("mount: "
181 "directory to mount not in host:dir format\n")); 182 "directory to mount not in host:dir format\n"));
182 goto fail; 183 goto fail;
183 } 184 }
184 185
@@ -189,20 +190,18 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
189 { 190 {
190 if ((hp = gethostbyname(hostname)) == NULL) { 191 if ((hp = gethostbyname(hostname)) == NULL) {
191 fprintf(stderr, _("mount: can't get address for %s\n"), 192 fprintf(stderr, _("mount: can't get address for %s\n"),
192 hostname); 193 hostname);
193 goto fail; 194 goto fail;
194 } else { 195 } else {
195 if (hp->h_length > sizeof(struct in_addr)) { 196 if (hp->h_length > sizeof(struct in_addr)) {
196 fprintf(stderr, 197 fprintf(stderr, _("mount: got bad hp->h_length\n"));
197 _("mount: got bad hp->h_length\n"));
198 hp->h_length = sizeof(struct in_addr); 198 hp->h_length = sizeof(struct in_addr);
199 } 199 }
200 memcpy(&server_addr.sin_addr, 200 memcpy(&server_addr.sin_addr, hp->h_addr, hp->h_length);
201 hp->h_addr, hp->h_length);
202 } 201 }
203 } 202 }
204 203
205 memcpy (&mount_server_addr, &server_addr, sizeof (mount_server_addr)); 204 memcpy(&mount_server_addr, &server_addr, sizeof(mount_server_addr));
206 205
207 /* add IP address to mtab options for use when unmounting */ 206 /* add IP address to mtab options for use when unmounting */
208 207
@@ -211,12 +210,10 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
211 if (!old_opts) 210 if (!old_opts)
212 old_opts = ""; 211 old_opts = "";
213 if (strlen(old_opts) + strlen(s) + 10 >= sizeof(new_opts)) { 212 if (strlen(old_opts) + strlen(s) + 10 >= sizeof(new_opts)) {
214 fprintf(stderr, _("mount: " 213 fprintf(stderr, _("mount: " "excessively long option argument\n"));
215 "excessively long option argument\n"));
216 goto fail; 214 goto fail;
217 } 215 }
218 sprintf(new_opts, "%s%saddr=%s", 216 sprintf(new_opts, "%s%saddr=%s", old_opts, *old_opts ? "," : "", s);
219 old_opts, *old_opts ? "," : "", s);
220 *extra_opts = xstrdup(new_opts); 217 *extra_opts = xstrdup(new_opts);
221 218
222 /* Set default options. 219 /* Set default options.
@@ -224,13 +221,13 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
224 * let the kernel decide. 221 * let the kernel decide.
225 * timeo is filled in after we know whether it'll be TCP or UDP. */ 222 * timeo is filled in after we know whether it'll be TCP or UDP. */
226 memset(&data, 0, sizeof(data)); 223 memset(&data, 0, sizeof(data));
227 data.retrans = 3; 224 data.retrans = 3;
228 data.acregmin = 3; 225 data.acregmin = 3;
229 data.acregmax = 60; 226 data.acregmax = 60;
230 data.acdirmin = 30; 227 data.acdirmin = 30;
231 data.acdirmax = 60; 228 data.acdirmax = 60;
232#if NFS_MOUNT_VERSION >= 2 229#if NFS_MOUNT_VERSION >= 2
233 data.namlen = NAME_MAX; 230 data.namlen = NAME_MAX;
234#endif 231#endif
235 232
236 bg = 0; 233 bg = 0;
@@ -240,7 +237,7 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
240 nocto = 0; 237 nocto = 0;
241 nolock = 0; 238 nolock = 0;
242 noac = 0; 239 noac = 0;
243 retry = 10000; /* 10000 minutes ~ 1 week */ 240 retry = 10000; /* 10000 minutes ~ 1 week */
244 tcp = 0; 241 tcp = 0;
245 242
246 mountprog = MOUNTPROG; 243 mountprog = MOUNTPROG;
@@ -254,7 +251,7 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
254 251
255 for (opt = strtok(old_opts, ","); opt; opt = strtok(NULL, ",")) { 252 for (opt = strtok(old_opts, ","); opt; opt = strtok(NULL, ",")) {
256 if ((opteq = strchr(opt, '='))) { 253 if ((opteq = strchr(opt, '='))) {
257 val = atoi(opteq + 1); 254 val = atoi(opteq + 1);
258 *opteq = '\0'; 255 *opteq = '\0';
259 if (!strcmp(opt, "rsize")) 256 if (!strcmp(opt, "rsize"))
260 data.rsize = val; 257 data.rsize = val;
@@ -277,29 +274,27 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
277 data.acregmax = val; 274 data.acregmax = val;
278 data.acdirmin = val; 275 data.acdirmin = val;
279 data.acdirmax = val; 276 data.acdirmax = val;
280 } 277 } else if (!strcmp(opt, "retry"))
281 else if (!strcmp(opt, "retry"))
282 retry = val; 278 retry = val;
283 else if (!strcmp(opt, "port")) 279 else if (!strcmp(opt, "port"))
284 port = val; 280 port = val;
285 else if (!strcmp(opt, "mountport")) 281 else if (!strcmp(opt, "mountport"))
286 mountport = val; 282 mountport = val;
287 else if (!strcmp(opt, "mounthost")) 283 else if (!strcmp(opt, "mounthost"))
288 mounthost=xstrndup(opteq+1, 284 mounthost = xstrndup(opteq + 1,
289 strcspn(opteq+1," \t\n\r,")); 285 strcspn(opteq + 1, " \t\n\r,"));
290 else if (!strcmp(opt, "mountprog")) 286 else if (!strcmp(opt, "mountprog"))
291 mountprog = val; 287 mountprog = val;
292 else if (!strcmp(opt, "mountvers")) 288 else if (!strcmp(opt, "mountvers"))
293 mountvers = val; 289 mountvers = val;
294 else if (!strcmp(opt, "nfsprog")) 290 else if (!strcmp(opt, "nfsprog"))
295 nfsprog = val; 291 nfsprog = val;
296 else if (!strcmp(opt, "nfsvers") || 292 else if (!strcmp(opt, "nfsvers") || !strcmp(opt, "vers"))
297 !strcmp(opt, "vers"))
298 nfsvers = val; 293 nfsvers = val;
299 else if (!strcmp(opt, "proto")) { 294 else if (!strcmp(opt, "proto")) {
300 if (!strncmp(opteq+1, "tcp", 3)) 295 if (!strncmp(opteq + 1, "tcp", 3))
301 tcp = 1; 296 tcp = 1;
302 else if (!strncmp(opteq+1, "udp", 3)) 297 else if (!strncmp(opteq + 1, "udp", 3))
303 tcp = 0; 298 tcp = 0;
304 else 299 else
305 printf(_("Warning: Unrecognized proto= option.\n")); 300 printf(_("Warning: Unrecognized proto= option.\n"));
@@ -309,24 +304,24 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
309 data.namlen = val; 304 data.namlen = val;
310 else 305 else
311#endif 306#endif
312 printf(_("Warning: Option namlen is not supported.\n")); 307 printf(_
308 ("Warning: Option namlen is not supported.\n"));
313 } else if (!strcmp(opt, "addr")) 309 } else if (!strcmp(opt, "addr"))
314 /* ignore */; 310 /* ignore */ ;
315 else { 311 else {
316 printf(_("unknown nfs mount parameter: " 312 printf(_("unknown nfs mount parameter: "
317 "%s=%d\n"), opt, val); 313 "%s=%d\n"), opt, val);
318 goto fail; 314 goto fail;
319 } 315 }
320 } 316 } else {
321 else {
322 val = 1; 317 val = 1;
323 if (!strncmp(opt, "no", 2)) { 318 if (!strncmp(opt, "no", 2)) {
324 val = 0; 319 val = 0;
325 opt += 2; 320 opt += 2;
326 } 321 }
327 if (!strcmp(opt, "bg")) 322 if (!strcmp(opt, "bg"))
328 bg = val; 323 bg = val;
329 else if (!strcmp(opt, "fg")) 324 else if (!strcmp(opt, "fg"))
330 bg = !val; 325 bg = !val;
331 else if (!strcmp(opt, "soft")) 326 else if (!strcmp(opt, "soft"))
332 soft = val; 327 soft = val;
@@ -348,11 +343,12 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
348 if (nfs_mount_version >= 3) 343 if (nfs_mount_version >= 3)
349 nolock = !val; 344 nolock = !val;
350 else 345 else
351 printf(_("Warning: option nolock is not supported.\n")); 346 printf(_
347 ("Warning: option nolock is not supported.\n"));
352 } else { 348 } else {
353 if (!sloppy) { 349 if (!sloppy) {
354 printf(_("unknown nfs mount option: " 350 printf(_("unknown nfs mount option: "
355 "%s%s\n"), val ? "" : "no", opt); 351 "%s%s\n"), val ? "" : "no", opt);
356 goto fail; 352 goto fail;
357 } 353 }
358 } 354 }
@@ -378,22 +374,21 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
378 374
379#ifdef NFS_MOUNT_DEBUG 375#ifdef NFS_MOUNT_DEBUG
380 printf("rsize = %d, wsize = %d, timeo = %d, retrans = %d\n", 376 printf("rsize = %d, wsize = %d, timeo = %d, retrans = %d\n",
381 data.rsize, data.wsize, data.timeo, data.retrans); 377 data.rsize, data.wsize, data.timeo, data.retrans);
382 printf("acreg (min, max) = (%d, %d), acdir (min, max) = (%d, %d)\n", 378 printf("acreg (min, max) = (%d, %d), acdir (min, max) = (%d, %d)\n",
383 data.acregmin, data.acregmax, data.acdirmin, data.acdirmax); 379 data.acregmin, data.acregmax, data.acdirmin, data.acdirmax);
384 printf("port = %d, bg = %d, retry = %d, flags = %.8x\n", 380 printf("port = %d, bg = %d, retry = %d, flags = %.8x\n",
385 port, bg, retry, data.flags); 381 port, bg, retry, data.flags);
386 printf("mountprog = %d, mountvers = %d, nfsprog = %d, nfsvers = %d\n", 382 printf("mountprog = %d, mountvers = %d, nfsprog = %d, nfsvers = %d\n",
387 mountprog, mountvers, nfsprog, nfsvers); 383 mountprog, mountvers, nfsprog, nfsvers);
388 printf("soft = %d, intr = %d, posix = %d, nocto = %d, noac = %d\n", 384 printf("soft = %d, intr = %d, posix = %d, nocto = %d, noac = %d\n",
389 (data.flags & NFS_MOUNT_SOFT) != 0, 385 (data.flags & NFS_MOUNT_SOFT) != 0,
390 (data.flags & NFS_MOUNT_INTR) != 0, 386 (data.flags & NFS_MOUNT_INTR) != 0,
391 (data.flags & NFS_MOUNT_POSIX) != 0, 387 (data.flags & NFS_MOUNT_POSIX) != 0,
392 (data.flags & NFS_MOUNT_NOCTO) != 0, 388 (data.flags & NFS_MOUNT_NOCTO) != 0,
393 (data.flags & NFS_MOUNT_NOAC) != 0); 389 (data.flags & NFS_MOUNT_NOAC) != 0);
394#if NFS_MOUNT_VERSION >= 2 390#if NFS_MOUNT_VERSION >= 2
395 printf("tcp = %d\n", 391 printf("tcp = %d\n", (data.flags & NFS_MOUNT_TCP) != 0);
396 (data.flags & NFS_MOUNT_TCP) != 0);
397#endif 392#endif
398#endif 393#endif
399 394
@@ -409,7 +404,7 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
409 * give up immediately, to avoid the initial timeout. 404 * give up immediately, to avoid the initial timeout.
410 */ 405 */
411 if (bg && !running_bg && 406 if (bg && !running_bg &&
412 prev_bg_host && strcmp(hostname, prev_bg_host) == 0) { 407 prev_bg_host && strcmp(hostname, prev_bg_host) == 0) {
413 if (retry > 0) 408 if (retry > 0)
414 retval = EX_BG; 409 retval = EX_BG;
415 return retval; 410 return retval;
@@ -418,25 +413,24 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
418 /* create mount deamon client */ 413 /* create mount deamon client */
419 /* See if the nfs host = mount host. */ 414 /* See if the nfs host = mount host. */
420 if (mounthost) { 415 if (mounthost) {
421 if (mounthost[0] >= '0' && mounthost[0] <= '9') { 416 if (mounthost[0] >= '0' && mounthost[0] <= '9') {
422 mount_server_addr.sin_family = AF_INET; 417 mount_server_addr.sin_family = AF_INET;
423 mount_server_addr.sin_addr.s_addr = inet_addr(hostname); 418 mount_server_addr.sin_addr.s_addr = inet_addr(hostname);
424 } else { 419 } else {
425 if ((hp = gethostbyname(mounthost)) == NULL) { 420 if ((hp = gethostbyname(mounthost)) == NULL) {
426 fprintf(stderr, _("mount: can't get address for %s\n"), 421 fprintf(stderr, _("mount: can't get address for %s\n"),
427 hostname); 422 hostname);
428 goto fail; 423 goto fail;
429 } else { 424 } else {
430 if (hp->h_length > sizeof(struct in_addr)) { 425 if (hp->h_length > sizeof(struct in_addr)) {
431 fprintf(stderr, 426 fprintf(stderr, _("mount: got bad hp->h_length?\n"));
432 _("mount: got bad hp->h_length?\n")); 427 hp->h_length = sizeof(struct in_addr);
433 hp->h_length = sizeof(struct in_addr); 428 }
434 } 429 mount_server_addr.sin_family = AF_INET;
435 mount_server_addr.sin_family = AF_INET; 430 memcpy(&mount_server_addr.sin_addr,
436 memcpy(&mount_server_addr.sin_addr, 431 hp->h_addr, hp->h_length);
437 hp->h_addr, hp->h_length); 432 }
438 } 433 }
439 }
440 } 434 }
441 435
442 /* 436 /*
@@ -466,7 +460,7 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
466 for (;;) { 460 for (;;) {
467 if (bg && stat(node, &statbuf) == -1) { 461 if (bg && stat(node, &statbuf) == -1) {
468 if (running_bg) { 462 if (running_bg) {
469 sleep(val); /* 1, 2, 4, 8, 16, 30, ... */ 463 sleep(val); /* 1, 2, 4, 8, 16, 30, ... */
470 val *= 2; 464 val *= 2;
471 if (val > 30) 465 if (val > 30)
472 val = 30; 466 val = 30;
@@ -480,24 +474,24 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
480 mount_server_addr.sin_port = htons(mountport); 474 mount_server_addr.sin_port = htons(mountport);
481 msock = RPC_ANYSOCK; 475 msock = RPC_ANYSOCK;
482 mclient = clnttcp_create(&mount_server_addr, 476 mclient = clnttcp_create(&mount_server_addr,
483 mountprog, mountvers, 477 mountprog, mountvers, &msock, 0, 0);
484 &msock, 0, 0);
485 478
486 /* if this fails, contact the mount daemon via UDP */ 479 /* if this fails, contact the mount daemon via UDP */
487 if (!mclient) { 480 if (!mclient) {
488 mount_server_addr.sin_port = htons(mountport); 481 mount_server_addr.sin_port = htons(mountport);
489 msock = RPC_ANYSOCK; 482 msock = RPC_ANYSOCK;
490 mclient = clntudp_create(&mount_server_addr, 483 mclient = clntudp_create(&mount_server_addr,
491 mountprog, mountvers, 484 mountprog, mountvers,
492 retry_timeout, &msock); 485 retry_timeout, &msock);
493 } 486 }
494 if (mclient) { 487 if (mclient) {
495 /* try to mount hostname:dirname */ 488 /* try to mount hostname:dirname */
496 mclient->cl_auth = authunix_create_default(); 489 mclient->cl_auth = authunix_create_default();
497 clnt_stat = clnt_call(mclient, MOUNTPROC_MNT, 490 clnt_stat = clnt_call(mclient, MOUNTPROC_MNT,
498 (xdrproc_t) xdr_dirpath, (caddr_t) &dirname, 491 (xdrproc_t) xdr_dirpath,
499 (xdrproc_t) xdr_fhstatus, (caddr_t) &status, 492 (caddr_t) & dirname,
500 total_timeout); 493 (xdrproc_t) xdr_fhstatus,
494 (caddr_t) & status, total_timeout);
501 if (clnt_stat == RPC_SUCCESS) 495 if (clnt_stat == RPC_SUCCESS)
502 break; /* we're done */ 496 break; /* we're done */
503 if (errno != ECONNREFUSED) { 497 if (errno != ECONNREFUSED) {
@@ -517,7 +511,7 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
517 prevt = t; 511 prevt = t;
518 } 512 }
519 if (!bg) 513 if (!bg)
520 goto fail; 514 goto fail;
521 if (!running_bg) { 515 if (!running_bg) {
522 prev_bg_host = xstrdup(hostname); 516 prev_bg_host = xstrdup(hostname);
523 if (retry > 0) 517 if (retry > 0)
@@ -531,18 +525,18 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
531 525
532 if (status.fhs_status != 0) { 526 if (status.fhs_status != 0) {
533 fprintf(stderr, 527 fprintf(stderr,
534 _("mount: %s:%s failed, reason given by server: %s\n"), 528 _("mount: %s:%s failed, reason given by server: %s\n"),
535 hostname, dirname, nfs_strerror(status.fhs_status)); 529 hostname, dirname, nfs_strerror(status.fhs_status));
536 goto fail; 530 goto fail;
537 } 531 }
538 memcpy((char *) &root_fhandle, (char *) status.fhstatus_u.fhs_fhandle, 532 memcpy((char *) &root_fhandle, (char *) status.fhstatus_u.fhs_fhandle,
539 sizeof (root_fhandle)); 533 sizeof(root_fhandle));
540 534
541 /* create nfs socket for kernel */ 535 /* create nfs socket for kernel */
542 536
543 if (tcp) { 537 if (tcp) {
544 if (nfs_mount_version < 3) { 538 if (nfs_mount_version < 3) {
545 printf(_("NFS over TCP is not supported.\n")); 539 printf(_("NFS over TCP is not supported.\n"));
546 goto fail; 540 goto fail;
547 } 541 }
548 fsock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); 542 fsock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
@@ -559,7 +553,7 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
559 if (port == 0) { 553 if (port == 0) {
560 server_addr.sin_port = PMAPPORT; 554 server_addr.sin_port = PMAPPORT;
561 port = pmap_getport(&server_addr, nfsprog, nfsvers, 555 port = pmap_getport(&server_addr, nfsprog, nfsvers,
562 tcp ? IPPROTO_TCP : IPPROTO_UDP); 556 tcp ? IPPROTO_TCP : IPPROTO_UDP);
563 if (port == 0) 557 if (port == 0)
564 port = NFS_PORT; 558 port = NFS_PORT;
565#ifdef NFS_MOUNT_DEBUG 559#ifdef NFS_MOUNT_DEBUG
@@ -571,14 +565,14 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
571 printf(_("using port %d for nfs deamon\n"), port); 565 printf(_("using port %d for nfs deamon\n"), port);
572#endif 566#endif
573 server_addr.sin_port = htons(port); 567 server_addr.sin_port = htons(port);
574 /* 568 /*
575 * connect() the socket for kernels 1.3.10 and below only, 569 * connect() the socket for kernels 1.3.10 and below only,
576 * to avoid problems with multihomed hosts. 570 * to avoid problems with multihomed hosts.
577 * --Swen 571 * --Swen
578 */ 572 */
579 if (linux_version_code() <= 66314 573 if (linux_version_code() <= 66314
580 && connect(fsock, (struct sockaddr *) &server_addr, 574 && connect(fsock, (struct sockaddr *) &server_addr,
581 sizeof (server_addr)) < 0) { 575 sizeof(server_addr)) < 0) {
582 perror(_("nfs connect")); 576 perror(_("nfs connect"));
583 goto fail; 577 goto fail;
584 } 578 }
@@ -587,7 +581,7 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
587 581
588 data.fd = fsock; 582 data.fd = fsock;
589 memcpy((char *) &data.root, (char *) &root_fhandle, 583 memcpy((char *) &data.root, (char *) &root_fhandle,
590 sizeof (root_fhandle)); 584 sizeof(root_fhandle));
591 memcpy((char *) &data.addr, (char *) &server_addr, sizeof(data.addr)); 585 memcpy((char *) &data.addr, (char *) &server_addr, sizeof(data.addr));
592 strncpy(data.hostname, hostname, sizeof(data.hostname)); 586 strncpy(data.hostname, hostname, sizeof(data.hostname));
593 587
@@ -600,7 +594,7 @@ int nfsmount(const char *spec, const char *node, unsigned long *flags,
600 594
601 /* abort */ 595 /* abort */
602 596
603fail: 597 fail:
604 if (msock != -1) { 598 if (msock != -1) {
605 if (mclient) { 599 if (mclient) {
606 auth_destroy(mclient->cl_auth); 600 auth_destroy(mclient->cl_auth);
@@ -611,7 +605,7 @@ fail:
611 if (fsock != -1) 605 if (fsock != -1)
612 close(fsock); 606 close(fsock);
613 return retval; 607 return retval;
614} 608}
615 609
616/* 610/*
617 * We need to translate between nfs status return values and 611 * We need to translate between nfs status return values and
@@ -630,33 +624,37 @@ static struct {
630 enum nfs_stat stat; 624 enum nfs_stat stat;
631 int errnum; 625 int errnum;
632} nfs_errtbl[] = { 626} nfs_errtbl[] = {
633 { NFS_OK, 0 }, 627 {
634 { NFSERR_PERM, EPERM }, 628 NFS_OK, 0}, {
635 { NFSERR_NOENT, ENOENT }, 629 NFSERR_PERM, EPERM}, {
636 { NFSERR_IO, EIO }, 630 NFSERR_NOENT, ENOENT}, {
637 { NFSERR_NXIO, ENXIO }, 631 NFSERR_IO, EIO}, {
638 { NFSERR_ACCES, EACCES }, 632 NFSERR_NXIO, ENXIO}, {
639 { NFSERR_EXIST, EEXIST }, 633 NFSERR_ACCES, EACCES}, {
640 { NFSERR_NODEV, ENODEV }, 634 NFSERR_EXIST, EEXIST}, {
641 { NFSERR_NOTDIR, ENOTDIR }, 635 NFSERR_NODEV, ENODEV}, {
642 { NFSERR_ISDIR, EISDIR }, 636 NFSERR_NOTDIR, ENOTDIR}, {
637 NFSERR_ISDIR, EISDIR},
643#ifdef NFSERR_INVAL 638#ifdef NFSERR_INVAL
644 { NFSERR_INVAL, EINVAL }, /* that Sun forgot */ 639 {
640 NFSERR_INVAL, EINVAL}, /* that Sun forgot */
645#endif 641#endif
646 { NFSERR_FBIG, EFBIG }, 642 {
647 { NFSERR_NOSPC, ENOSPC }, 643 NFSERR_FBIG, EFBIG}, {
648 { NFSERR_ROFS, EROFS }, 644 NFSERR_NOSPC, ENOSPC}, {
649 { NFSERR_NAMETOOLONG, ENAMETOOLONG }, 645 NFSERR_ROFS, EROFS}, {
650 { NFSERR_NOTEMPTY, ENOTEMPTY }, 646 NFSERR_NAMETOOLONG, ENAMETOOLONG}, {
651 { NFSERR_DQUOT, EDQUOT }, 647 NFSERR_NOTEMPTY, ENOTEMPTY}, {
652 { NFSERR_STALE, ESTALE }, 648 NFSERR_DQUOT, EDQUOT}, {
649 NFSERR_STALE, ESTALE},
653#ifdef EWFLUSH 650#ifdef EWFLUSH
654 { NFSERR_WFLUSH, EWFLUSH }, 651 {
652 NFSERR_WFLUSH, EWFLUSH},
655#endif 653#endif
656 /* Throw in some NFSv3 values for even more fun (HP returns these) */ 654 /* Throw in some NFSv3 values for even more fun (HP returns these) */
657 { 71, EREMOTE }, 655 {
658 656 71, EREMOTE}, {
659 { -1, EIO } 657 -1, EIO}
660}; 658};
661 659
662static char *nfs_strerror(int stat) 660static char *nfs_strerror(int stat)
@@ -673,33 +671,32 @@ static char *nfs_strerror(int stat)
673} 671}
674 672
675#if 0 673#if 0
676int 674int my_getport(struct in_addr server, struct timeval *timeo, ...)
677my_getport(struct in_addr server, struct timeval *timeo, ...)
678{ 675{
679 struct sockaddr_in sin; 676 struct sockaddr_in sin;
680 struct pmap pmap; 677 struct pmap pmap;
681 CLIENT *clnt; 678 CLIENT *clnt;
682 int sock = RPC_ANYSOCK, port; 679 int sock = RPC_ANYSOCK, port;
683 680
684 pmap.pm_prog = prog; 681 pmap.pm_prog = prog;
685 pmap.pm_vers = vers; 682 pmap.pm_vers = vers;
686 pmap.pm_prot = prot; 683 pmap.pm_prot = prot;
687 pmap.pm_port = 0; 684 pmap.pm_port = 0;
688 sin.sin_family = AF_INET; 685 sin.sin_family = AF_INET;
689 sin.sin_addr = server; 686 sin.sin_addr = server;
690 sin.sin_port = htons(111); 687 sin.sin_port = htons(111);
691 clnt = clntudp_create(&sin, 100000, 2, *timeo, &sock); 688 clnt = clntudp_create(&sin, 100000, 2, *timeo, &sock);
692 status = clnt_call(clnt, PMAP_GETPORT, 689 status = clnt_call(clnt, PMAP_GETPORT,
693 &pmap, (xdrproc_t) xdr_pmap, 690 &pmap, (xdrproc_t) xdr_pmap,
694 &port, (xdrproc_t) xdr_uint); 691 &port, (xdrproc_t) xdr_uint);
695 if (status != SUCCESS) { 692 if (status != SUCCESS) {
696 /* natter */ 693 /* natter */
697 port = 0; 694 port = 0;
698 } 695 }
699 696
700 clnt_destroy(clnt); 697 clnt_destroy(clnt);
701 close(sock); 698 close(sock);
702 return port; 699 return port;
703} 700}
704#endif 701#endif
705 702
@@ -756,28 +753,26 @@ my_getport(struct in_addr server, struct timeval *timeo, ...)
756 753
757/* from @(#)mount.x 1.3 91/03/11 TIRPC 1.0 */ 754/* from @(#)mount.x 1.3 91/03/11 TIRPC 1.0 */
758 755
759bool_t 756bool_t xdr_fhandle(XDR * xdrs, fhandle objp)
760xdr_fhandle(XDR *xdrs, fhandle objp)
761{ 757{
762 758
763 if (!xdr_opaque(xdrs, objp, FHSIZE)) { 759 if (!xdr_opaque(xdrs, objp, FHSIZE)) {
764 return (FALSE); 760 return (FALSE);
765 } 761 }
766 return (TRUE); 762 return (TRUE);
767} 763}
768 764
769bool_t 765bool_t xdr_fhstatus(XDR * xdrs, fhstatus * objp)
770xdr_fhstatus(XDR *xdrs, fhstatus *objp)
771{ 766{
772 767
773 if (!xdr_u_int(xdrs, &objp->fhs_status)) { 768 if (!xdr_u_int(xdrs, &objp->fhs_status)) {
774 return (FALSE); 769 return (FALSE);
775 } 770 }
776 switch (objp->fhs_status) { 771 switch (objp->fhs_status) {
777 case 0: 772 case 0:
778 if (!xdr_fhandle(xdrs, objp->fhstatus_u.fhs_fhandle)) { 773 if (!xdr_fhandle(xdrs, objp->fhstatus_u.fhs_fhandle)) {
779 return (FALSE); 774 return (FALSE);
780 } 775 }
781 break; 776 break;
782 default: 777 default:
783 break; 778 break;
@@ -785,245 +780,246 @@ xdr_fhstatus(XDR *xdrs, fhstatus *objp)
785 return (TRUE); 780 return (TRUE);
786} 781}
787 782
788bool_t 783bool_t xdr_dirpath(XDR * xdrs, dirpath * objp)
789xdr_dirpath(XDR *xdrs, dirpath *objp)
790{ 784{
791 785
792 if (!xdr_string(xdrs, objp, MNTPATHLEN)) { 786 if (!xdr_string(xdrs, objp, MNTPATHLEN)) {
793 return (FALSE); 787 return (FALSE);
794 } 788 }
795 return (TRUE); 789 return (TRUE);
796} 790}
797 791
798bool_t 792bool_t xdr_name(XDR * xdrs, name * objp)
799xdr_name(XDR *xdrs, name *objp)
800{ 793{
801 794
802 if (!xdr_string(xdrs, objp, MNTNAMLEN)) { 795 if (!xdr_string(xdrs, objp, MNTNAMLEN)) {
803 return (FALSE); 796 return (FALSE);
804 } 797 }
805 return (TRUE); 798 return (TRUE);
806} 799}
807 800
808bool_t 801bool_t xdr_mountlist(XDR * xdrs, mountlist * objp)
809xdr_mountlist(XDR *xdrs, mountlist *objp)
810{ 802{
811 803
812 if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct mountbody), (xdrproc_t)xdr_mountbody)) { 804 if (!xdr_pointer
813 return (FALSE); 805 (xdrs, (char **) objp, sizeof(struct mountbody),
814 } 806 (xdrproc_t) xdr_mountbody)) {
807 return (FALSE);
808 }
815 return (TRUE); 809 return (TRUE);
816} 810}
817 811
818bool_t 812bool_t xdr_mountbody(XDR * xdrs, mountbody * objp)
819xdr_mountbody(XDR *xdrs, mountbody *objp)
820{ 813{
821 814
822 if (!xdr_name(xdrs, &objp->ml_hostname)) { 815 if (!xdr_name(xdrs, &objp->ml_hostname)) {
823 return (FALSE); 816 return (FALSE);
824 } 817 }
825 if (!xdr_dirpath(xdrs, &objp->ml_directory)) { 818 if (!xdr_dirpath(xdrs, &objp->ml_directory)) {
826 return (FALSE); 819 return (FALSE);
827 } 820 }
828 if (!xdr_mountlist(xdrs, &objp->ml_next)) { 821 if (!xdr_mountlist(xdrs, &objp->ml_next)) {
829 return (FALSE); 822 return (FALSE);
830 } 823 }
831 return (TRUE); 824 return (TRUE);
832} 825}
833 826
834bool_t 827bool_t xdr_groups(XDR * xdrs, groups * objp)
835xdr_groups(XDR *xdrs, groups *objp)
836{ 828{
837 829
838 if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct groupnode), (xdrproc_t)xdr_groupnode)) { 830 if (!xdr_pointer
839 return (FALSE); 831 (xdrs, (char **) objp, sizeof(struct groupnode),
840 } 832 (xdrproc_t) xdr_groupnode)) {
833 return (FALSE);
834 }
841 return (TRUE); 835 return (TRUE);
842} 836}
843 837
844bool_t 838bool_t xdr_groupnode(XDR * xdrs, groupnode * objp)
845xdr_groupnode(XDR *xdrs, groupnode *objp)
846{ 839{
847 840
848 if (!xdr_name(xdrs, &objp->gr_name)) { 841 if (!xdr_name(xdrs, &objp->gr_name)) {
849 return (FALSE); 842 return (FALSE);
850 } 843 }
851 if (!xdr_groups(xdrs, &objp->gr_next)) { 844 if (!xdr_groups(xdrs, &objp->gr_next)) {
852 return (FALSE); 845 return (FALSE);
853 } 846 }
854 return (TRUE); 847 return (TRUE);
855} 848}
856 849
857bool_t 850bool_t xdr_exports(XDR * xdrs, exports * objp)
858xdr_exports(XDR *xdrs, exports *objp)
859{ 851{
860 852
861 if (!xdr_pointer(xdrs, (char **)objp, sizeof(struct exportnode), (xdrproc_t)xdr_exportnode)) { 853 if (!xdr_pointer
862 return (FALSE); 854 (xdrs, (char **) objp, sizeof(struct exportnode),
863 } 855 (xdrproc_t) xdr_exportnode)) {
856 return (FALSE);
857 }
864 return (TRUE); 858 return (TRUE);
865} 859}
866 860
867bool_t 861bool_t xdr_exportnode(XDR * xdrs, exportnode * objp)
868xdr_exportnode(XDR *xdrs, exportnode *objp)
869{ 862{
870 863
871 if (!xdr_dirpath(xdrs, &objp->ex_dir)) { 864 if (!xdr_dirpath(xdrs, &objp->ex_dir)) {
872 return (FALSE); 865 return (FALSE);
873 } 866 }
874 if (!xdr_groups(xdrs, &objp->ex_groups)) { 867 if (!xdr_groups(xdrs, &objp->ex_groups)) {
875 return (FALSE); 868 return (FALSE);
876 } 869 }
877 if (!xdr_exports(xdrs, &objp->ex_next)) { 870 if (!xdr_exports(xdrs, &objp->ex_next)) {
878 return (FALSE); 871 return (FALSE);
879 } 872 }
880 return (TRUE); 873 return (TRUE);
881} 874}
882 875
883bool_t 876bool_t xdr_ppathcnf(XDR * xdrs, ppathcnf * objp)
884xdr_ppathcnf(XDR *xdrs, ppathcnf *objp)
885{ 877{
886 878
887 register long *buf; 879 register long *buf;
888 880
889 int i; 881 int i;
890 882
891 if (xdrs->x_op == XDR_ENCODE) { 883 if (xdrs->x_op == XDR_ENCODE) {
892 buf = (long*)XDR_INLINE(xdrs,6 * BYTES_PER_XDR_UNIT); 884 buf = (long *) XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT);
893 if (buf == NULL) {
894 if (!xdr_int(xdrs, &objp->pc_link_max)) {
895 return (FALSE);
896 }
897 if (!xdr_short(xdrs, &objp->pc_max_canon)) {
898 return (FALSE);
899 }
900 if (!xdr_short(xdrs, &objp->pc_max_input)) {
901 return (FALSE);
902 }
903 if (!xdr_short(xdrs, &objp->pc_name_max)) {
904 return (FALSE);
905 }
906 if (!xdr_short(xdrs, &objp->pc_path_max)) {
907 return (FALSE);
908 }
909 if (!xdr_short(xdrs, &objp->pc_pipe_buf)) {
910 return (FALSE);
911 }
912
913 }
914 else {
915 IXDR_PUT_LONG(buf,objp->pc_link_max);
916 IXDR_PUT_SHORT(buf,objp->pc_max_canon);
917 IXDR_PUT_SHORT(buf,objp->pc_max_input);
918 IXDR_PUT_SHORT(buf,objp->pc_name_max);
919 IXDR_PUT_SHORT(buf,objp->pc_path_max);
920 IXDR_PUT_SHORT(buf,objp->pc_pipe_buf);
921 }
922 if (!xdr_u_char(xdrs, &objp->pc_vdisable)) {
923 return (FALSE);
924 }
925 if (!xdr_char(xdrs, &objp->pc_xxx)) {
926 return (FALSE);
927 }
928 buf = (long*)XDR_INLINE(xdrs, 2 * BYTES_PER_XDR_UNIT);
929 if (buf == NULL) { 885 if (buf == NULL) {
930 if (!xdr_vector(xdrs, (char *)objp->pc_mask, 2, sizeof(short), (xdrproc_t)xdr_short)) { 886 if (!xdr_int(xdrs, &objp->pc_link_max)) {
931 return (FALSE); 887 return (FALSE);
932 } 888 }
933 889 if (!xdr_short(xdrs, &objp->pc_max_canon)) {
934 } 890 return (FALSE);
935 else { 891 }
936 { register short *genp; 892 if (!xdr_short(xdrs, &objp->pc_max_input)) {
937 for ( i = 0,genp=objp->pc_mask; 893 return (FALSE);
938 i < 2; i++){ 894 }
939 IXDR_PUT_SHORT(buf,*genp++); 895 if (!xdr_short(xdrs, &objp->pc_name_max)) {
940 } 896 return (FALSE);
941 }; 897 }
942 } 898 if (!xdr_short(xdrs, &objp->pc_path_max)) {
943 899 return (FALSE);
944 return (TRUE); 900 }
901 if (!xdr_short(xdrs, &objp->pc_pipe_buf)) {
902 return (FALSE);
903 }
904
905 } else {
906 IXDR_PUT_LONG(buf, objp->pc_link_max);
907 IXDR_PUT_SHORT(buf, objp->pc_max_canon);
908 IXDR_PUT_SHORT(buf, objp->pc_max_input);
909 IXDR_PUT_SHORT(buf, objp->pc_name_max);
910 IXDR_PUT_SHORT(buf, objp->pc_path_max);
911 IXDR_PUT_SHORT(buf, objp->pc_pipe_buf);
912 }
913 if (!xdr_u_char(xdrs, &objp->pc_vdisable)) {
914 return (FALSE);
915 }
916 if (!xdr_char(xdrs, &objp->pc_xxx)) {
917 return (FALSE);
918 }
919 buf = (long *) XDR_INLINE(xdrs, 2 * BYTES_PER_XDR_UNIT);
920 if (buf == NULL) {
921 if (!xdr_vector
922 (xdrs, (char *) objp->pc_mask, 2, sizeof(short),
923 (xdrproc_t) xdr_short)) {
924 return (FALSE);
925 }
926
927 } else {
928 {
929 register short *genp;
930
931 for (i = 0, genp = objp->pc_mask; i < 2; i++) {
932 IXDR_PUT_SHORT(buf, *genp++);
933 }
934 };
935 }
936
937 return (TRUE);
945 } else if (xdrs->x_op == XDR_DECODE) { 938 } else if (xdrs->x_op == XDR_DECODE) {
946 buf = (long*)XDR_INLINE(xdrs,6 * BYTES_PER_XDR_UNIT); 939 buf = (long *) XDR_INLINE(xdrs, 6 * BYTES_PER_XDR_UNIT);
947 if (buf == NULL) { 940 if (buf == NULL) {
948 if (!xdr_int(xdrs, &objp->pc_link_max)) { 941 if (!xdr_int(xdrs, &objp->pc_link_max)) {
949 return (FALSE); 942 return (FALSE);
950 } 943 }
951 if (!xdr_short(xdrs, &objp->pc_max_canon)) { 944 if (!xdr_short(xdrs, &objp->pc_max_canon)) {
952 return (FALSE); 945 return (FALSE);
953 } 946 }
954 if (!xdr_short(xdrs, &objp->pc_max_input)) { 947 if (!xdr_short(xdrs, &objp->pc_max_input)) {
955 return (FALSE); 948 return (FALSE);
956 } 949 }
957 if (!xdr_short(xdrs, &objp->pc_name_max)) { 950 if (!xdr_short(xdrs, &objp->pc_name_max)) {
958 return (FALSE); 951 return (FALSE);
959 } 952 }
960 if (!xdr_short(xdrs, &objp->pc_path_max)) { 953 if (!xdr_short(xdrs, &objp->pc_path_max)) {
961 return (FALSE); 954 return (FALSE);
962 } 955 }
963 if (!xdr_short(xdrs, &objp->pc_pipe_buf)) { 956 if (!xdr_short(xdrs, &objp->pc_pipe_buf)) {
964 return (FALSE); 957 return (FALSE);
965 } 958 }
966 959
967 } 960 } else {
968 else { 961 objp->pc_link_max = IXDR_GET_LONG(buf);
969 objp->pc_link_max = IXDR_GET_LONG(buf); 962 objp->pc_max_canon = IXDR_GET_SHORT(buf);
970 objp->pc_max_canon = IXDR_GET_SHORT(buf); 963 objp->pc_max_input = IXDR_GET_SHORT(buf);
971 objp->pc_max_input = IXDR_GET_SHORT(buf); 964 objp->pc_name_max = IXDR_GET_SHORT(buf);
972 objp->pc_name_max = IXDR_GET_SHORT(buf); 965 objp->pc_path_max = IXDR_GET_SHORT(buf);
973 objp->pc_path_max = IXDR_GET_SHORT(buf); 966 objp->pc_pipe_buf = IXDR_GET_SHORT(buf);
974 objp->pc_pipe_buf = IXDR_GET_SHORT(buf); 967 }
975 } 968 if (!xdr_u_char(xdrs, &objp->pc_vdisable)) {
976 if (!xdr_u_char(xdrs, &objp->pc_vdisable)) { 969 return (FALSE);
977 return (FALSE); 970 }
978 } 971 if (!xdr_char(xdrs, &objp->pc_xxx)) {
979 if (!xdr_char(xdrs, &objp->pc_xxx)) { 972 return (FALSE);
980 return (FALSE); 973 }
981 } 974 buf = (long *) XDR_INLINE(xdrs, 2 * BYTES_PER_XDR_UNIT);
982 buf = (long*)XDR_INLINE(xdrs, 2 * BYTES_PER_XDR_UNIT);
983 if (buf == NULL) { 975 if (buf == NULL) {
984 if (!xdr_vector(xdrs, (char *)objp->pc_mask, 2, sizeof(short), (xdrproc_t)xdr_short)) { 976 if (!xdr_vector
985 return (FALSE); 977 (xdrs, (char *) objp->pc_mask, 2, sizeof(short),
986 } 978 (xdrproc_t) xdr_short)) {
987 979 return (FALSE);
988 } 980 }
989 else { 981
990 { register short *genp; 982 } else {
991 for ( i = 0,genp=objp->pc_mask; 983 {
992 i < 2; i++){ 984 register short *genp;
993 *genp++ = IXDR_GET_SHORT(buf); 985
994 } 986 for (i = 0, genp = objp->pc_mask; i < 2; i++) {
995 }; 987 *genp++ = IXDR_GET_SHORT(buf);
996 } 988 }
997 return(TRUE); 989 };
990 }
991 return (TRUE);
998 } 992 }
999 993
1000 if (!xdr_int(xdrs, &objp->pc_link_max)) { 994 if (!xdr_int(xdrs, &objp->pc_link_max)) {
1001 return (FALSE); 995 return (FALSE);
1002 } 996 }
1003 if (!xdr_short(xdrs, &objp->pc_max_canon)) { 997 if (!xdr_short(xdrs, &objp->pc_max_canon)) {
1004 return (FALSE); 998 return (FALSE);
1005 } 999 }
1006 if (!xdr_short(xdrs, &objp->pc_max_input)) { 1000 if (!xdr_short(xdrs, &objp->pc_max_input)) {
1007 return (FALSE); 1001 return (FALSE);
1008 } 1002 }
1009 if (!xdr_short(xdrs, &objp->pc_name_max)) { 1003 if (!xdr_short(xdrs, &objp->pc_name_max)) {
1010 return (FALSE); 1004 return (FALSE);
1011 } 1005 }
1012 if (!xdr_short(xdrs, &objp->pc_path_max)) { 1006 if (!xdr_short(xdrs, &objp->pc_path_max)) {
1013 return (FALSE); 1007 return (FALSE);
1014 } 1008 }
1015 if (!xdr_short(xdrs, &objp->pc_pipe_buf)) { 1009 if (!xdr_short(xdrs, &objp->pc_pipe_buf)) {
1016 return (FALSE); 1010 return (FALSE);
1017 } 1011 }
1018 if (!xdr_u_char(xdrs, &objp->pc_vdisable)) { 1012 if (!xdr_u_char(xdrs, &objp->pc_vdisable)) {
1019 return (FALSE); 1013 return (FALSE);
1020 } 1014 }
1021 if (!xdr_char(xdrs, &objp->pc_xxx)) { 1015 if (!xdr_char(xdrs, &objp->pc_xxx)) {
1022 return (FALSE); 1016 return (FALSE);
1023 } 1017 }
1024 if (!xdr_vector(xdrs, (char *)objp->pc_mask, 2, sizeof(short), (xdrproc_t)xdr_short)) { 1018 if (!xdr_vector
1025 return (FALSE); 1019 (xdrs, (char *) objp->pc_mask, 2, sizeof(short),
1026 } 1020 (xdrproc_t) xdr_short)) {
1021 return (FALSE);
1022 }
1027 return (TRUE); 1023 return (TRUE);
1028} 1024}
1029 1025
@@ -1063,247 +1059,232 @@ xdr_ppathcnf(XDR *xdrs, ppathcnf *objp)
1063 1059
1064/* from @(#)mount.x 1.3 91/03/11 TIRPC 1.0 */ 1060/* from @(#)mount.x 1.3 91/03/11 TIRPC 1.0 */
1065 1061
1066#include <string.h> /* for memset() */ 1062#include <string.h> /* for memset() */
1067 1063
1068/* Default timeout can be changed using clnt_control() */ 1064/* Default timeout can be changed using clnt_control() */
1069static struct timeval TIMEOUT = { 25, 0 }; 1065static struct timeval TIMEOUT = { 25, 0 };
1070 1066
1071void * 1067void *mountproc_null_1(argp, clnt)
1072mountproc_null_1(argp, clnt) 1068void *argp;
1073 void *argp; 1069CLIENT *clnt;
1074 CLIENT *clnt;
1075{ 1070{
1076 static char clnt_res; 1071 static char clnt_res;
1077 1072
1078 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1073 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1079 if (clnt_call(clnt, MOUNTPROC_NULL, (xdrproc_t) xdr_void, argp, (xdrproc_t) xdr_void, &clnt_res, TIMEOUT) != RPC_SUCCESS) { 1074 if (clnt_call
1075 (clnt, MOUNTPROC_NULL, (xdrproc_t) xdr_void, argp,
1076 (xdrproc_t) xdr_void, &clnt_res, TIMEOUT) != RPC_SUCCESS) {
1080 return (NULL); 1077 return (NULL);
1081 } 1078 }
1082 return ((void *)&clnt_res); 1079 return ((void *) &clnt_res);
1083} 1080}
1084 1081
1085fhstatus * 1082fhstatus *mountproc_mnt_1(argp, clnt)
1086mountproc_mnt_1(argp, clnt) 1083dirpath *argp;
1087 dirpath *argp; 1084CLIENT *clnt;
1088 CLIENT *clnt;
1089{ 1085{
1090 static fhstatus clnt_res; 1086 static fhstatus clnt_res;
1091 1087
1092 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1088 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1093 if (clnt_call(clnt, MOUNTPROC_MNT, (xdrproc_t) xdr_dirpath, 1089 if (clnt_call(clnt, MOUNTPROC_MNT, (xdrproc_t) xdr_dirpath,
1094 (caddr_t) argp, (xdrproc_t) xdr_fhstatus, 1090 (caddr_t) argp, (xdrproc_t) xdr_fhstatus,
1095 (caddr_t) &clnt_res, TIMEOUT) != RPC_SUCCESS) { 1091 (caddr_t) & clnt_res, TIMEOUT) != RPC_SUCCESS) {
1096 return (NULL); 1092 return (NULL);
1097 } 1093 }
1098 return (&clnt_res); 1094 return (&clnt_res);
1099} 1095}
1100 1096
1101mountlist * 1097mountlist *mountproc_dump_1(argp, clnt)
1102mountproc_dump_1(argp, clnt) 1098void *argp;
1103 void *argp; 1099CLIENT *clnt;
1104 CLIENT *clnt;
1105{ 1100{
1106 static mountlist clnt_res; 1101 static mountlist clnt_res;
1107 1102
1108 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1103 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1109 if (clnt_call(clnt, MOUNTPROC_DUMP, (xdrproc_t) xdr_void, 1104 if (clnt_call(clnt, MOUNTPROC_DUMP, (xdrproc_t) xdr_void,
1110 (caddr_t) argp, (xdrproc_t) xdr_mountlist, 1105 (caddr_t) argp, (xdrproc_t) xdr_mountlist,
1111 (caddr_t) &clnt_res, TIMEOUT) != RPC_SUCCESS) { 1106 (caddr_t) & clnt_res, TIMEOUT) != RPC_SUCCESS) {
1112 return (NULL); 1107 return (NULL);
1113 } 1108 }
1114 return (&clnt_res); 1109 return (&clnt_res);
1115} 1110}
1116 1111
1117void * 1112void *mountproc_umnt_1(argp, clnt)
1118mountproc_umnt_1(argp, clnt) 1113dirpath *argp;
1119 dirpath *argp; 1114CLIENT *clnt;
1120 CLIENT *clnt;
1121{ 1115{
1122 static char clnt_res; 1116 static char clnt_res;
1123 1117
1124 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1118 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1125 if (clnt_call(clnt, MOUNTPROC_UMNT, (xdrproc_t) xdr_dirpath, 1119 if (clnt_call(clnt, MOUNTPROC_UMNT, (xdrproc_t) xdr_dirpath,
1126 (caddr_t) argp, (xdrproc_t) xdr_void, 1120 (caddr_t) argp, (xdrproc_t) xdr_void,
1127 (caddr_t) &clnt_res, TIMEOUT) != RPC_SUCCESS) { 1121 (caddr_t) & clnt_res, TIMEOUT) != RPC_SUCCESS) {
1128 return (NULL); 1122 return (NULL);
1129 } 1123 }
1130 return ((void *)&clnt_res); 1124 return ((void *) &clnt_res);
1131} 1125}
1132 1126
1133void * 1127void *mountproc_umntall_1(argp, clnt)
1134mountproc_umntall_1(argp, clnt) 1128void *argp;
1135 void *argp; 1129CLIENT *clnt;
1136 CLIENT *clnt;
1137{ 1130{
1138 static char clnt_res; 1131 static char clnt_res;
1139 1132
1140 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1133 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1141 if (clnt_call(clnt, MOUNTPROC_UMNTALL, (xdrproc_t) xdr_void, 1134 if (clnt_call(clnt, MOUNTPROC_UMNTALL, (xdrproc_t) xdr_void,
1142 (caddr_t) argp, (xdrproc_t) xdr_void, 1135 (caddr_t) argp, (xdrproc_t) xdr_void,
1143 (caddr_t) &clnt_res, TIMEOUT) != RPC_SUCCESS) { 1136 (caddr_t) & clnt_res, TIMEOUT) != RPC_SUCCESS) {
1144 return (NULL); 1137 return (NULL);
1145 } 1138 }
1146 return ((void *)&clnt_res); 1139 return ((void *) &clnt_res);
1147} 1140}
1148 1141
1149exports * 1142exports *mountproc_export_1(argp, clnt)
1150mountproc_export_1(argp, clnt) 1143void *argp;
1151 void *argp; 1144CLIENT *clnt;
1152 CLIENT *clnt;
1153{ 1145{
1154 static exports clnt_res; 1146 static exports clnt_res;
1155 1147
1156 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1148 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1157 if (clnt_call(clnt, MOUNTPROC_EXPORT, (xdrproc_t) xdr_void, 1149 if (clnt_call(clnt, MOUNTPROC_EXPORT, (xdrproc_t) xdr_void,
1158 (caddr_t) argp, (xdrproc_t) xdr_exports, 1150 (caddr_t) argp, (xdrproc_t) xdr_exports,
1159 (caddr_t) &clnt_res, TIMEOUT) != RPC_SUCCESS) { 1151 (caddr_t) & clnt_res, TIMEOUT) != RPC_SUCCESS) {
1160 return (NULL); 1152 return (NULL);
1161 } 1153 }
1162 return (&clnt_res); 1154 return (&clnt_res);
1163} 1155}
1164 1156
1165exports * 1157exports *mountproc_exportall_1(argp, clnt)
1166mountproc_exportall_1(argp, clnt) 1158void *argp;
1167 void *argp; 1159CLIENT *clnt;
1168 CLIENT *clnt;
1169{ 1160{
1170 static exports clnt_res; 1161 static exports clnt_res;
1171 1162
1172 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1163 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1173 if (clnt_call(clnt, MOUNTPROC_EXPORTALL, (xdrproc_t) xdr_void, 1164 if (clnt_call(clnt, MOUNTPROC_EXPORTALL, (xdrproc_t) xdr_void,
1174 (caddr_t) argp, (xdrproc_t) xdr_exports, 1165 (caddr_t) argp, (xdrproc_t) xdr_exports,
1175 (caddr_t) &clnt_res, TIMEOUT) != RPC_SUCCESS) { 1166 (caddr_t) & clnt_res, TIMEOUT) != RPC_SUCCESS) {
1176 return (NULL); 1167 return (NULL);
1177 } 1168 }
1178 return (&clnt_res); 1169 return (&clnt_res);
1179} 1170}
1180 1171
1181void * 1172void *mountproc_null_2(argp, clnt)
1182mountproc_null_2(argp, clnt) 1173void *argp;
1183 void *argp; 1174CLIENT *clnt;
1184 CLIENT *clnt;
1185{ 1175{
1186 static char clnt_res; 1176 static char clnt_res;
1187 1177
1188 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1178 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1189 if (clnt_call(clnt, MOUNTPROC_NULL, (xdrproc_t) xdr_void, argp, (xdrproc_t) xdr_void, &clnt_res, TIMEOUT) != RPC_SUCCESS) { 1179 if (clnt_call
1180 (clnt, MOUNTPROC_NULL, (xdrproc_t) xdr_void, argp,
1181 (xdrproc_t) xdr_void, &clnt_res, TIMEOUT) != RPC_SUCCESS) {
1190 return (NULL); 1182 return (NULL);
1191 } 1183 }
1192 return ((void *)&clnt_res); 1184 return ((void *) &clnt_res);
1193} 1185}
1194 1186
1195fhstatus * 1187fhstatus *mountproc_mnt_2(argp, clnt)
1196mountproc_mnt_2(argp, clnt) 1188dirpath *argp;
1197 dirpath *argp; 1189CLIENT *clnt;
1198 CLIENT *clnt;
1199{ 1190{
1200 static fhstatus clnt_res; 1191 static fhstatus clnt_res;
1201 1192
1202 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1193 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1203 if (clnt_call(clnt, MOUNTPROC_MNT, (xdrproc_t) xdr_dirpath, 1194 if (clnt_call(clnt, MOUNTPROC_MNT, (xdrproc_t) xdr_dirpath,
1204 (caddr_t) argp, (xdrproc_t) xdr_fhstatus, 1195 (caddr_t) argp, (xdrproc_t) xdr_fhstatus,
1205 (caddr_t) &clnt_res, TIMEOUT) != RPC_SUCCESS) { 1196 (caddr_t) & clnt_res, TIMEOUT) != RPC_SUCCESS) {
1206 return (NULL); 1197 return (NULL);
1207 } 1198 }
1208 return (&clnt_res); 1199 return (&clnt_res);
1209} 1200}
1210 1201
1211mountlist * 1202mountlist *mountproc_dump_2(argp, clnt)
1212mountproc_dump_2(argp, clnt) 1203void *argp;
1213 void *argp; 1204CLIENT *clnt;
1214 CLIENT *clnt;
1215{ 1205{
1216 static mountlist clnt_res; 1206 static mountlist clnt_res;
1217 1207
1218 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1208 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1219 if (clnt_call(clnt, MOUNTPROC_DUMP, (xdrproc_t) xdr_void, argp, 1209 if (clnt_call(clnt, MOUNTPROC_DUMP, (xdrproc_t) xdr_void, argp,
1220 (xdrproc_t) xdr_mountlist, (caddr_t) &clnt_res, 1210 (xdrproc_t) xdr_mountlist, (caddr_t) & clnt_res,
1221 TIMEOUT) != RPC_SUCCESS) { 1211 TIMEOUT) != RPC_SUCCESS) {
1222 return (NULL); 1212 return (NULL);
1223 } 1213 }
1224 return (&clnt_res); 1214 return (&clnt_res);
1225} 1215}
1226 1216
1227void * 1217void *mountproc_umnt_2(argp, clnt)
1228mountproc_umnt_2(argp, clnt) 1218dirpath *argp;
1229 dirpath *argp; 1219CLIENT *clnt;
1230 CLIENT *clnt;
1231{ 1220{
1232 static char clnt_res; 1221 static char clnt_res;
1233 1222
1234 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1223 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1235 if (clnt_call(clnt, MOUNTPROC_UMNT, (xdrproc_t) xdr_dirpath, 1224 if (clnt_call(clnt, MOUNTPROC_UMNT, (xdrproc_t) xdr_dirpath,
1236 (caddr_t) argp, (xdrproc_t) xdr_void, 1225 (caddr_t) argp, (xdrproc_t) xdr_void,
1237 (caddr_t) &clnt_res, TIMEOUT) != RPC_SUCCESS) { 1226 (caddr_t) & clnt_res, TIMEOUT) != RPC_SUCCESS) {
1238 return (NULL); 1227 return (NULL);
1239 } 1228 }
1240 return ((void *)&clnt_res); 1229 return ((void *) &clnt_res);
1241} 1230}
1242 1231
1243void * 1232void *mountproc_umntall_2(argp, clnt)
1244mountproc_umntall_2(argp, clnt) 1233void *argp;
1245 void *argp; 1234CLIENT *clnt;
1246 CLIENT *clnt;
1247{ 1235{
1248 static char clnt_res; 1236 static char clnt_res;
1249 1237
1250 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1238 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1251 if (clnt_call(clnt, MOUNTPROC_UMNTALL, (xdrproc_t) xdr_void, 1239 if (clnt_call(clnt, MOUNTPROC_UMNTALL, (xdrproc_t) xdr_void,
1252 (caddr_t) argp, (xdrproc_t) xdr_void, 1240 (caddr_t) argp, (xdrproc_t) xdr_void,
1253 (caddr_t) &clnt_res, TIMEOUT) != RPC_SUCCESS) { 1241 (caddr_t) & clnt_res, TIMEOUT) != RPC_SUCCESS) {
1254 return (NULL); 1242 return (NULL);
1255 } 1243 }
1256 return ((void *)&clnt_res); 1244 return ((void *) &clnt_res);
1257} 1245}
1258 1246
1259exports * 1247exports *mountproc_export_2(argp, clnt)
1260mountproc_export_2(argp, clnt) 1248void *argp;
1261 void *argp; 1249CLIENT *clnt;
1262 CLIENT *clnt;
1263{ 1250{
1264 static exports clnt_res; 1251 static exports clnt_res;
1265 1252
1266 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1253 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1267 if (clnt_call(clnt, MOUNTPROC_EXPORT, (xdrproc_t) xdr_void, 1254 if (clnt_call(clnt, MOUNTPROC_EXPORT, (xdrproc_t) xdr_void,
1268 argp, (xdrproc_t) xdr_exports, (caddr_t) &clnt_res, 1255 argp, (xdrproc_t) xdr_exports, (caddr_t) & clnt_res,
1269 TIMEOUT) != RPC_SUCCESS) { 1256 TIMEOUT) != RPC_SUCCESS) {
1270 return (NULL); 1257 return (NULL);
1271 } 1258 }
1272 return (&clnt_res); 1259 return (&clnt_res);
1273} 1260}
1274 1261
1275exports * 1262exports *mountproc_exportall_2(argp, clnt)
1276mountproc_exportall_2(argp, clnt) 1263void *argp;
1277 void *argp; 1264CLIENT *clnt;
1278 CLIENT *clnt;
1279{ 1265{
1280 static exports clnt_res; 1266 static exports clnt_res;
1281 1267
1282 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1268 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1283 if (clnt_call(clnt, MOUNTPROC_EXPORTALL, (xdrproc_t) xdr_void, argp, 1269 if (clnt_call(clnt, MOUNTPROC_EXPORTALL, (xdrproc_t) xdr_void, argp,
1284 (xdrproc_t) xdr_exports, (caddr_t) &clnt_res, 1270 (xdrproc_t) xdr_exports, (caddr_t) & clnt_res,
1285 TIMEOUT) != RPC_SUCCESS) { 1271 TIMEOUT) != RPC_SUCCESS) {
1286 return (NULL); 1272 return (NULL);
1287 } 1273 }
1288 return (&clnt_res); 1274 return (&clnt_res);
1289} 1275}
1290 1276
1291ppathcnf * 1277ppathcnf *mountproc_pathconf_2(argp, clnt)
1292mountproc_pathconf_2(argp, clnt) 1278dirpath *argp;
1293 dirpath *argp; 1279CLIENT *clnt;
1294 CLIENT *clnt;
1295{ 1280{
1296 static ppathcnf clnt_res; 1281 static ppathcnf clnt_res;
1297 1282
1298 memset((char *)&clnt_res, 0, sizeof(clnt_res)); 1283 memset((char *) &clnt_res, 0, sizeof(clnt_res));
1299 if (clnt_call(clnt, MOUNTPROC_PATHCONF, (xdrproc_t) xdr_dirpath, 1284 if (clnt_call(clnt, MOUNTPROC_PATHCONF, (xdrproc_t) xdr_dirpath,
1300 (caddr_t) argp, (xdrproc_t) xdr_ppathcnf, 1285 (caddr_t) argp, (xdrproc_t) xdr_ppathcnf,
1301 (caddr_t) &clnt_res, TIMEOUT) != RPC_SUCCESS) { 1286 (caddr_t) & clnt_res, TIMEOUT) != RPC_SUCCESS) {
1302 return (NULL); 1287 return (NULL);
1303 } 1288 }
1304 return (&clnt_res); 1289 return (&clnt_res);
1305} 1290}
1306
1307
1308
1309