This is the mail archive of the libc-hacker@sources.redhat.com mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

[Patch] rcmd_af and yp_all



Hi,

here are 2 small bug fixes. The first one is for rcmd_af. We should
also allow PF_UNSPEC. Else it will not work if you have a hostname
and does not knows if this has a IPv4 or IPv6 address. This patch
is necessary for rlogin.

The second one is for yp_all(). We should only print an error message
if all tries fails. And we should check only for an protocoll error
if we are sure there was no network error.

  Thorsten

-- 
Thorsten Kukuk       http://www.suse.de/~kukuk/       kukuk@suse.de
SuSE GmbH            Schanzaeckerstr. 10            90443 Nuernberg
Linux is like a Vorlon.  It is incredibly powerful, gives terse,
cryptic answers and has a lot of things going on in the background.

2001-03-30  Thorsten Kukuk  <kukuk@suse.de>

       * inet/rcmd.c: Allow PF_UNSPEC as parameter
       * nis/ypclnt.c (yp_all): Print error message only at last try,
         check for protocoll error only if we don't have a network error.

--- inet/rcmd.c
+++ inet/rcmd.c	2001/03/30 14:39:43
@@ -117,7 +117,7 @@
 	char num[8];
 	ssize_t n;
 
-	if (af != AF_INET && af != AF_INET6)
+	if (af != AF_INET && af != AF_INET6 && af != PF_UNSPEC)
 	  {
 	    __set_errno (EAFNOSUPPORT);
 	    return -1;
--- nis/ypclnt.c	2000/04/22 03:24:35	1.37
+++ nis/ypclnt.c	2001/03/19 14:51:46
@@ -1,4 +1,4 @@
-/* Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
+/* Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Thorsten Kukuk <kukuk@suse.de>, 1996.
 
@@ -729,7 +729,9 @@
 
       if (result != RPC_SUCCESS)
 	{
-	  clnt_perror (clnt, "yp_all: clnt_call");
+	  /* Print the error message only on the last try */
+	  if (try == MAXTRIES - 1)
+	    clnt_perror (clnt, "yp_all: clnt_call");
 	  res = YPERR_RPC;
 	}
       else
@@ -738,7 +740,7 @@
       __yp_unbind (ydb);
       clnt_destroy (clnt);
 
-      if (status != YP_NOMORE)
+      if (res == YPERR_SUCCESS && status != YP_NOMORE)
 	{
 	  __set_errno (saved_errno);
 	  return ypprot_err (status);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]