- drop "DEFAULT_" prefix from configuration names.
- add option to select replicated server at random (instead of ping response time) (bz 227604). - fix incorrect cast in directory cleanup routines (bz 231864).
This commit is contained in:
parent
f1ee4e6350
commit
a2755999a3
13
autofs-5.0.1-bad-cast.patch
Normal file
13
autofs-5.0.1-bad-cast.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/daemon/automount.c b/daemon/automount.c
|
||||
index 938ee1b..37e040b 100644
|
||||
--- a/daemon/automount.c
|
||||
+++ b/daemon/automount.c
|
||||
@@ -276,7 +276,7 @@ static int walk_tree(const char *base, int (*fn) (const char *file,
|
||||
|
||||
static int rm_unwanted_fn(const char *file, const struct stat *st, int when, void *arg)
|
||||
{
|
||||
- dev_t dev = *(int *) arg;
|
||||
+ dev_t dev = *(dev_t *) arg;
|
||||
char buf[MAX_ERR_BUF];
|
||||
struct stat newst;
|
||||
|
467
autofs-5.0.1-drop-default-prefix-from-config.patch
Normal file
467
autofs-5.0.1-drop-default-prefix-from-config.patch
Normal file
@ -0,0 +1,467 @@
|
||||
diff --git a/README.v5.release b/README.v5.release
|
||||
index 3f23b91..3b4e02b 100644
|
||||
--- a/README.v5.release
|
||||
+++ b/README.v5.release
|
||||
@@ -13,8 +13,7 @@ Differences between version 4 and version 5.
|
||||
installed "/etc/auto.master" to ensure that those using NIS will
|
||||
still find their master map. This is in line with other industry
|
||||
automount implementations. The name of the default master map can
|
||||
- be overridden by setting the DEFAULT_MASTER_MAP_NAME configuration
|
||||
- variable.
|
||||
+ be overridden by setting the MASTER_MAP_NAME configuration variable.
|
||||
|
||||
- The `automount' daemon is now a multi-threaded application and so
|
||||
appears as a single process (unless a thread process display option
|
||||
diff --git a/gentoo/net-fs/autofs/files/autofs.conf b/gentoo/net-fs/autofs/files/autofs.conf
|
||||
index 836a4a1..7b34c20 100644
|
||||
--- a/gentoo/net-fs/autofs/files/autofs.conf
|
||||
+++ b/gentoo/net-fs/autofs/files/autofs.conf
|
||||
@@ -1,50 +1,50 @@
|
||||
#
|
||||
# Define default options for autofs.
|
||||
#
|
||||
-# DEFAULT_MASTER_MAP_NAME - default map name for the master map.
|
||||
+# MASTER_MAP_NAME - default map name for the master map.
|
||||
#
|
||||
-#DEFAULT_MASTER_MAP_NAME="/etc/auto.master"
|
||||
+#MASTER_MAP_NAME="/etc/auto.master"
|
||||
#
|
||||
-# DEFAULT_TIMEOUT - set the default mount timeout (default 600).
|
||||
+# TIMEOUT - set the default mount timeout (default 600).
|
||||
#
|
||||
-DEFAULT_TIMEOUT=300
|
||||
+TIMEOUT=300
|
||||
#
|
||||
-# DEFAULT_BROWSE_MODE - maps are browsable by default.
|
||||
+# BROWSE_MODE - maps are browsable by default.
|
||||
#
|
||||
-DEFAULT_BROWSE_MODE="no"
|
||||
+BROWSE_MODE="no"
|
||||
#
|
||||
-# DEFAULT_LOGGING - set default log level "none", "verbode" or "debug"
|
||||
+# LOGGING - set default log level "none", "verbode" or "debug"
|
||||
#
|
||||
-#DEFAULT_LOGGING="none"
|
||||
+#LOGGING="none"
|
||||
#
|
||||
# Define the default LDAP schema to use for lookups
|
||||
#
|
||||
# System default
|
||||
#
|
||||
-#DEFAULT_MAP_OBJECT_CLASS="nisMap"
|
||||
-#DEFAULT_ENTRY_OBJECT_CLASS="nisObject"
|
||||
-#DEFAULT_MAP_ATTRIBUTE="nisMapName"
|
||||
-#DEFAULT_ENTRY_ATTRIBUTE="cn"
|
||||
-#DEFAULT_VALUE_ATTRIBUTE="nisMapEntry"
|
||||
+#MAP_OBJECT_CLASS="nisMap"
|
||||
+#ENTRY_OBJECT_CLASS="nisObject"
|
||||
+#MAP_ATTRIBUTE="nisMapName"
|
||||
+#ENTRY_ATTRIBUTE="cn"
|
||||
+#VALUE_ATTRIBUTE="nisMapEntry"
|
||||
#
|
||||
# Other common LDAP nameing
|
||||
#
|
||||
-#DEFAULT_MAP_OBJECT_CLASS="automountMap"
|
||||
-#DEFAULT_ENTRY_OBJECT_CLASS="automount"
|
||||
-#DEFAULT_MAP_ATTRIBUTE="ou"
|
||||
-#DEFAULT_ENTRY_ATTRIBUTE="cn"
|
||||
-#DEFAULT_VALUE_ATTRIBUTE="automountInformation"
|
||||
+#MAP_OBJECT_CLASS="automountMap"
|
||||
+#ENTRY_OBJECT_CLASS="automount"
|
||||
+#MAP_ATTRIBUTE="ou"
|
||||
+#ENTRY_ATTRIBUTE="cn"
|
||||
+#VALUE_ATTRIBUTE="automountInformation"
|
||||
#
|
||||
-#DEFAULT_MAP_OBJECT_CLASS="automountMap"
|
||||
-#DEFAULT_ENTRY_OBJECT_CLASS="automount"
|
||||
-#DEFAULT_MAP_ATTRIBUTE="automountMapName"
|
||||
-#DEFAULT_ENTRY_ATTRIBUTE="automountKey"
|
||||
-#DEFAULT_VALUE_ATTRIBUTE="automountInformation"
|
||||
+#MAP_OBJECT_CLASS="automountMap"
|
||||
+#ENTRY_OBJECT_CLASS="automount"
|
||||
+#MAP_ATTRIBUTE="automountMapName"
|
||||
+#ENTRY_ATTRIBUTE="automountKey"
|
||||
+#VALUE_ATTRIBUTE="automountInformation"
|
||||
#
|
||||
-# DEFAULT_AUTH_CONF_FILE - set the default location for the SASL
|
||||
-# authentication configuration file.
|
||||
+# AUTH_CONF_FILE - set the default location for the SASL
|
||||
+# authentication configuration file.
|
||||
#
|
||||
-#DEFAULT_AUTH_CONF_FILE="/etc/autofs/autofs-auth.conf"
|
||||
+#AUTH_CONF_FILE="/etc/autofs/autofs-auth.conf"
|
||||
#
|
||||
# General global options
|
||||
#
|
||||
diff --git a/lib/defaults.c b/lib/defaults.c
|
||||
index 65dbd8d..f76478e 100644
|
||||
--- a/lib/defaults.c
|
||||
+++ b/lib/defaults.c
|
||||
@@ -23,21 +23,21 @@
|
||||
#define DEFAULTS_CONFIG_FILE AUTOFS_CONF_DIR "/autofs"
|
||||
#define MAX_LINE_LEN 256
|
||||
|
||||
-#define ENV_NAME_MASTER_MAP "DEFAULT_MASTER_MAP_NAME"
|
||||
+#define ENV_NAME_MASTER_MAP "MASTER_MAP_NAME"
|
||||
|
||||
-#define ENV_NAME_TIMEOUT "DEFAULT_TIMEOUT"
|
||||
-#define ENV_NAME_BROWSE_MODE "DEFAULT_BROWSE_MODE"
|
||||
-#define ENV_NAME_LOGGING "DEFAULT_LOGGING"
|
||||
+#define ENV_NAME_TIMEOUT "TIMEOUT"
|
||||
+#define ENV_NAME_BROWSE_MODE "BROWSE_MODE"
|
||||
+#define ENV_NAME_LOGGING "LOGGING"
|
||||
|
||||
-#define ENV_LDAP_SERVER "DEFAULT_LDAP_SERVER"
|
||||
+#define ENV_LDAP_SERVER "LDAP_SERVER"
|
||||
|
||||
-#define ENV_NAME_MAP_OBJ_CLASS "DEFAULT_MAP_OBJECT_CLASS"
|
||||
-#define ENV_NAME_ENTRY_OBJ_CLASS "DEFAULT_ENTRY_OBJECT_CLASS"
|
||||
-#define ENV_NAME_MAP_ATTR "DEFAULT_MAP_ATTRIBUTE"
|
||||
-#define ENV_NAME_ENTRY_ATTR "DEFAULT_ENTRY_ATTRIBUTE"
|
||||
-#define ENV_NAME_VALUE_ATTR "DEFAULT_VALUE_ATTRIBUTE"
|
||||
+#define ENV_NAME_MAP_OBJ_CLASS "MAP_OBJECT_CLASS"
|
||||
+#define ENV_NAME_ENTRY_OBJ_CLASS "ENTRY_OBJECT_CLASS"
|
||||
+#define ENV_NAME_MAP_ATTR "MAP_ATTRIBUTE"
|
||||
+#define ENV_NAME_ENTRY_ATTR "ENTRY_ATTRIBUTE"
|
||||
+#define ENV_NAME_VALUE_ATTR "VALUE_ATTRIBUTE"
|
||||
|
||||
-#define ENV_AUTH_CONF_FILE "DEFAULT_AUTH_CONF_FILE"
|
||||
+#define ENV_AUTH_CONF_FILE "AUTH_CONF_FILE"
|
||||
|
||||
static const char *default_master_map_name = DEFAULT_MASTER_MAP_NAME;
|
||||
|
||||
@@ -104,6 +104,39 @@ static int get_env_yesno(const char *name)
|
||||
}
|
||||
|
||||
/*
|
||||
+ * We've changed the key names so we need to check for the
|
||||
+ * config key and it's old name for backward conpatibility.
|
||||
+*/
|
||||
+static int check_set_config_value(const char *res, const char *name, const char *value)
|
||||
+{
|
||||
+ char *old_name;
|
||||
+ int ret;
|
||||
+
|
||||
+ if (!strcasecmp(res, name)) {
|
||||
+ ret = setenv(name, value, 0);
|
||||
+ if (ret)
|
||||
+ fprintf(stderr,
|
||||
+ "can't set config value for %s, "
|
||||
+ "error %d", name, ret);
|
||||
+ return 1;
|
||||
+ }
|
||||
+
|
||||
+ old_name = alloca(strlen(name) + 9);
|
||||
+ strcpy(old_name, "DEFAULT_");
|
||||
+ strcat(old_name, name);
|
||||
+
|
||||
+ if (!strcasecmp(res, old_name)) {
|
||||
+ ret = setenv(name, value, 0);
|
||||
+ if (ret)
|
||||
+ fprintf(stderr,
|
||||
+ "can't set config value for %s, "
|
||||
+ "error %d", name, ret);
|
||||
+ return 1;
|
||||
+ }
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
* Read config env variables and check they have been set.
|
||||
*
|
||||
* This simple minded routine assumes the config file
|
||||
@@ -115,7 +148,6 @@ unsigned int defaults_read_config(void)
|
||||
FILE *f;
|
||||
char buf[MAX_LINE_LEN];
|
||||
char *res, *value;
|
||||
- unsigned int ret;
|
||||
|
||||
f = fopen(DEFAULTS_CONFIG_FILE, "r");
|
||||
if (!f)
|
||||
@@ -158,23 +190,18 @@ unsigned int defaults_read_config(void)
|
||||
while (*trailer && (*trailer == '"' || isblank(*trailer)))
|
||||
*(trailer--) = '\0';;
|
||||
|
||||
- if (!strcasecmp(res, ENV_NAME_MASTER_MAP) ||
|
||||
- !strcasecmp(res, ENV_NAME_TIMEOUT) ||
|
||||
- !strcasecmp(res, ENV_NAME_BROWSE_MODE) ||
|
||||
- !strcasecmp(res, ENV_NAME_LOGGING) ||
|
||||
- !strcasecmp(res, ENV_LDAP_SERVER) ||
|
||||
- !strcasecmp(res, ENV_NAME_MAP_OBJ_CLASS) ||
|
||||
- !strcasecmp(res, ENV_NAME_ENTRY_OBJ_CLASS) ||
|
||||
- !strcasecmp(res, ENV_NAME_MAP_ATTR) ||
|
||||
- !strcasecmp(res, ENV_NAME_ENTRY_ATTR) ||
|
||||
- !strcasecmp(res, ENV_NAME_VALUE_ATTR) ||
|
||||
- !strcasecmp(res, ENV_AUTH_CONF_FILE)) {
|
||||
- ret = setenv(res, value, 0);
|
||||
- if (ret)
|
||||
- fprintf(stderr,
|
||||
- "can't set config value for %s, "
|
||||
- "error %d", res, ret);
|
||||
- }
|
||||
+ if (check_set_config_value(res, ENV_NAME_MASTER_MAP, value) ||
|
||||
+ check_set_config_value(res, ENV_NAME_TIMEOUT, value) ||
|
||||
+ check_set_config_value(res, ENV_NAME_BROWSE_MODE, value) ||
|
||||
+ check_set_config_value(res, ENV_NAME_LOGGING, value) ||
|
||||
+ check_set_config_value(res, ENV_LDAP_SERVER, value) ||
|
||||
+ check_set_config_value(res, ENV_NAME_MAP_OBJ_CLASS, value) ||
|
||||
+ check_set_config_value(res, ENV_NAME_ENTRY_OBJ_CLASS, value) ||
|
||||
+ check_set_config_value(res, ENV_NAME_MAP_ATTR, value) ||
|
||||
+ check_set_config_value(res, ENV_NAME_ENTRY_ATTR, value) ||
|
||||
+ check_set_config_value(res, ENV_NAME_VALUE_ATTR, value) ||
|
||||
+ check_set_config_value(res, ENV_AUTH_CONF_FILE, value))
|
||||
+ ;
|
||||
}
|
||||
|
||||
if (!feof(f)) {
|
||||
diff --git a/man/auto.master.5.in b/man/auto.master.5.in
|
||||
index cb3c1d6..cfeefe7 100644
|
||||
--- a/man/auto.master.5.in
|
||||
+++ b/man/auto.master.5.in
|
||||
@@ -25,7 +25,7 @@ The default location of the master map is
|
||||
but an alternate name may be given on the command line when running
|
||||
the automounter and the default master map may changed by setting the
|
||||
.nh
|
||||
-.B "DEFAULT_MASTER_MAP_NAME"
|
||||
+.B "MASTER_MAP_NAME"
|
||||
.hy
|
||||
configuration variable in
|
||||
.nh
|
||||
@@ -144,13 +144,13 @@ configuration file
|
||||
.hy
|
||||
They are:
|
||||
.TP
|
||||
-.B DEFAULT_TIMEOUT
|
||||
+.B TIMEOUT
|
||||
sets the default mount timeout (program default 600).
|
||||
.TP
|
||||
-.B DEFAULT_BROWSE_MODE
|
||||
+.B BROWSE_MODE
|
||||
Maps are browsable by default (program default "yes").
|
||||
.TP
|
||||
-.B DEFAULT_LOGGING
|
||||
+.B LOGGING
|
||||
set default log level "none", "verbose" or "debug" (program default "none").
|
||||
=======
|
||||
.SH GENERAL SYSTEM DEFAULTS CONFIGURATION
|
||||
@@ -163,13 +163,13 @@ configuration file
|
||||
.P
|
||||
They are:
|
||||
.TP
|
||||
-.B DEFAULT_TIMEOUT
|
||||
+.B TIMEOUT
|
||||
sets the default mount timeout (program default 600).
|
||||
.TP
|
||||
-.B DEFAULT_BROWSE_MODE
|
||||
+.B BROWSE_MODE
|
||||
Maps are browsable by default (program default "yes").
|
||||
.TP
|
||||
-.B DEFAULT_LOGGING
|
||||
+.B LOGGING
|
||||
set default log level "none", "verbose" or "debug" (program default "none").
|
||||
.SH BUILTIN MAP -hosts
|
||||
If "-hosts" is given as the map then accessing a key under the mount point
|
||||
@@ -215,7 +215,7 @@ located in
|
||||
.P
|
||||
The configuration settings available are:
|
||||
.TP
|
||||
-\fBDEFAULT_MAP_OBJECT_CLASS\fP
|
||||
+\fBMAP_OBJECT_CLASS\fP
|
||||
The map object class. Its Default value is "nisMap". In the
|
||||
.nh
|
||||
automountMap
|
||||
@@ -225,14 +225,14 @@ schema this corresponds to the class
|
||||
.BR automountMap .
|
||||
.hy
|
||||
.TP
|
||||
-.B DEFAULT_ENTRY_OBJECT_CLASS
|
||||
+.B ENTRY_OBJECT_CLASS
|
||||
The map entry object class. Its default value is \fBnisObject\fP.
|
||||
In the automountMap schema this corresponds to the class
|
||||
.nh
|
||||
.BR automount .
|
||||
.hy
|
||||
.TP
|
||||
-.B DEFAULT_MAP_ATTRIBUTE
|
||||
+.B MAP_ATTRIBUTE
|
||||
The attribute used to identify the name of the map to which this
|
||||
entry belongs. Its default value is
|
||||
.nh
|
||||
@@ -247,7 +247,7 @@ schema this corresponds to the attributes \fBou\fP or
|
||||
.BR automountMapName .
|
||||
.hy
|
||||
.TP
|
||||
-.B DEFAULT_ENTRY_ATTRIBUTE
|
||||
+.B ENTRY_ATTRIBUTE
|
||||
The attribute used to identify a map key. Its default value is
|
||||
In the
|
||||
.nh
|
||||
@@ -258,7 +258,7 @@ schema this corresponds to the attribute
|
||||
.BR automountKey .
|
||||
.hy
|
||||
.TP
|
||||
-.B DEFAULT_VALUE_ATTRIBUTE
|
||||
+.B VALUE_ATTRIBUTE
|
||||
The attribute used to identify the value of the map entry. Its default
|
||||
value is
|
||||
.nh
|
||||
diff --git a/redhat/autofs.sysconfig.in b/redhat/autofs.sysconfig.in
|
||||
index 7cbc03f..84d524b 100644
|
||||
--- a/redhat/autofs.sysconfig.in
|
||||
+++ b/redhat/autofs.sysconfig.in
|
||||
@@ -1,50 +1,50 @@
|
||||
#
|
||||
# Define default options for autofs.
|
||||
#
|
||||
-# DEFAULT_MASTER_MAP_NAME - default map name for the master map.
|
||||
+# MASTER_MAP_NAME - default map name for the master map.
|
||||
#
|
||||
-#DEFAULT_MASTER_MAP_NAME="auto.master"
|
||||
+#MASTER_MAP_NAME="auto.master"
|
||||
#
|
||||
-# DEFAULT_TIMEOUT - set the default mount timeout (default 600).
|
||||
+# TIMEOUT - set the default mount timeout (default 600).
|
||||
#
|
||||
-DEFAULT_TIMEOUT=300
|
||||
+TIMEOUT=300
|
||||
#
|
||||
-# DEFAULT_BROWSE_MODE - maps are browsable by default.
|
||||
+# BROWSE_MODE - maps are browsable by default.
|
||||
#
|
||||
-DEFAULT_BROWSE_MODE="no"
|
||||
+BROWSE_MODE="no"
|
||||
#
|
||||
-# DEFAULT_LOGGING - set default log level "none", "verbose" or "debug"
|
||||
+# LOGGING - set default log level "none", "verbose" or "debug"
|
||||
#
|
||||
-#DEFAULT_LOGGING="none"
|
||||
+#LOGGING="none"
|
||||
#
|
||||
# Define the default LDAP schema to use for lookups
|
||||
#
|
||||
# System default
|
||||
#
|
||||
-#DEFAULT_MAP_OBJECT_CLASS="nisMap"
|
||||
-#DEFAULT_ENTRY_OBJECT_CLASS="nisObject"
|
||||
-#DEFAULT_MAP_ATTRIBUTE="nisMapName"
|
||||
-#DEFAULT_ENTRY_ATTRIBUTE="cn"
|
||||
-#DEFAULT_VALUE_ATTRIBUTE="nisMapEntry"
|
||||
+#MAP_OBJECT_CLASS="nisMap"
|
||||
+#ENTRY_OBJECT_CLASS="nisObject"
|
||||
+#MAP_ATTRIBUTE="nisMapName"
|
||||
+#ENTRY_ATTRIBUTE="cn"
|
||||
+#VALUE_ATTRIBUTE="nisMapEntry"
|
||||
#
|
||||
# Other common LDAP nameing
|
||||
#
|
||||
-#DEFAULT_MAP_OBJECT_CLASS="automountMap"
|
||||
-#DEFAULT_ENTRY_OBJECT_CLASS="automount"
|
||||
-#DEFAULT_MAP_ATTRIBUTE="ou"
|
||||
-#DEFAULT_ENTRY_ATTRIBUTE="cn"
|
||||
-#DEFAULT_VALUE_ATTRIBUTE="automountInformation"
|
||||
+#MAP_OBJECT_CLASS="automountMap"
|
||||
+#ENTRY_OBJECT_CLASS="automount"
|
||||
+#MAP_ATTRIBUTE="ou"
|
||||
+#ENTRY_ATTRIBUTE="cn"
|
||||
+#VALUE_ATTRIBUTE="automountInformation"
|
||||
#
|
||||
-#DEFAULT_MAP_OBJECT_CLASS="automountMap"
|
||||
-#DEFAULT_ENTRY_OBJECT_CLASS="automount"
|
||||
-#DEFAULT_MAP_ATTRIBUTE="automountMapName"
|
||||
-#DEFAULT_ENTRY_ATTRIBUTE="automountKey"
|
||||
-#DEFAULT_VALUE_ATTRIBUTE="automountInformation"
|
||||
+#MAP_OBJECT_CLASS="automountMap"
|
||||
+#ENTRY_OBJECT_CLASS="automount"
|
||||
+#MAP_ATTRIBUTE="automountMapName"
|
||||
+#ENTRY_ATTRIBUTE="automountKey"
|
||||
+#VALUE_ATTRIBUTE="automountInformation"
|
||||
#
|
||||
-# DEFAULT_AUTH_CONF_FILE - set the default location for the SASL
|
||||
+# AUTH_CONF_FILE - set the default location for the SASL
|
||||
# authentication configuration file.
|
||||
#
|
||||
-#DEFAULT_AUTH_CONF_FILE="@@autofsmapdir@@/autofs_ldap_auth.conf"
|
||||
+#AUTH_CONF_FILE="@@autofsmapdir@@/autofs_ldap_auth.conf"
|
||||
#
|
||||
# General global options
|
||||
#
|
||||
diff --git a/samples/autofs.conf.default.in b/samples/autofs.conf.default.in
|
||||
index 7cbc03f..84d524b 100644
|
||||
--- a/samples/autofs.conf.default.in
|
||||
+++ b/samples/autofs.conf.default.in
|
||||
@@ -1,50 +1,50 @@
|
||||
#
|
||||
# Define default options for autofs.
|
||||
#
|
||||
-# DEFAULT_MASTER_MAP_NAME - default map name for the master map.
|
||||
+# MASTER_MAP_NAME - default map name for the master map.
|
||||
#
|
||||
-#DEFAULT_MASTER_MAP_NAME="auto.master"
|
||||
+#MASTER_MAP_NAME="auto.master"
|
||||
#
|
||||
-# DEFAULT_TIMEOUT - set the default mount timeout (default 600).
|
||||
+# TIMEOUT - set the default mount timeout (default 600).
|
||||
#
|
||||
-DEFAULT_TIMEOUT=300
|
||||
+TIMEOUT=300
|
||||
#
|
||||
-# DEFAULT_BROWSE_MODE - maps are browsable by default.
|
||||
+# BROWSE_MODE - maps are browsable by default.
|
||||
#
|
||||
-DEFAULT_BROWSE_MODE="no"
|
||||
+BROWSE_MODE="no"
|
||||
#
|
||||
-# DEFAULT_LOGGING - set default log level "none", "verbose" or "debug"
|
||||
+# LOGGING - set default log level "none", "verbose" or "debug"
|
||||
#
|
||||
-#DEFAULT_LOGGING="none"
|
||||
+#LOGGING="none"
|
||||
#
|
||||
# Define the default LDAP schema to use for lookups
|
||||
#
|
||||
# System default
|
||||
#
|
||||
-#DEFAULT_MAP_OBJECT_CLASS="nisMap"
|
||||
-#DEFAULT_ENTRY_OBJECT_CLASS="nisObject"
|
||||
-#DEFAULT_MAP_ATTRIBUTE="nisMapName"
|
||||
-#DEFAULT_ENTRY_ATTRIBUTE="cn"
|
||||
-#DEFAULT_VALUE_ATTRIBUTE="nisMapEntry"
|
||||
+#MAP_OBJECT_CLASS="nisMap"
|
||||
+#ENTRY_OBJECT_CLASS="nisObject"
|
||||
+#MAP_ATTRIBUTE="nisMapName"
|
||||
+#ENTRY_ATTRIBUTE="cn"
|
||||
+#VALUE_ATTRIBUTE="nisMapEntry"
|
||||
#
|
||||
# Other common LDAP nameing
|
||||
#
|
||||
-#DEFAULT_MAP_OBJECT_CLASS="automountMap"
|
||||
-#DEFAULT_ENTRY_OBJECT_CLASS="automount"
|
||||
-#DEFAULT_MAP_ATTRIBUTE="ou"
|
||||
-#DEFAULT_ENTRY_ATTRIBUTE="cn"
|
||||
-#DEFAULT_VALUE_ATTRIBUTE="automountInformation"
|
||||
+#MAP_OBJECT_CLASS="automountMap"
|
||||
+#ENTRY_OBJECT_CLASS="automount"
|
||||
+#MAP_ATTRIBUTE="ou"
|
||||
+#ENTRY_ATTRIBUTE="cn"
|
||||
+#VALUE_ATTRIBUTE="automountInformation"
|
||||
#
|
||||
-#DEFAULT_MAP_OBJECT_CLASS="automountMap"
|
||||
-#DEFAULT_ENTRY_OBJECT_CLASS="automount"
|
||||
-#DEFAULT_MAP_ATTRIBUTE="automountMapName"
|
||||
-#DEFAULT_ENTRY_ATTRIBUTE="automountKey"
|
||||
-#DEFAULT_VALUE_ATTRIBUTE="automountInformation"
|
||||
+#MAP_OBJECT_CLASS="automountMap"
|
||||
+#ENTRY_OBJECT_CLASS="automount"
|
||||
+#MAP_ATTRIBUTE="automountMapName"
|
||||
+#ENTRY_ATTRIBUTE="automountKey"
|
||||
+#VALUE_ATTRIBUTE="automountInformation"
|
||||
#
|
||||
-# DEFAULT_AUTH_CONF_FILE - set the default location for the SASL
|
||||
+# AUTH_CONF_FILE - set the default location for the SASL
|
||||
# authentication configuration file.
|
||||
#
|
||||
-#DEFAULT_AUTH_CONF_FILE="@@autofsmapdir@@/autofs_ldap_auth.conf"
|
||||
+#AUTH_CONF_FILE="@@autofsmapdir@@/autofs_ldap_auth.conf"
|
||||
#
|
||||
# General global options
|
||||
#
|
183
autofs-5.0.1-random-selection.patch
Normal file
183
autofs-5.0.1-random-selection.patch
Normal file
@ -0,0 +1,183 @@
|
||||
diff --git a/daemon/automount.c b/daemon/automount.c
|
||||
index 5989324..938ee1b 100644
|
||||
--- a/daemon/automount.c
|
||||
+++ b/daemon/automount.c
|
||||
@@ -48,6 +48,8 @@ const char *mapdir = AUTOFS_MAP_DIR; /* Location of mount maps */
|
||||
const char *confdir = AUTOFS_CONF_DIR; /* Location of autofs config file */
|
||||
|
||||
static char *pid_file = NULL; /* File in which to keep pid */
|
||||
+unsigned int random_selection; /* use random policy when selecting
|
||||
+ * which multi-mount host to mount */
|
||||
static int start_pipefd[2];
|
||||
static int st_stat = 0;
|
||||
static int *pst_stat = &st_stat;
|
||||
@@ -1363,6 +1365,8 @@ static void usage(void)
|
||||
" -d --debug log debuging info\n"
|
||||
" -D --define define global macro variable\n"
|
||||
/*" -f --foreground do not fork into background\n" */
|
||||
+ " -r --random-replicated-selection"
|
||||
+ " use ramdom replicated server selection\n"
|
||||
" -V --version print version, build config and exit\n"
|
||||
, program);
|
||||
}
|
||||
@@ -1461,6 +1465,7 @@ int main(int argc, char *argv[])
|
||||
{"debug", 0, 0, 'd'},
|
||||
{"define", 1, 0, 'D'},
|
||||
{"foreground", 0, 0, 'f'},
|
||||
+ {"random-selection", 0, 0, 'r'},
|
||||
{"version", 0, 0, 'V'},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
@@ -1476,10 +1481,11 @@ int main(int argc, char *argv[])
|
||||
timeout = defaults_get_timeout();
|
||||
ghost = defaults_get_browse_mode();
|
||||
logging = defaults_get_logging();
|
||||
+ random_selection = 0;
|
||||
foreground = 0;
|
||||
|
||||
opterr = 0;
|
||||
- while ((opt = getopt_long(argc, argv, "+hp:t:vdD:fV", long_options, NULL)) != EOF) {
|
||||
+ while ((opt = getopt_long(argc, argv, "+hp:t:vdD:fVr", long_options, NULL)) != EOF) {
|
||||
switch (opt) {
|
||||
case 'h':
|
||||
usage();
|
||||
@@ -1513,6 +1519,10 @@ int main(int argc, char *argv[])
|
||||
show_build_info();
|
||||
exit(0);
|
||||
|
||||
+ case 'r':
|
||||
+ random_selection = 1;
|
||||
+ break;
|
||||
+
|
||||
case '?':
|
||||
case ':':
|
||||
printf("%s: Ambiguous or unknown options\n", program);
|
||||
diff --git a/include/replicated.h b/include/replicated.h
|
||||
index 970cd31..c77cda6 100644
|
||||
--- a/include/replicated.h
|
||||
+++ b/include/replicated.h
|
||||
@@ -60,6 +60,7 @@ struct host {
|
||||
struct host *next;
|
||||
};
|
||||
|
||||
+void seed_random(void);
|
||||
void free_host_list(struct host **);
|
||||
int parse_location(struct host **, const char *);
|
||||
int prune_host_list(struct host **, unsigned int, const char *);
|
||||
diff --git a/man/automount.8 b/man/automount.8
|
||||
index 9da82c4..59f2805 100644
|
||||
--- a/man/automount.8
|
||||
+++ b/man/automount.8
|
||||
@@ -47,6 +47,10 @@ Define a global macro substitution variable. Global definitions
|
||||
are over-ridden macro definitions of the same name specified in
|
||||
mount entries.
|
||||
.TP
|
||||
+.I "\-r, \-\-random-replicated-selection"
|
||||
+Enables the use of ramdom selection when choosing a host from a
|
||||
+list of replicated servers.
|
||||
+.TP
|
||||
.I "\-V, \-\-version"
|
||||
Display the version number, then exit.
|
||||
.SH ARGUMENTS
|
||||
diff --git a/modules/mount_nfs.c b/modules/mount_nfs.c
|
||||
index 4063e9a..25f72b9 100644
|
||||
--- a/modules/mount_nfs.c
|
||||
+++ b/modules/mount_nfs.c
|
||||
@@ -51,6 +51,8 @@ int mount_init(void **context)
|
||||
} else
|
||||
init_ctr++;
|
||||
|
||||
+ seed_random();
|
||||
+
|
||||
return !mount_bind;
|
||||
}
|
||||
|
||||
diff --git a/modules/replicated.c b/modules/replicated.c
|
||||
index cb65d82..de1b40c 100644
|
||||
--- a/modules/replicated.c
|
||||
+++ b/modules/replicated.c
|
||||
@@ -74,6 +74,29 @@
|
||||
#define max(x, y) (x >= y ? x : y)
|
||||
#define mmax(x, y, z) (max(x, y) == x ? max(x, z) : max(y, z))
|
||||
|
||||
+extern unsigned int random_selection;
|
||||
+
|
||||
+void seed_random(void)
|
||||
+{
|
||||
+ int fd;
|
||||
+ unsigned int seed;
|
||||
+
|
||||
+ fd = open("/dev/random", O_RDONLY);
|
||||
+ if (fd < 0) {
|
||||
+ srandom(time(NULL));
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ if (read(fd, &seed, sizeof(seed)) != -1)
|
||||
+ srandom(seed);
|
||||
+ else
|
||||
+ srandom(time(NULL));
|
||||
+
|
||||
+ close(fd);
|
||||
+
|
||||
+ return;
|
||||
+}
|
||||
+
|
||||
static unsigned int get_proximity(const char *host_addr, int addr_len)
|
||||
{
|
||||
struct sockaddr_in *msk_addr, *if_addr;
|
||||
@@ -403,7 +426,11 @@ static unsigned int get_nfs_info(struct host *host,
|
||||
status = rpc_ping_proto(rpc_info);
|
||||
gettimeofday(&end, &tz);
|
||||
if (status) {
|
||||
- taken += elapsed(start, end);
|
||||
+ if (random_selection)
|
||||
+ /* Random value between 0 and 1 */
|
||||
+ taken += ((float) random())/((float) RAND_MAX+1);
|
||||
+ else
|
||||
+ taken += elapsed(start, end);;
|
||||
count++;
|
||||
supported = NFS4_SUPPORTED;
|
||||
}
|
||||
@@ -440,7 +467,11 @@ v3_ver:
|
||||
status = rpc_ping_proto(rpc_info);
|
||||
gettimeofday(&end, &tz);
|
||||
if (status) {
|
||||
- taken += elapsed(start, end);
|
||||
+ if (random_selection)
|
||||
+ /* Random value between 0 and 1 */
|
||||
+ taken += ((float) random())/((float) RAND_MAX+1);
|
||||
+ else
|
||||
+ taken += elapsed(start, end);;
|
||||
count++;
|
||||
supported |= NFS3_SUPPORTED;
|
||||
}
|
||||
@@ -470,7 +501,11 @@ v2_ver:
|
||||
status = rpc_ping_proto(rpc_info);
|
||||
gettimeofday(&end, &tz);
|
||||
if (status) {
|
||||
- taken += elapsed(start, end);
|
||||
+ if (random_selection)
|
||||
+ /* Random value between 0 and 1 */
|
||||
+ taken += ((float) random())/((float) RAND_MAX+1);
|
||||
+ else
|
||||
+ taken += elapsed(start, end);;
|
||||
count++;
|
||||
supported |= NFS2_SUPPORTED;
|
||||
}
|
||||
@@ -610,8 +645,13 @@ static int get_supported_ver_and_cost(struct host *host, unsigned int version, c
|
||||
gettimeofday(&start, &tz);
|
||||
status = rpc_ping_proto(&rpc_info);
|
||||
gettimeofday(&end, &tz);
|
||||
- if (status)
|
||||
- taken = elapsed(start, end);
|
||||
+ if (status) {
|
||||
+ if (random_selection)
|
||||
+ /* Random value between 0 and 1 */
|
||||
+ taken = ((float) random())/((float) RAND_MAX+1);
|
||||
+ else
|
||||
+ taken = elapsed(start, end);
|
||||
+ }
|
||||
}
|
||||
done:
|
||||
if (rpc_info.proto->p_proto == IPPROTO_UDP) {
|
16
autofs.spec
16
autofs.spec
@ -4,7 +4,7 @@
|
||||
Summary: A tool for automatically mounting and unmounting filesystems
|
||||
Name: autofs
|
||||
Version: 5.0.1
|
||||
Release: 4
|
||||
Release: 5
|
||||
Epoch: 1
|
||||
License: GPL
|
||||
Group: System Environment/Daemons
|
||||
@ -16,6 +16,9 @@ Patch3: autofs-5.0.1-export-check-network-fix-2.patch
|
||||
Patch4: autofs-5.0.1-check-mtab-updated.patch
|
||||
Patch5: autofs-5.0.1-file-map-allow-white-space-only-line.patch
|
||||
Patch6: autofs-5.0.1-network_match-fix.patch
|
||||
Patch7: autofs-5.0.1-drop-default-prefix-from-config.patch
|
||||
Patch8: autofs-5.0.1-random-selection.patch
|
||||
Patch9: autofs-5.0.1-bad-cast.patch
|
||||
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: autoconf, hesiod-devel, openldap-devel, bison, flex, libxml2-devel, cyrus-sasl-devel, openssl-devel
|
||||
Conflicts: kernel < 2.6.17
|
||||
@ -63,6 +66,9 @@ echo %{version}-%{release} > .version
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
|
||||
%build
|
||||
#CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=/usr --libdir=%{_libdir}
|
||||
@ -115,6 +121,14 @@ fi
|
||||
%{_libdir}/autofs/
|
||||
|
||||
%changelog
|
||||
* Fri Mar 16 2007 Ian Kent <ikent@redhat.com> - 5.0.1-5
|
||||
- drop "DEFAULT_" prefix from configuration names.
|
||||
- add option to select replicated server at random (instead of
|
||||
ping response time) (bz 227604).
|
||||
- fix incorrect cast in directory cleanup routines (bz 231864).
|
||||
|
||||
- fixed numeric export match (bz 231188).
|
||||
|
||||
* Thu Mar 8 2007 Ian Kent <ikent@redhat.com> - 5.0.1-4
|
||||
- fixed numeric export match (bz 231188).
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user