]> git.decadent.org.uk Git - nfs-utils.git/commitdiff
There are a number of different mount options that can be
authorSteve Dickson <steved@redhat.com>
Fri, 9 Oct 2009 13:19:39 +0000 (09:19 -0400)
committerSteve Dickson <steved@redhat.com>
Fri, 9 Oct 2009 13:19:39 +0000 (09:19 -0400)
used to set the protocol version on the command line. The
config file code needs to know about each option so the
command line value will override the config file value.

Signed-off-by: Steve Dickson <steved@redhat.com>
utils/mount/configfile.c

index e347b0ebcaf3fed77f86b873c25a3e77b6bd5ec7..b0aa6f05265bde7ba08bd1ae0d437d5d517aa2b1 100644 (file)
@@ -185,6 +185,20 @@ void free_all(void)
                free(entry);
        }
 }
+static char *versions[] = {"v2", "v3", "v4", "vers", "nfsvers", NULL};
+int inline check_vers(char *mopt, char *field)
+{
+       int i;
+
+       if (strncmp("mountvers", field, strlen("mountvers") != 0 &&
+                       (strcasecmp(field, "nfsvers") == 0 || 
+                               strcasecmp(field, "vers") == 0))) {
+               for (i=0; versions[i]; i++) 
+                       if (strcasestr(mopt, versions[i]) != NULL)
+                               return 1;
+       }
+       return 0;
+}
 /*
  * Parse the given section of the configuration 
  * file to if there are any mount options set.
@@ -207,6 +221,12 @@ conf_parse_mntopts(char *section, char *arg, char *opts)
                snprintf(buf, BUFSIZ, "%s=", node->field);
                if (opts && strcasestr(opts, buf) != NULL)
                        continue;
+               /* 
+                * Protocol verions can be set in a number of ways
+                */
+               if (opts && check_vers(opts, node->field))
+                       continue;
+
                if (lookup_entry(node->field) != NULL)
                        continue;
                buf[0] = '\0';