summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog12
-rw-r--r--inet/rcmd.c48
-rw-r--r--nscd/nscd-client.h4
-rw-r--r--nscd/nscd.init94
-rw-r--r--test-skeleton.c2
5 files changed, 90 insertions, 70 deletions
diff --git a/ChangeLog b/ChangeLog
index 614445d16e..bb64d54912 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,17 @@
 2003-12-31  Ulrich Drepper  <drepper@redhat.com>
 
+	* inet/rcmd.c: Provide better error message in case of unknown
+	host.  Remove USE_IN_LIBIO.
+
+	* nscd/nscd.init: Updated version, more conforming with current
+	init file standards.
+
+	* nscd/nscd-client.h (_PATH_NSCDPID): Move the file into
+	/var/run/nscd directory.
+	(_PATH_NSCDSOCKET): Likewise.
+
+	* test-skeleton.c (timeout_handler): Fix error message.
+
 	* elf/dl-dst.h (DL_DST_REQUIRED): Avoid the complex operations if
 	CNT == 0.
 
diff --git a/inet/rcmd.c b/inet/rcmd.c
index d9645a38a6..0bcb731a16 100644
--- a/inet/rcmd.c
+++ b/inet/rcmd.c
@@ -80,9 +80,7 @@ static char sccsid[] = "@(#)rcmd.c	8.3 (Berkeley) 3/26/94";
 #include <string.h>
 #include <libintl.h>
 #include <stdlib.h>
-#ifdef USE_IN_LIBIO
-# include <wchar.h>
-#endif
+#include <wchar.h>
 #include <sys/uio.h>
 
 
@@ -139,14 +137,20 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
 	(void)__snprintf(num, sizeof(num), "%d", ntohs(rport));
 	error = getaddrinfo(*ahost, num, &hints, &res);
 	if (error) {
-#ifdef USE_IN_LIBIO
-		if (_IO_fwide (stderr, 0) > 0)
-			__fwprintf(stderr, L"rcmd: getaddrinfo: %s\n",
-				   gai_strerror(error));
-		else
-#endif
-			fprintf(stderr, "rcmd: getaddrinfo: %s\n",
-				gai_strerror(error));
+		if (error == EAI_NONAME && *ahost != NULL) {
+			if (_IO_fwide (stderr, 0) > 0)
+				__fwprintf(stderr, L"%s: Unknown host\n",
+					   *ahost);
+			else
+				fprintf(stderr, "%s: Unknown host\n", *ahost);
+		} else {
+			if (_IO_fwide (stderr, 0) > 0)
+				__fwprintf(stderr, L"rcmd: getaddrinfo: %s\n",
+					   gai_strerror(error));
+			else
+				fprintf(stderr, "rcmd: getaddrinfo: %s\n",
+					gai_strerror(error));
+		}
                 return (-1);
 	}
 
@@ -157,12 +161,10 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
 		free (ahostbuf);
 		ahostbuf = strdup (res->ai_canonname);
 		if (ahostbuf == NULL) {
-#ifdef USE_IN_LIBIO
 			if (_IO_fwide (stderr, 0) > 0)
 				__fwprintf(stderr, L"%s",
 					   _("rcmd: Cannot allocate memory\n"));
 			else
-#endif
 				fputs(_("rcmd: Cannot allocate memory\n"),
 				      stderr);
 			return (-1);
@@ -179,21 +181,17 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
 		s = rresvport_af(&lport, ai->ai_family);
 		if (s < 0) {
 			if (errno == EAGAIN) {
-#ifdef USE_IN_LIBIO
 				if (_IO_fwide (stderr, 0) > 0)
 					__fwprintf(stderr, L"%s",
 						   _("rcmd: socket: All ports in use\n"));
 				else
-#endif
 					fputs(_("rcmd: socket: All ports in use\n"),
 					      stderr);
 			} else {
-#ifdef USE_IN_LIBIO
 				if (_IO_fwide (stderr, 0) > 0)
 					__fwprintf(stderr,
 						   L"rcmd: socket: %m\n");
 				else
-#endif
 					fprintf(stderr, "rcmd: socket: %m\n");
 			}
 			__sigsetmask(oldmask);
@@ -222,11 +220,9 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
 			if (__asprintf (&buf, _("connect to address %s: "),
 					paddr) >= 0)
 			  {
-#ifdef USE_IN_LIBIO
 			    if (_IO_fwide (stderr, 0) > 0)
 			      __fwprintf(stderr, L"%s", buf);
 			    else
-#endif
 			      fputs (buf, stderr);
 			    free (buf);
 			  }
@@ -239,11 +235,9 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
 				    NI_NUMERICHOST);
 			if (__asprintf (&buf, _("Trying %s...\n"), paddr) >= 0)
 			  {
-#ifdef USE_IN_LIBIO
 			    if (_IO_fwide (stderr, 0) > 0)
 			      __fwprintf (stderr, L"%s", buf);
 			    else
-#endif
 			      fputs (buf, stderr);
 			    free (buf);
 			  }
@@ -257,13 +251,11 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
 			continue;
 		}
 		freeaddrinfo(res);
