rpms/autofs/devel autofs-4.1.4-check-nsswitch-submount.patch, NONE, 1.1 autofs-4.1.4-hesiod-bind.patch, NONE, 1.1 autofs-4.1.4-init-browse-as-non-first-option.patch, NONE, 1.1 autofs-4.1.4-init-nsswitch-comment.patch, NONE, 1.1 autofs-4.1.4-init-one-auto-master.patch, NONE, 1.1 autofs-4.1.4-init-redhat-only.patch, NONE, 1.1 autofs-4.1.4-non-replicated-ping.patch, NONE, 1.1 .cvsignore, 1.6, 1.7 autofs.spec, 1.57, 1.58 sources, 1.6, 1.7 autofs-4.1.0-auto-master.patch, 1.1, NONE autofs-4.1.0-hesiod-bind.patch, 1.1, NONE autofs-4.1.0-loop.patch, 1.1, NONE autofs-4.1.2-init-duplicate-map.patch, 1.1, NONE autofs-4.1.2-init-redhat-only.patch, 1.2, NONE autofs-4.1.2-option-parsing.patch, 1.2, NONE autofs-4.1.3-auto-smb-mount-fix.patch, 1.1, NONE autofs-4.1.3-auto.net-414b2.patch, 1.1, NONE autofs-4.1.3-bad_chdir.patch, 1.1, NONE autofs-4.1.3-browse.patch, 1.1, NONE autofs-4.1.3-cache-release.patch, 1.1, NONE autofs-4.1.3-check-nsswitch-submount.patch, 1.1, NONE autofs-4.1.3-close-fix.patch, 1.1, NONE autofs-4.1.3-disab! le-direct.patch, 1.1, NONE autofs-4.1.3-duplicate-map-entry-order.patch, 1.1, NONE autofs-4.1.3-filemap-etc-append.patch, 1.1, NONE autofs-4.1.3-filestream-leak.patch, 1.1, NONE autofs-4.1.3-ian-map-expiry-1.patch, 1.2, NONE autofs-4.1.3-ian-map-expiry-multimount-fix.patch, 1.3, NONE autofs-4.1.3-indirect-wildcard.patch, 1.1, NONE autofs-4.1.3-init-cwd-map.patch, 1.1, NONE autofs-4.1.3-init-duplicate-map2.patch, 1.1, NONE autofs-4.1.3-init-lc-all.patch, 1.1, NONE autofs-4.1.3-init-script-browse.patch, 1.2, NONE autofs-4.1.3-intl-status.patch, 1.1, NONE autofs-4.1.3-large-program-map.patch, 1.2, NONE autofs-4.1.3-ldap-multiple-map.patch, 1.1, NONE autofs-4.1.3-ldap-search-limit.patch, 1.3, NONE autofs-4.1.3-local-mount.patch, 1.1, NONE autofs-4.1.3-localopts-multi.patch, 1.1, NONE autofs-4.1.3-mtab_lock.patch, 1.1, NONE autofs-4.1.3-multi-over-redhat.patch, 1.2, NONE autofs-4.1.3-no-reserved-ports.patch, 1.1, NONE autofs-4.1.3-no-rmdir.patch, 1.1, NONE autofs-4.1.3-non-replicated-ping.patch, 1.2, NONE autofs-4.1.3-non! -strict-loop-fix.patch,1.1,NONE autofs-4.1.3-nss.patch,1.1,NON! E autofs

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Apr 13 23:34:48 UTC 2005


Update of /cvs/dist/rpms/autofs/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv16380

Modified Files:
	.cvsignore autofs.spec sources 
Added Files:
	autofs-4.1.4-check-nsswitch-submount.patch 
	autofs-4.1.4-hesiod-bind.patch 
	autofs-4.1.4-init-browse-as-non-first-option.patch 
	autofs-4.1.4-init-nsswitch-comment.patch 
	autofs-4.1.4-init-one-auto-master.patch 
	autofs-4.1.4-init-redhat-only.patch 
	autofs-4.1.4-non-replicated-ping.patch 
