X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=utils%2Fmount%2Fstropts.c;h=ec95b78619a2c7ab342bfcb20d0863252d4bd01f;hb=c7fa61e76f072d97a9bdb4a551aa2ba28e5818cc;hp=6d44bb75791652b81a7b58d1b107a5124fd94747;hpb=1f0a104ff4aa07141d59cfd1d78157e8ddf7e4ed;p=nfs-utils.git diff --git a/utils/mount/stropts.c b/utils/mount/stropts.c index 6d44bb7..ec95b78 100644 --- a/utils/mount/stropts.c +++ b/utils/mount/stropts.c @@ -87,8 +87,6 @@ struct nfsmount_info { int flags, /* MS_ flags */ fake, /* actually do the mount? */ child; /* forked bg child? */ - - sa_family_t family; /* supported address family */ }; /* @@ -198,8 +196,7 @@ static int nfs_append_clientaddr_option(const struct sockaddr *sap, * Resolve the 'mounthost=' hostname and append a new option using * the resulting address. */ -static int nfs_fix_mounthost_option(const sa_family_t family, - struct mount_options *options) +static int nfs_fix_mounthost_option(struct mount_options *options) { struct sockaddr_storage dummy; struct sockaddr *sap = (struct sockaddr *)&dummy; @@ -210,7 +207,7 @@ static int nfs_fix_mounthost_option(const sa_family_t family, if (!mounthost) return 1; - if (!nfs_name_to_address(mounthost, family, sap, &salen)) { + if (!nfs_name_to_address(mounthost, sap, &salen)) { nfs_error(_("%s: unable to determine mount server's address"), progname); return 0; @@ -232,7 +229,7 @@ static const char *nfs_lock_opttbl[] = { static int nfs_verify_lock_option(struct mount_options *options) { - if (po_rightmost(options, nfs_lock_opttbl) == 1) + if (po_rightmost(options, nfs_lock_opttbl) == 0) return 1; if (!start_statd()) { @@ -270,14 +267,14 @@ static int nfs_validate_options(struct nfsmount_info *mi) if (!nfs_parse_devname(mi->spec, &mi->hostname, NULL)) return 0; - if (!nfs_name_to_address(mi->hostname, mi->family, sap, &salen)) + if (!nfs_name_to_address(mi->hostname, sap, &salen)) return 0; if (strncmp(mi->type, "nfs4", 4) == 0) { if (!nfs_append_clientaddr_option(sap, salen, mi->options)) return 0; } else { - if (!nfs_fix_mounthost_option(mi->family, mi->options)) + if (!nfs_fix_mounthost_option(mi->options)) return 0; if (!mi->fake && !nfs_verify_lock_option(mi->options)) return 0; @@ -331,9 +328,10 @@ static int nfs_extract_server_addresses(struct mount_options *options, return 0; option = po_get(options, "mountaddr"); - if (option == NULL) + if (option == NULL) { memcpy(mnt_saddr, nfs_saddr, *nfs_salen); - else if (!nfs_string_to_sockaddr(option, strlen(option), + *mnt_salen = *nfs_salen; + } else if (!nfs_string_to_sockaddr(option, strlen(option), mnt_saddr, mnt_salen)) return 0; @@ -756,7 +754,7 @@ static int nfsmount_start(struct nfsmount_info *mi) if (!nfs_validate_options(mi)) return EX_FAIL; - if (po_rightmost(mi->options, nfs_background_opttbl) == 1) + if (po_rightmost(mi->options, nfs_background_opttbl) == 0) return nfsmount_bg(mi); else return nfsmount_fg(mi); @@ -784,11 +782,6 @@ int nfsmount_string(const char *spec, const char *node, const char *type, .flags = flags, .fake = fake, .child = child, -#ifdef IPV6_SUPPORTED - .family = AF_UNSPEC, /* either IPv4 or v6 */ -#else - .family = AF_INET, /* only IPv4 */ -#endif }; int retval = EX_FAIL;