-#ifdef USE_IN_LIBIO
 		if (_IO_fwide (stderr, 0) > 0)
 			(void)__fwprintf(stderr, L"%s: %s\n", *ahost,
 					 __strerror_r(errno,
 						      errbuf, sizeof (errbuf)));
 		else
-#endif
 			(void)fprintf(stderr, "%s: %s\n", *ahost,
 				      __strerror_r(errno,
 						   errbuf, sizeof (errbuf)));
@@ -289,11 +281,9 @@ rcmd_af(ahost, rport, locuser, remuser, cmd, fd2p, af)
 			if (__asprintf (&buf, _("\
 rcmd: write (setting up stderr): %m\n")) >= 0)
 			  {
-#ifdef USE_IN_LIBIO
 			    if (_IO_fwide (stderr, 0) > 0)
 			      __fwprintf(stderr, L"%s", buf);
 			    else
-#endif
 			      fputs (buf, stderr);
 			    free (buf);
 			  }
@@ -313,11 +303,9 @@ rcmd: poll (setting up stderr): %m\n")) >= 0)
 				&& __asprintf(&buf, _("\
 poll: protocol failure in circuit setup\n")) >= 0))
 			  {
-#ifdef USE_IN_LIBIO
 			    if (_IO_fwide (stderr, 0) > 0)
 			      __fwprintf (stderr, L"%s", buf);
 			    else
-#endif
 			      fputs (buf, stderr);
 			    free  (buf);
 			  }
@@ -339,12 +327,10 @@ poll: protocol failure in circuit setup\n")) >= 0))
 		}
 		(void)__close(s2);
 		if (s3 < 0) {
-#ifdef USE_IN_LIBIO
 			if (_IO_fwide (stderr, 0) > 0)
 				(void)__fwprintf(stderr,
 						 L"rcmd: accept: %m\n");
 			else
-#endif
 				(void)fprintf(stderr,
 					      "rcmd: accept: %m\n");
 			lport = 0;
@@ -358,11 +344,9 @@ poll: protocol failure in circuit setup\n")) >= 0))
 			if (__asprintf(&buf, _("\
 socket: protocol failure in circuit setup\n")) >= 0)
 			  {
-#ifdef USE_IN_LIBIO
 			    if (_IO_fwide (stderr, 0) > 0)
 			      __fwprintf (stderr, L"%s", buf);
 			    else
-#endif
 			      fputs (buf, stderr);
 			    free (buf);
 			  }
@@ -389,11 +373,9 @@ socket: protocol failure in circuit setup\n")) >= 0)
 		    || (n != 0
 			&& __asprintf(&buf, "rcmd: %s: %m\n", *ahost) >= 0))
 		  {
-#ifdef USE_IN_LIBIO
 		    if (_IO_fwide (stderr, 0) > 0)
 		      __fwprintf (stderr, L"%s", buf);
 		    else
-#endif
 		      fputs (buf, stderr);
 		    free (buf);
 		  }
diff --git a/nscd/nscd-client.h b/nscd/nscd-client.h
index be3bc2ffb9..c0cf14b753 100644
--- a/nscd/nscd-client.h
+++ b/nscd/nscd-client.h
@@ -29,10 +29,10 @@
 #define NSCD_VERSION 2
 
 /* Path of the file where the PID of the running system is stored.  */
-#define _PATH_NSCDPID	 "/var/run/nscd.pid"
+#define _PATH_NSCDPID	 "/var/run/nscd/nscd.pid"
 
 /* Path for the Unix domain socket.  */
-#define _PATH_NSCDSOCKET "/var/run/.nscd_socket"
+#define _PATH_NSCDSOCKET "/var/run/nscd/socket"
 
 /* Path for the configuration file.  */
 #define _PATH_NSCDCONF	 "/etc/nscd.conf"