Removed Files:
	autofs-4.1.0-auto-master.patch autofs-4.1.0-hesiod-bind.patch 
	autofs-4.1.0-loop.patch autofs-4.1.2-init-duplicate-map.patch 
	autofs-4.1.2-init-redhat-only.patch 
	autofs-4.1.2-option-parsing.patch 
	autofs-4.1.3-auto-smb-mount-fix.patch 
	autofs-4.1.3-auto.net-414b2.patch autofs-4.1.3-bad_chdir.patch 
	autofs-4.1.3-browse.patch autofs-4.1.3-cache-release.patch 
	autofs-4.1.3-check-nsswitch-submount.patch 
	autofs-4.1.3-close-fix.patch autofs-4.1.3-disable-direct.patch 
	autofs-4.1.3-duplicate-map-entry-order.patch 
	autofs-4.1.3-filemap-etc-append.patch 
	autofs-4.1.3-filestream-leak.patch 
	autofs-4.1.3-ian-map-expiry-1.patch 
	autofs-4.1.3-ian-map-expiry-multimount-fix.patch 
	autofs-4.1.3-indirect-wildcard.patch 
	autofs-4.1.3-init-cwd-map.patch 
	autofs-4.1.3-init-duplicate-map2.patch 
	autofs-4.1.3-init-lc-all.patch 
	autofs-4.1.3-init-script-browse.patch 
	autofs-4.1.3-intl-status.patch 
	autofs-4.1.3-large-program-map.patch 
	autofs-4.1.3-ldap-multiple-map.patch 
	autofs-4.1.3-ldap-search-limit.patch 
	autofs-4.1.3-local-mount.patch 
	autofs-4.1.3-localopts-multi.patch 
	autofs-4.1.3-mtab_lock.patch 
	autofs-4.1.3-multi-over-redhat.patch 
	autofs-4.1.3-no-reserved-ports.patch 
	autofs-4.1.3-no-rmdir.patch 
	autofs-4.1.3-non-replicated-ping.patch 
	autofs-4.1.3-non-strict-loop-fix.patch autofs-4.1.3-nss.patch 
	autofs-4.1.3-nsswitch-comment.patch 
	autofs-4.1.3-one-auto-master.patch 
	autofs-4.1.3-plus-map-ordering.patch 
	autofs-4.1.3-program-map-extra-char-fix.patch 
	autofs-4.1.3-replicated-server-doc.patch 
	autofs-4.1.3-replicated-server-select.patch 
	autofs-4.1.3-rpc-ping.patch autofs-4.1.3-signal-race-fix.patch 
	autofs-4.1.3-sock-leak-fix.patch 
	autofs-4.1.3-submount-fix.patch 
	autofs-4.1.3-submount-variable-propagation.patch 
	autofs-4.1.3-umount-loopback.patch 
	autofs-4.1.3-underlinei18n.patch 
	autofs-4.1.3-user-message-typo.patch 
	autofs-4.1.3-yp-direct-lookup.patch autofs.sysconfig 
Log Message:
- Import 4.1.4 and merge.



autofs-4.1.4-check-nsswitch-submount.patch:
 include/automount.h  |    8 ++++++++
 lib/Makefile         |    4 ++--
 modules/Makefile     |    4 ++++
 modules/parse_sun.c  |   32 +++++++++++++++-----------------
 samples/rc.autofs.in |    8 ++++++--
 5 files changed, 35 insertions(+), 21 deletions(-)

