#define NFSMOUNT_GLOBAL_OPTS "NFSMount_Global_Options"
#endif
-#ifndef NFSMOUNT_MOUNTPOINT "MountPoint"
+#ifndef NFSMOUNT_MOUNTPOINT
#define NFSMOUNT_MOUNTPOINT "MountPoint"
#endif
-#ifndef NFSMOUNT_SERVER "Server"
+#ifndef NFSMOUNT_SERVER
#define NFSMOUNT_SERVER "Server"
#endif
*argtype = mnt_alias_tab[i].argtype;
return mnt_alias_tab[i].opt;
}
+ /* Make option names case-insensitive */
+ upper2lower(opt);
+
return opt;
}
/*
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) {
+ 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.
* Do not overwrite options if already exists
*/
snprintf(buf, BUFSIZ, "%s=", node->field);
- if (opts && strstr(opts, buf) != NULL)
+ 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';