diff --git a/nscd/nscd.init b/nscd/nscd.init
index 572288a2bb..3796b3d0a0 100644
--- a/nscd/nscd.init
+++ b/nscd/nscd.init
@@ -1,13 +1,13 @@
-#!/bin/sh
+#!/bin/bash
 #
 # nscd:		Starts the Name Switch Cache Daemon
 #
-# chkconfig: - 30 80
+# chkconfig: - 30 74
 # description:  This is a daemon which handles passwd and group lookups \
 #		for running programs and cache the results for the next \
-#		query.  You should start this daemon only if you use \
-#		slow Services like NIS or NIS+
-# processname: nscd
+#		query.  You should start this daemon if you use \
+#		slow naming services like NIS, NIS+, LDAP, or hesiod.
+# processname: /usr/sbin/nscd
 # config: /etc/nscd.conf
 #
 
@@ -16,7 +16,7 @@
 [ -x /usr/sbin/nscd ] || exit 0
 
 # Source function library.
-. /etc/rc.d/init.d/functions
+. /etc/init.d/functions
 
 # nscd does not run on any kernel lower than 2.2.0 because of threading
 # problems, so we require that in first place.
@@ -34,51 +34,77 @@ case $(uname -r) in
 esac
 
 RETVAL=0
+prog=nscd
+
+start () {
+    [ -d /var/run/nscd ] || mkdir /var/run/nscd
+    secure=""
+#   for table in passwd group hosts
+#   do
+#   	if egrep -q '^'$table':.*nisplus' /etc/nsswitch.conf; then
+#   	    /usr/lib/nscd_nischeck $table || secure="$secure -S $table,yes"
+#   	fi
+#   done
+    echo -n $"Starting $prog: "
+    daemon /usr/sbin/nscd $secure
+    RETVAL=$?
+    echo
+    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd
+    return $RETVAL
+}
+
+stop () {
+    echo -n $"Stopping $prog: "
+    /usr/sbin/nscd -K
+    RETVAL=$?
+    if [ $RETVAL -eq 0 ]; then
+       	rm -f /var/lock/subsys/nscd
+	# nscd won't be able to remove these if it is running as
+	# a non-privileged user
+	rm -f /var/run/nscd/nscd.pid
+	rm -f /var/run/nscd/.socket
+       	success $"$prog shutdown"
+    else
+       	failure $"$prog shutdown"
+    fi
+    echo
+    return $RETVAL
+}
+
+restart() {
+    stop
+    start
+}
 
 # See how we were called.
 case "$1" in
     start)
-	secure=""
-#	for table in passwd group
-#	do
-#		if egrep '^'$table':.*nisplus' /etc/nsswitch.conf >/dev/null
-#		then
-#			/usr/lib/nscd_nischeck $table ||
-#				secure="$secure -S $table,yes"
-#		fi
-#	done
-        echo -n "Starting Name Switch Cache Daemon: "
-	daemon nscd $secure
+	start
 	RETVAL=$?
-        echo
-        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd
 	;;
     stop)
-	echo -n "Stopping Name Switch Cache Daemon: "
-	/usr/sbin/nscd -K
+	stop
 	RETVAL=$?
-	if [ $RETVAL -eq 0 ]; then
-		rm -f /var/lock/subsys/nscd
-        	echo nscd
-	else
-		echo
-	fi
 	;;
-  status)
+    status)
         status nscd
 	RETVAL=$?
         ;;
-  restart)
-        $0 stop
-        $0 start
+    restart)
+	restart
+	RETVAL=$?
+	;;
+    condrestart)
+	[ -e /var/lock/subsys/nscd ] && restart
 	RETVAL=$?
 	;;
-  reload)
-  	killproc -HUP nscd
+    reload)
+  	killproc /usr/sbin/nscd -HUP
 	RETVAL=$?
         ;;
     *)
-	echo "Usage: $0 {start|stop|status|restart}"
+	echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
+	RETVAL=1
 	;;
 esac
 exit $RETVAL
diff --git a/test-skeleton.c b/test-skeleton.c
index 5ca9a3d8ff..f9061ca186 100644
--- a/test-skeleton.c
+++ b/test-skeleton.c
@@ -156,7 +156,7 @@ timeout_handler (int sig __attribute__ ((unused)))
     }
   if (killed != 0 && killed != pid)
     {
-      perror ("Failed to killed test process");
+      perror ("Failed to kill test process");
       exit (1);
     }