--- NEW FILE autofs-4.1.4-check-nsswitch-submount.patch ---
--- autofs-4.1.4/include/automount.h.orig	2005-01-26 08:03:02.000000000 -0500
+++ autofs-4.1.4/include/automount.h	2005-04-13 18:56:37.189633272 -0400
@@ -282,6 +282,14 @@ int is_mounted(const char *table, const 
 int has_fstab_option(const char *path, const char *opt);
 int allow_owner_mount(const char *);
 
+/* nsswitch parsing */
+#define MAPTYPE_FILE 1
+#define MAPTYPE_PROGRAM 2
+
+char *get_nsswitch_map(const char *);
+int isfilemap(const char *);
+int isypmap(const char *);
+
 /* log notification */
 extern int do_verbose;
 extern int do_debug;
--- autofs-4.1.4/lib/Makefile.orig	2005-01-09 04:16:43.000000000 -0500
+++ autofs-4.1.4/lib/Makefile	2005-04-13 18:57:32.186272512 -0400
@@ -9,10 +9,10 @@ include ../Makefile.rules
 RPCGEN = /usr/bin/rpcgen
 RANLIB = /usr/bin/ranlib
 
-SRCS = cache.c listmount.c cat_path.c rpc_subs.c mounts.c lock.c
+SRCS = cache.c listmount.c cat_path.c rpc_subs.c mounts.c lock.c nsswitch.c
 RPCS = mount.h mount_clnt.c mount_xdr.c
 OBJS = cache.o mount_clnt.o mount_xdr.o listmount.o \
-	cat_path.o rpc_subs.o mounts.o lock.o
+	cat_path.o rpc_subs.o mounts.o lock.o nsswitch.o
 
 LIB = autofs.a
 
--- autofs-4.1.4/modules/Makefile.orig	2005-04-13 18:56:21.753979848 -0400
+++ autofs-4.1.4/modules/Makefile	2005-04-13 18:56:37.191632968 -0400
@@ -86,3 +86,7 @@ lookup_ldap.so: lookup_ldap.c
 	$(CC) $(SOLDFLAGS) $(CFLAGS) $(LDAP_FLAGS) -o lookup_ldap.so \
 		lookup_ldap.c $(AUTOFS_LIB) $(LIBLDAP)
 	$(STRIP) lookup_ldap.so
+
+parse_sun.so: parse_sun.c
+	$(CC) $(SOLDFLAGS) $(CFLAGS) -o parse_sun.so parse_sun.c $(AUTOFS_LIB) $(LIBNSL)
+	$(STRIP) parse_sun.so
--- autofs-4.1.4/modules/parse_sun.c.orig	2005-04-05 08:42:42.000000000 -0400
+++ autofs-4.1.4/modules/parse_sun.c	2005-04-13 18:59:46.410867272 -0400
@@ -566,6 +566,8 @@ static int sun_mount(const char *root, c
 	int rv;
 	char *mountpoint;
 	char *what;
+	char *nsswitch_map;
+	int newmaplen = 0;
 
 	if (*options == '\0')
 		options = NULL;
@@ -651,25 +653,21 @@ static int sun_mount(const char *root, c
 	memcpy(what, loc, loclen);
 	what[loclen] = '\0';
 
+	/*
+	 * If we have an autofs map that doesn't contain a ':' then we need
+	 * to detect what type of map it is.
+	 */
 	if (!strcmp(fstype, "autofs") && strchr(loc, ':') == NULL) {
-		char mtype[7];
-		int mtype_len;
-
-		if (loc[0] == '/') {
-			mtype_len = 5;
-			if (loc[1] == '/')
-				strcpy(mtype, "ldap:");
-			else
-				strcpy(mtype, "file:");
-		} else {
-			mtype_len = 3;
-			strcpy(mtype, "yp:");
+		nsswitch_map = get_nsswitch_map(loc);
+		if (!nsswitch_map) {
+			error(MODPREFIX "unable to find map %s",loc);
+			return 1;
 		}
-
-		what = alloca(loclen + mtype_len + 1);
-		memcpy(what, mtype, mtype_len);
-		memcpy(what + mtype_len, loc, loclen);
-		what[loclen + mtype_len] = '\0';
+		newmaplen = strlen(nsswitch_map);
+		what = alloca(newmaplen + 1);
+		memcpy(what, nsswitch_map, newmaplen);
+		what[newmaplen] = '\0';
+		free (nsswitch_map);
 	} else {
 		what = alloca(loclen + 1);
 		memcpy(what, loc, loclen);
--- autofs-4.1.4/samples/rc.autofs.in.orig	2005-04-13 18:55:18.406610112 -0400
+++ autofs-4.1.4/samples/rc.autofs.in	2005-04-13 18:55:18.411609352 -0400
@@ -284,9 +284,13 @@ function getmounts()
 		fi
 		# Dont even deal with conflicts between --ghost and [no]browse
 		# Its just insane to configure things like that.
-		if echo "$options" | grep -qE -- '\B-browse\b' ;
+		if echo "$options" | grep -q 'browse' ;
 		then
-		    startupoptions="$startupoptions --ghost"
+		    if echo "$options" | grep -qE -- '[ 	]+-browse' ||
+		       echo "$options" | grep -q -- ',browse' ;
+		    then
+			startupoptions="$startupoptions --ghost"
+		    fi
 		fi
 		# Check for verbose
 		if echo "$daemonoptions $options" | \

autofs-4.1.4-hesiod-bind.patch:
 lookup_hesiod.c |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+)

--- NEW FILE autofs-4.1.4-hesiod-bind.patch ---
--- autofs-4.1.4/modules/lookup_hesiod.c.orig	2005-04-13 17:17:03.008846800 -0400
+++ autofs-4.1.4/modules/lookup_hesiod.c	2005-04-13 17:28:46.812852328 -0400
@@ -29,6 +29,9 @@
 
 struct lookup_context {
 	struct parse_mod *parser;
+#ifdef HESIOD_INTERFACES
+	void *hesiod_context;
+#endif
 };
 
 int lookup_version = AUTOFS_LOOKUP_VERSION;	/* Required by protocol */
@@ -49,6 +52,13 @@ int lookup_init(const char *mapfmt, int 
 	/* Initialize the resolver. */
 	res_init();
 
+#ifdef HESIOD_INTERFACES
+	/* Initialize the hesiod context. */
+	if (hesiod_init(&(ctxt->hesiod_context)) != 0) {
+		crit(MODPREFIX "hesiod_init(): %m");
+		return 1;
+	}
+#endif
 	/* If a map type isn't explicitly given, parse it as hesiod entries. */
 	if (!mapfmt)
 		mapfmt = MAPFMT_DEFAULT;
@@ -79,7 +89,11 @@ int lookup_mount(const char *root, const
 	chdir("/");		/* If this is not here the filesystem stays
 				   busy, for some reason... */
 
+#ifdef HESIOD_INTERFACES
+	hes_result = hesiod_resolve(ctxt->hesiod_context, name, "filsys");
+#else
 	hes_result = hes_resolve(name, "filsys");
+#endif
 
 	if (!hes_result || !hes_result[0]) {
 		warn(MODPREFIX "entry \"%s\" not found in map\n", name);
@@ -106,7 +120,11 @@ int lookup_mount(const char *root, const
 
 	rv = ctxt->parser->parse_mount(root, name, name_len, best_record,
 				       ctxt->parser->context);
+#ifdef HESIOD_INTERFACES
+	hesiod_free_list(ctxt->hesiod_context, hes_result);
+#else
 	free(hes_result);
+#endif
 	return rv;
 }
 
@@ -116,6 +134,9 @@ int lookup_done(void *context)
 {
 	struct lookup_context *ctxt = (struct lookup_context *) context;
 	int rv = close_parse(ctxt->parser);
+#ifdef HESIOD_INTERFACES
+	hesiod_end(ctxt->hesiod_context);
+#endif
 	free(ctxt);
 	return rv;
 }

autofs-4.1.4-init-browse-as-non-first-option.patch:
 rc.autofs.in |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

--- NEW FILE autofs-4.1.4-init-browse-as-non-first-option.patch ---
--- autofs-4.1.4/samples/rc.autofs.in.orig	2005-04-13 16:20:58.972258096 -0400
+++ autofs-4.1.4/samples/rc.autofs.in	2005-04-13 16:21:55.236704600 -0400
@@ -283,9 +283,13 @@
 		fi
 		# Dont even deal with conflicts between --ghost and [no]browse
 		# Its just insane to configure things like that.
-		if echo "$options" | grep -qE -- '\B-browse\b' ;
+		if echo "$options" | grep -q 'browse' ;
 		then
-		    startupoptions="$startupoptions --ghost"
+		    if echo "$options" | grep -qE -- '[ 	]+-browse' ||
+		       echo "$options" | grep -q -- ',browse' ;
+		    then
+			startupoptions="$startupoptions --ghost"
+		    fi
 		fi
 		# Check for verbose
 		if echo "$daemonoptions $options" | \

autofs-4.1.4-init-nsswitch-comment.patch:
 rc.autofs.in |    3 +++
 1 files changed, 3 insertions(+)

--- NEW FILE autofs-4.1.4-init-nsswitch-comment.patch ---
--- autofs-4.1.4/samples/rc.autofs.in.orig	2005-04-13 16:55:33.000957808 -0400
+++ autofs-4.1.4/samples/rc.autofs.in	2005-04-13 16:56:49.368348200 -0400
@@ -184,6 +184,9 @@ function getrawmounts()
                     export ldapscheme
                 fi
                 ;;
+            \#*)
+                return
+                ;;
         esac
     done
 }

autofs-4.1.4-init-one-auto-master.patch:
 redhat/autofs.sysconfig |    3 +++
 samples/rc.autofs.in    |   29 ++++++++++++++++++++++++++---
 2 files changed, 29 insertions(+), 3 deletions(-)

--- NEW FILE autofs-4.1.4-init-one-auto-master.patch ---
--- autofs-4.1.4/samples/rc.autofs.in.orig	2005-04-13 18:26:26.030971240 -0400
+++ autofs-4.1.4/samples/rc.autofs.in	2005-04-13 18:28:38.999756912 -0400
@@ -75,6 +75,7 @@
 	UNDERSCORETODOT=1
 	DISABLE_DIRECT=1
 	DAEMON_EXIT_WAIT=20
+	ONE_AUTO_MASTER=0
 
 	[ -f /etc/sysconfig/autofs ] && . /etc/sysconfig/autofs
 
@@ -161,34 +162,56 @@
 
 function getrawmounts()
 {
+    oldIFS="$IFS"
+    IFS=""
     for scheme in `getschemes` ; do
         case "$scheme" in
             files)
                 if [ -z "$filescheme" ] ; then
-                    getfilemounts
+                    FILEMOUNTS=`getfilemounts`
+                    echo $FILEMOUNTS
                     filescheme=1
                     export filescheme
+                    if [ -n "$FILEMOUNTS" ] && [ "$ONE_AUTO_MASTER" -eq 1 ];
+                    then
+                        IFS="$oldIFS"
+                        return;
+                    fi
                 fi
                 ;;
             nis)
                 if [ -z "$nisscheme" ] ; then
-                    getnismounts
+                    NISMOUNTS=`getnismounts`
+                    echo $NISMOUNTS
                     nisscheme=1
                     export nisscheme
+                    if [ -n "$NISMOUNTS" ] && [ "$ONE_AUTO_MASTER" -eq 1 ];
+                    then
+                        IFS="$oldIFS"
+                        return;
+                    fi
                 fi
                 ;;
             ldap*)
                 if [ -z "$ldapscheme" ] ; then
-                    getldapmounts
+                    LDAPMOUNTS=`getldapmounts`
+                    echo $LDAPMOUNTS
                     ldapscheme=1
                     export ldapscheme
+                    if [ -n "LDAPMOUNTS" ] && [ "$ONE_AUTO_MASTER" -eq 1 ];
+                    then
+                        IFS="$oldIFS"
+                        return;
+                    fi
                 fi
                 ;;
             \#*)
+                IFS=$oldIFS
                 return
                 ;;
         esac
     done
+    IFS=$oldIFS
 }
 
 
--- autofs-4.1.4/redhat/autofs.sysconfig.orig	2005-04-13 19:03:16.896868536 -0400
+++ autofs-4.1.4/redhat/autofs.sysconfig	2005-04-13 19:03:20.183368912 -0400
@@ -12,6 +12,9 @@
 #  UNDERSCORETODOT changes auto_home to auto.home and auto_mnt to auto.mnt
 UNDERSCORETODOT=1
 DISABLE_DIRECT=1
+# Only source one master map if set to 1.  This would mimic Sun behaviour.
+# The default is 0 to maintain backwards compatibility.
+ONE_AUTO_MASTER=0
 
 # Using a good number of maps can cause autofs to take
 # some time to exit. If you get init script stop fails

autofs-4.1.4-init-redhat-only.patch:
 rc.autofs.in |   11 +----------
 1 files changed, 1 insertion(+), 10 deletions(-)

--- NEW FILE autofs-4.1.4-init-redhat-only.patch ---
--- autofs-4.1.4/samples/rc.autofs.in.orig	2005-04-13 15:13:30.510717800 -0400
+++ autofs-4.1.4/samples/rc.autofs.in	2005-04-13 15:15:03.373600496 -0400
@@ -38,16 +38,7 @@ test -e $DAEMON || exit 0
 #
 # Determine which kind of configuration we're using
 #
-system=unknown
-if [ -f /etc/debian_version ]; then
-	system=debian
-elif [ -f /etc/redhat-release ]; then
-	system=redhat
-else
-	echo "$0: Unknown system, please port and contact autofs at linux.kernel.org" 1>&2
-	exit 1
-fi
-
+system=redhat
 if [ $system = redhat ]; then
 	. $initdir/functions
 fi

autofs-4.1.4-non-replicated-ping.patch:
 mount_nfs.c |   85 ++++++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 55 insertions(+), 30 deletions(-)

--- NEW FILE autofs-4.1.4-non-replicated-ping.patch ---
--- autofs-4.1.4/modules/mount_nfs.c.orig	2005-04-13 18:38:08.851126336 -0400
+++ autofs-4.1.4/modules/mount_nfs.c	2005-04-13 18:38:53.034409456 -0400
@@ -31,6 +31,7 @@
 #include <netinet/in.h>
 #include <linux/nfs.h>
 #include <linux/nfs2.h>
+#include <ctype.h>
 
 #define MODULE_MOUNT
 #include "automount.h"
@@ -105,28 +106,72 @@ int is_local_addr(const char *host, cons
 	
 	return 1;
 }
+
+/*
+ * If the map doesn't contain a ',' and doesn't contain more than
+ * one ':' then @what is not a multimount entry.
+ */
+static int is_multimount_entry(char *what)
+{
+	return !strchr(what, ',') && (strchr(what, ':') == strrchr(what, ':'));
+}
+
 /*
  * Given a mount string, return (in the same string) the
- * best mount to use based on weight/locality/rpctime
+ * best mount to use based on locality/weight/rpctime.
+ *
+ * If longtimeout is set to 0 then we only do 100 ms pings to hosts.  In
+ * the event that this fails, we call ourself recursively with the
+ * longtimeout option set to 1.  In this case we ping for up to 10s and
+ * skip logic for detecting if a localhost has been passed. (if a local
+ * host had been passed, we would have returned that mount as the best
+ * mount.  The skipping of local maps in this case is an optimization).
+ *
  * - return -1 and what = '\0' on error,
  *           1 and what = local mount path if local bind,
  *     else  0 and what = remote mount path
  */
-int get_best_mount(char *what, const char *original, int longtimeout, int skiplocal)
+int get_best_mount(char *what, const char *original, int longtimeout)
 {
 	char *p = what;
 	char *winner = NULL;
 	int winner_weight = INT_MAX, local = 0;
 	double winner_time = 0;
-	char *delim;
+	char *delim, *pstrip;
 	int sec = (longtimeout) ? 10 : 0;
 	int micros = (longtimeout) ? 0 : 100000;
+	int skiplocal = longtimeout; /* clearly local is not available */
 
 	if (!p) {
 		*what = '\0';
 		return -1;
 	}
 
+	/*
+	 *  If only one mountpoint has been passed in, we don't need to
+	 *  do anything except strip whitespace from the end of the string.
+	 */
+	if (!is_multimount_entry(p)) {
+		for (pstrip = p+strlen(p) - 1; pstrip >= p; pstrip--) 
+			if (isspace(*pstrip))
+				*pstrip = '\0';
+
+		/* Check if the host is the localhost */
+		if (is_local_mount(p)) {
+			debug(MODPREFIX "host %s: is localhost", p);
+
+			/* Strip off hostname and ':' */
+			delim = strchr(p,':');
+			while (delim && *delim != '\0') {
+				delim++;
+				*what = *delim;
+				what++;
+			}
+			return 1;
+		}
+		return 0;
+	}
+
 	while (p && *p) {
 		char *next;
 		unsigned int ping_stat = 0;
@@ -171,37 +216,17 @@ int get_best_mount(char *what, const cha
 		/* p points to a server, "next is our next parse point */
 		if (!skiplocal) {
 			/* Check if it's localhost */
-			struct hostent *he;
-			char **haddr;
-
-			he = gethostbyname(p);
-			if (!he) {
-				error(MODPREFIX "host %s: lookup failure", p);
-				p = next;
-				continue;
-			}
-
-			/* Check each host in round robin list */
-			for (haddr = he->h_addr_list; *haddr; haddr++) {
-				local = is_local_addr(p, *haddr, he->h_length);
-
-				if (local < 0)
-					continue;
-
-				if (local) {
-					winner = p;
-					break;
-				}
-			}
-			
+			local = is_local_mount(p);
 			if (local < 0) {
 				local = 0;
 				p = next;
 				continue;
 			}
 
-			if (local)
+			if (local) {
+				winner = p;
 				break;
+			}
 		}
 
 		/* ping each (or the) entry to see if it's alive. */
@@ -256,7 +281,7 @@ int get_best_mount(char *what, const cha
 	 */
 	if (!local && winner_weight == INT_MAX) {
 		/* We had more than one contender and none responded in time */
-		if (winner_time != 0 && winner_time > 500) {
+		if (winner_time == 0 || winner_time > 500) {
 			/* We've already tried a longer timeout */
 			if (!longtimeout) {
 				/* Reset string and try again */
@@ -267,7 +292,7 @@ int get_best_mount(char *what, const cha
 				      "retrying with longer timeout",
 				      original);
 
-				return get_best_mount(what, original, 1, 1);
+				return get_best_mount(what, original, 1);
 			}
 		}
 	}
@@ -395,7 +420,7 @@ int mount_mount(const char *root, const 
 		/* No colon, take this as a bind (local) entry */
 		local = 1;
 	} else if (!nosymlink) {
-		local = get_best_mount(whatstr, what, 0, 0);
+		local = get_best_mount(whatstr, what, 0);
 		if (!*whatstr) {
 			warn(MODPREFIX "no host elected");
 			return 1;


Index: .cvsignore
===================================================================
RCS file: /cvs/dist/rpms/autofs/devel/.cvsignore,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- .cvsignore	9 Sep 2004 03:25:25 -0000	1.6
+++ .cvsignore	13 Apr 2005 23:34:44 -0000	1.7
@@ -1 +1 @@
-autofs-4.1.3.tar.bz2
+autofs-4.1.4.tar.bz2


Index: autofs.spec
===================================================================
RCS file: /cvs/dist/rpms/autofs/devel/autofs.spec,v
retrieving revision 1.57
retrieving revision 1.58
diff -u -r1.57 -r1.58
--- autofs.spec	4 Apr 2005 22:27:48 -0000	1.57
+++ autofs.spec	13 Apr 2005 23:34:44 -0000	1.58
@@ -3,66 +3,22 @@
 #
 Summary: A tool for automatically mounting and unmounting filesystems.
 Name: autofs
-%define version 4.1.3
-%define release 123
+%define version 4.1.4
+%define release 2
 Version: %{version}
 Release: %{release}
 Epoch: 1
 License: GPL
 Group: System Environment/Daemons
 Source: ftp://ftp.kernel.org/pub/linux/daemons/autofs/v4/autofs-%{version}.tar.bz2
-Source1: autofs.sysconfig
-Patch1: autofs-4.1.0-hesiod-bind.patch
-Patch2: autofs-4.1.0-loop.patch
-Patch3: autofs-4.1.0-auto-master.patch
-Patch4: autofs-4.1.2-init-redhat-only.patch
-Patch5: autofs-4.1.3-non-strict-loop-fix.patch
-Patch12: autofs-4.1.2-option-parsing.patch
-Patch14: autofs-4.1.3-underlinei18n.patch
-Patch15: autofs-4.1.3-rpc-ping.patch
-Patch16: autofs-4.1.3-bad_chdir.patch
-Patch17: autofs-4.1.3-mtab_lock.patch
-Patch18: autofs-4.1.3-ian-map-expiry-1.patch
-Patch19: autofs-4.1.3-disable-direct.patch
-Patch21: autofs-4.1.3-signal-race-fix.patch
-Patch22: autofs-4.1.3-sock-leak-fix.patch
-Patch24: autofs-4.1.3-umount-loopback.patch
-Patch25: autofs-4.1.3-close-fix.patch
-Patch26: autofs-4.1.3-intl-status.patch
-Patch27: autofs-4.1.3-localopts-multi.patch
-Patch28: autofs-4.1.2-init-duplicate-map.patch
-Patch29: autofs-4.1.3-filemap-etc-append.patch
-Patch30: autofs-4.1.3-init-duplicate-map2.patch
-Patch31: autofs-4.1.3-plus-map-ordering.patch
-Patch32: autofs-4.1.3-ldap-search-limit.patch
-Patch33: autofs-4.1.3-browse.patch
-Patch35: autofs-4.1.3-large-program-map.patch
-Patch36: autofs-4.1.3-user-message-typo.patch
-Patch37: autofs-4.1.3-no-reserved-ports.patch
-Patch38: autofs-4.1.3-init-cwd-map.patch
-Patch39: autofs-4.1.3-init-lc-all.patch
-Patch40: autofs-4.1.3-ldap-multiple-map.patch
-Patch41: autofs-4.1.3-replicated-server-select.patch
-Patch42: autofs-4.1.3-ian-map-expiry-multimount-fix.patch
-Patch43: autofs-4.1.3-yp-direct-lookup.patch
-Patch44: autofs-4.1.3-filestream-leak.patch
-Patch45: autofs-4.1.3-no-rmdir.patch
-Patch46: autofs-4.1.3-replicated-server-doc.patch
-Patch47: autofs-4.1.3-cache-release.patch
-Patch48: autofs-4.1.3-non-replicated-ping.patch
-Patch49: autofs-4.1.3-program-map-extra-char-fix.patch
-Patch50: autofs-4.1.3-duplicate-map-entry-order.patch
-Patch51: autofs-4.1.3-submount-variable-propagation.patch
-Patch52: autofs-4.1.3-one-auto-master.patch
-Patch53: autofs-4.1.3-nsswitch-comment.patch
-Patch54: autofs-4.1.3-alt-master-ldap.patch
-Patch55: autofs-4.1.3-auto-smb-mount-fix.patch
-Patch56: autofs-4.1.3-check-nsswitch-submount.patch
-Patch57: autofs-4.1.3-init-script-browse.patch
-Patch58: autofs-4.1.3-local-mount.patch
-Patch59: autofs-4.1.3-indirect-wildcard.patch
-Patch60: autofs-4.1.3-multi-over-redhat.patch
-Patch61: autofs-4.1.3-auto.net-414b2.patch
+Patch1: autofs-4.1.4-init-redhat-only.patch
+Patch2: autofs-4.1.4-init-nsswitch-comment.patch
+Patch3: autofs-4.1.4-init-one-auto-master.patch
+Patch4: autofs-4.1.4-init-browse-as-non-first-option.patch
+Patch5: autofs-4.1.4-hesiod-bind.patch
+Patch6: autofs-4.1.4-non-replicated-ping.patch
+Patch7: autofs-4.1.4-check-nsswitch-submount.patch
+Patch8: autofs-4.1.3-alt-master-ldap.patch
 
 Buildroot: /var/tmp/autofs-tmp
 BuildPrereq: autoconf, hesiod-devel, openldap-devel, perl
@@ -102,59 +58,12 @@
 %prep
 %setup -q
 echo %{version}-%{release} > .version
-%patch1 -p1 -b .hesiod-bind
-%patch2 -p1 -b .loop
-%patch3 -p1 -b .auto-master
-%patch4 -p1 -b .init-redhat-only
-%patch5 -p1 -b .non-strict-loop-fix
-%patch12 -p1 -b .option-parsing
-%patch14 -p1 -b .i18n
-%patch15 -p1 -b .rpc-ping
-%patch16 -p1 -b .bad-chdir
-%patch17 -p1 -b .mtab-lock
-%patch18 -p1 -b .map-expiry
-%patch19 -p1 -b .disable-direct
-%patch21 -p1 -b .signal-race-fix
-%patch22 -p1 -b .sock-leak-fix-2
-%patch24 -p1 -b .umount-loopback
-%patch25 -p1 -b .close-fix
-%patch26 -p1 -b .intl-status
-%patch27 -p1 -b .localopts-multi
-%patch28 -p1 -b .init-duplicate-map
-%patch29 -p1 -b .filemap-etc-append
-%patch30 -p1 -b .init-duplicate-map2
-%patch31 -p1 -b .plus-map-ordering.patch
-%patch32 -p1 -b .ldap-search-limit.patch
-%patch33 -p1 -b .browse
-%patch35 -p1 -b .large-program-map
-%patch36 -p1 -b .user-message-typo
-%patch37 -p1 -b .no-reserved-ports
-%patch38 -p1 -b .init-cwd
-%patch39 -p1 -b .init-lc-all
-%patch40 -p1 -b .ldap-multiple-map
-%patch41 -p1 -b .replicated-server-select
-%patch42 -p1 -b .expire-multi
-%patch43 -p1 -b .yp-direct-lookup
-%patch44 -p1 -b .filestream-leak
-%patch45 -p1 -b .no-rmdir
-%patch46 -p1
-%patch47 -p1 -b .cache-release
-%patch48 -p1 -b .non-replicated-ping
-%patch49 -p1 -b .program-map-extra-char
-%patch50 -p1 -b .duplicate-entry-order
-%patch51 -p1 -b .submount-variable-prop
-%patch52 -p1 -b .one-auto-master
-%patch53 -p1 -b .nsswitch-comment
-%patch54 -p1 -b .alt-master-ldap
-%patch55 -p1 -b .auto-smb-mount
-%patch56 -p1 -b .check-nsswitch-submount
-%patch57 -p1 -b .init-script-browse
-%patch58 -p1 -b .local-mount
-%patch59 -p1 -b .indirect-wildcard
-%patch60 -p1 -b .multi-over
-%patch61 -p1 -b .auto.net
-
-cp $RPM_SOURCE_DIR/autofs.sysconfig .
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
 
 %build
 #CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=/usr --libdir=%{_libdir}
@@ -171,7 +80,7 @@
 
 make install mandir=%{_mandir} initdir=/etc/rc.d/init.d INSTALLROOT=$RPM_BUILD_ROOT
 install -m 755 -d $RPM_BUILD_ROOT/misc
-install -m 644 autofs.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/autofs
+install -m 644 redhat/autofs.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/autofs
 
 %clean
 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
@@ -193,12 +102,13 @@
 
 %files
 %defattr(-,root,root)
-%doc CREDITS COPY* README* TODO multiserver_mount.patch patches/* samples/ldap* samples/autofs.schema
+%doc CREDITS COPY* README* patches/* samples/ldap* samples/autofs.schema
 %doc 
 %config /etc/rc.d/init.d/autofs
 %config(noreplace,missingok) /etc/auto.master
 %config(noreplace,missingok) /etc/auto.misc
 %config(noreplace,missingok) /etc/auto.net
+%config(noreplace,missingok) /etc/auto.smb
 %config(noreplace) /etc/sysconfig/autofs
 %dir /misc
 %dir %{_libdir}/autofs
@@ -207,6 +117,9 @@
 %{_libdir}/autofs/*
 
 %changelog
+* Wed Apr 13 2005 Jeff Moyer <jmoyer at redhat.com> - 1:4.1.4-2
+- Import 4.1.4 and merge.
+
 * Mon Apr  4 2005 Jeff Moyer <jmoyer at redhat.com> - 1:4.1.3-123
 - Add in an error case that was omitted in the multi-over patch.
 - Update our auto.net to reflect the changes that went into 4.1.4_beta2.


Index: sources
===================================================================
RCS file: /cvs/dist/rpms/autofs/devel/sources,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- sources	9 Sep 2004 03:25:25 -0000	1.6
+++ sources	13 Apr 2005 23:34:44 -0000	1.7
@@ -1 +1 @@
-f43a09e94c4bd512ec58ac06e9d42c60  autofs-4.1.3.tar.bz2
+7e3949114c00665b4636f0c318179657  autofs-4.1.4.tar.bz2


--- autofs-4.1.0-auto-master.patch DELETED ---


--- autofs-4.1.0-hesiod-bind.patch DELETED ---


--- autofs-4.1.0-loop.patch DELETED ---


--- autofs-4.1.2-init-duplicate-map.patch DELETED ---


--- autofs-4.1.2-init-redhat-only.patch DELETED ---


--- autofs-4.1.2-option-parsing.patch DELETED ---


--- autofs-4.1.3-auto-smb-mount-fix.patch DELETED ---


--- autofs-4.1.3-auto.net-414b2.patch DELETED ---


--- autofs-4.1.3-bad_chdir.patch DELETED ---


--- autofs-4.1.3-browse.patch DELETED ---


--- autofs-4.1.3-cache-release.patch DELETED ---


--- autofs-4.1.3-check-nsswitch-submount.patch DELETED ---


--- autofs-4.1.3-close-fix.patch DELETED ---


--- autofs-4.1.3-disable-direct.patch DELETED ---


--- autofs-4.1.3-duplicate-map-entry-order.patch DELETED ---


--- autofs-4.1.3-filemap-etc-append.patch DELETED ---


--- autofs-4.1.3-filestream-leak.patch DELETED ---


--- autofs-4.1.3-ian-map-expiry-1.patch DELETED ---


--- autofs-4.1.3-ian-map-expiry-multimount-fix.patch DELETED ---


--- autofs-4.1.3-indirect-wildcard.patch DELETED ---


--- autofs-4.1.3-init-cwd-map.patch DELETED ---


--- autofs-4.1.3-init-duplicate-map2.patch DELETED ---


--- autofs-4.1.3-init-lc-all.patch DELETED ---


--- autofs-4.1.3-init-script-browse.patch DELETED ---


--- autofs-4.1.3-intl-status.patch DELETED ---


--- autofs-4.1.3-large-program-map.patch DELETED ---


--- autofs-4.1.3-ldap-multiple-map.patch DELETED ---


--- autofs-4.1.3-ldap-search-limit.patch DELETED ---


--- autofs-4.1.3-local-mount.patch DELETED ---


--- autofs-4.1.3-localopts-multi.patch DELETED ---


--- autofs-4.1.3-mtab_lock.patch DELETED ---


--- autofs-4.1.3-multi-over-redhat.patch DELETED ---


--- autofs-4.1.3-no-reserved-ports.patch DELETED ---


--- autofs-4.1.3-no-rmdir.patch DELETED ---


--- autofs-4.1.3-non-replicated-ping.patch DELETED ---


--- autofs-4.1.3-non-strict-loop-fix.patch DELETED ---


--- autofs-4.1.3-nss.patch DELETED ---


--- autofs-4.1.3-nsswitch-comment.patch DELETED ---


--- autofs-4.1.3-one-auto-master.patch DELETED ---


--- autofs-4.1.3-plus-map-ordering.patch DELETED ---


--- autofs-4.1.3-program-map-extra-char-fix.patch DELETED ---


--- autofs-4.1.3-replicated-server-doc.patch DELETED ---


--- autofs-4.1.3-replicated-server-select.patch DELETED ---


--- autofs-4.1.3-rpc-ping.patch DELETED ---


--- autofs-4.1.3-signal-race-fix.patch DELETED ---


--- autofs-4.1.3-sock-leak-fix.patch DELETED ---


--- autofs-4.1.3-submount-fix.patch DELETED ---


--- autofs-4.1.3-submount-variable-propagation.patch DELETED ---


--- autofs-4.1.3-umount-loopback.patch DELETED ---


--- autofs-4.1.3-underlinei18n.patch DELETED ---


--- autofs-4.1.3-user-message-typo.patch DELETED ---


--- autofs-4.1.3-yp-direct-lookup.patch DELETED ---


--- autofs.sysconfig DELETED ---




More information about the fedora-cvs-commits mailing list