summaryrefslogtreecommitdiff
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);
}