about summary refs log tree commit diff
path: root/sunrpc/clnt_perr.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1997-03-27 01:59:53 +0000
committerUlrich Drepper <drepper@redhat.com>1997-03-27 01:59:53 +0000
commite7fd8a39abd3a9c9d2139e686b17efb5dc3bf444 (patch)
tree637853189c42709eb7fa91817173d6097765888a /sunrpc/clnt_perr.c
parent34b402e5a967b97fc73cc45fbef61bbeb8526f3d (diff)
downloadglibc-e7fd8a39abd3a9c9d2139e686b17efb5dc3bf444.tar.gz
glibc-e7fd8a39abd3a9c9d2139e686b17efb5dc3bf444.tar.xz
glibc-e7fd8a39abd3a9c9d2139e686b17efb5dc3bf444.zip
1997-03-27 02:28  Ulrich Drepper  <drepper@cygnus.com>

	* gmon/gmon.c (monstartup): Mark all messages.
	(write_call_graph): Rewrite to use larger I/O vector for writev
	call to reduce syscall overhead.
	(write_bb_counts): Simplify writev handling.

	* inet/rexec.c: Make string parameters `const'.
	* resolv/netdb.h: Add prototypes for rcmd, rexec, ruserok, and
	rresvport.

	* math/Makefile: Don't define CFLAGS-* macros to prevent inlining
	in libm-test.
	* math/libm-test.c (this_does_nothing): Remove functions.  It's
	notuseful on any platform but ix86.
	(inverse_func_pair_test): Don't use this_does_nothing.  Use
	memory reference.
	(identities1_test): Likewise.
	(identities2_test): Likewise.
	(identities3_test): Likewise.
	(basic_test): Likewise.
	Patch by Andreas Schwab.
	(BUILD_COMPLEX): New macro.  Create complex number from real and
	imaginary parts.  This works around bugs/inefficiencies in current
	gcc.
	(cexp_test): Use BUILD_COMPLEX.  Add more tests.

	* nss/nsswitch.c: Fix typo.

	* posix/glob.h: Add declaration for glob_pattern_p.
	* posix/glob.c: Rename glob_pattern_p to __glob_pattern_p and
	make glob_pattern_p a weak alias.  This function is used in other
	packages (e.g. bash).

	* signal/Makefile (routines): Add sigisempty, sigandset, and
	sigorset.
	* signal/signal.h: Add prototypes for sigisempty, sigandset, and
	sigorset.
	* signal/sigisempty.c: New file.
	* signal/sigandset.c: New file.
	* signal/sigorset.c: New file.
	* sysdeps/generic/sigset.h: Define __sigisemptyset, __sigandset,
	and __sigorset.
	* sysdeps/unix/sysv/linux/sigset.h: Likewise.

	* stdlib/strtod.c: Handle `n-char-sequence' in NaN parsing.  It
	determines the bits in the mantissa part of the NaN.
	* stdlib/strtof.c: Define SET_MANTISSA for float type.
	* wcsmbs/wcstof.c: Define SET_MANTISSA for float type.
	* stdlib/strtold.c: Define SET_MANTISSA for long double type.
	* wcsmbs/wcstold.c: Define SET_MANTISSA for long double type.

	* sysdeps/libm-ieee754/s_cexp.c: Use explicit assignment to
	complex number components.  Some more corrects for special cases.
	* sysdeps/libm-ieee754/s_cexpf.c: Likewise.
	* sysdeps/libm-ieee754/s_cexpl.c: Likewise.

	* sysdeps/sparc/elf/start.S: Remove as per request of Miguel de Icaza.

	* sysdeps/unix/sysv/linux/netinet/icmp.h: Remove since we have
	ip_icmp.h.  Reported by HJ Lu.

1997-03-25 03:50  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/m68k/Makefile (CFLAGS-rtld.c): Add -Wno-unused.

	* sysdeps/m68k/dl-machine.h (elf_machine_rela): Rewritten as for
	i386.
	(elf_machine_lookup_noexec_p, elf_machine_lookup_noplt_p,
	ELF_MACHINE_RELOC_NOPLT): Define.

1997-03-25 03:48  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* grp/grp.h: Include <stddef.h> only once.

1997-03-25 09:38  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* sysdeps/unix/sysv/linux/termbits.h (OXTABS): Don't define.
	* sysdeps/unix/sysv/linux/alpha/termbits.h (OXTABS): Likewise.

	* termios/sys/ttydefaults.h (TTYDEF_OFLAG): Use either OXTABS or
	TAB3, if one of them is defined.

1997-03-26 04:53  Ulrich Drepper  <drepper@cygnus.com>

	* posix/glob.c (next_brace_sub): Decrement depth counter when '}'
	is found.
	Patch by Dennis Henriksen <opus@flamingo.osrl.dk>.

1997-03-25  16:25  Thorsten Kukuk  <kukuk@vt.uni-paderborn.de>

	* sunrpc/Makefile: Comment gccwarn out.
	* sunrpc/auth_none.c: Fix prototypes and parameters for compiling
	with enabled warnings.
	* sunrpc/auth_unix.c: Likewise.
	* sunrpc/authuxprot.c: Likewise.
	* sunrpc/bindrsvprt.c: Likewise.
	* sunrpc/clnt_gen.c: Likewise.
	* sunrpc/clnt_perr.c: Likewise.
	* sunrpc/clnt_raw.c: Likewise.
	* sunrpc/clnt_simp.c: Likewise.
	* sunrpc/clnt_tcp.c: Likewise.
	* sunrpc/clnt_udp.c: Likewise.
	* sunrpc/get_myaddr.c: Likewise.
	* sunrpc/getrpcport.c: Likewise.
	* sunrpc/pm_getmaps.c: Likewise.
	* sunrpc/pm_getport.c: Likewise.
	* sunrpc/pmap_clnt.c: Likewise.
	* sunrpc/pmap_prot.c: Likewise.
	* sunrpc/pmap_prot2.c: Likewise.
	* sunrpc/pmap_rmt.c: Likewise.
	* sunrpc/rpc/auth.h: Likewise.
	* sunrpc/rpc/clnt.h: Likewise.
	* sunrpc/rpc/pmap_clnt.h: Likewise.
	* sunrpc/rpc/svc.h: Likewise.
	* sunrpc/rpc/svc_auth.h: Likewise.
	* sunrpc/rpc/types.h: Likewise.
	* sunrpc/rpc/xdr.h: Likewise.
	* sunrpc/rpc_clntout.c: Likewise.
	* sunrpc/rpc_cmsg.c: Likewise.
	* sunrpc/rpc_dtable.c: Likewise.
	* sunrpc/rpc_prot.c: Likewise.
	* sunrpc/svc.c: Likewise.
	* sunrpc/svc_auth.c: Likewise.
	* sunrpc/svc_authux.c: Likewise.
	* sunrpc/svc_raw.c: Likewise.
	* sunrpc/svc_run.c: Likewise.
	* sunrpc/svc_simple.c: Likewise.
	* sunrpc/svc_tcp.c: Likewise.
	* sunrpc/svc_udp.c: Likewise.
	* sunrpc/xdr.c: Likewise.
	* sunrpc/xdr_array.c: Likewise.
	* sunrpc/xdr_mem.c: Likewise.
	* sunrpc/xdr_rec.c: Likewise.
	* sunrpc/xdr_ref.c: Likewise.
	* sunrpc/xdr_stdio.c: Likewise.

1997-03-25 13:39  Ulrich Drepper  <drepper@cygnus.com>

	* math/libm-test.c (log2_test): Compile this function and call it.
	(exp2_test): Likewise, but check whether function really exists
	before testing.

	* math/Makefile (libm-calls): Add s_log2 and s_exp2.

1997-03-25 04:50  Ulrich Drepper  <drepper@cygnus.com>

	Implement exp2 function.
	* sysdeps/libm-i387/s_exp2.S: New file.
	* sysdeps/libm-i387/s_exp2f.S: New file.
	* sysdeps/libm-i387/s_exp2l.S: New file.

	Implement log2 function.
	* sysdeps/libm-i387/s_log2.S: New file.
	* sysdeps/libm-i387/s_log2f.S: New file.
	* sysdeps/libm-i387/s_log2l.S: New file.
	* sysdeps/libm-ieee754/s_log2.c: New file.
	* sysdeps/libm-ieee754/s_log2f.c: New file.
	* sysdeps/stub/s_log2.c: New file.  Stub version.
Diffstat (limited to 'sunrpc/clnt_perr.c')
-rw-r--r--sunrpc/clnt_perr.c406
1 files changed, 202 insertions, 204 deletions
diff --git a/sunrpc/clnt_perr.c b/sunrpc/clnt_perr.c
index 147a5ea23c..68f3640cd7 100644
--- a/sunrpc/clnt_perr.c
+++ b/sunrpc/clnt_perr.c
@@ -38,165 +38,156 @@ static char sccsid[] = "@(#)clnt_perror.c 1.15 87/10/07 Copyr 1984 Sun Micro";
  *
  */
 #include <stdio.h>
-
+#include <string.h>
 #include <rpc/types.h>
 #include <rpc/auth.h>
 #include <rpc/clnt.h>
 
-/* extern char *sys_errlist[]; --drepper@gnu */
-/* extern char *sprintf(); --roland@gnu */
-static char *auth_errmsg();
-
-extern char *strcpy();
+static char *auth_errmsg (enum auth_stat stat);
 
 static char *buf;
 
 static char *
-_buf()
+_buf (void)
 {
-
-	if (buf == 0)
-		buf = (char *)malloc(256);
-	return (buf);
+  if (buf == NULL)
+    buf = (char *) malloc (256);
+  return buf;
 }
 
 /*
  * Print reply error info
  */
 char *
-clnt_sperror(rpch, s)
-	CLIENT *rpch;
-	char *s;
+clnt_sperror (CLIENT * rpch, const char *msg)
 {
-	struct rpc_err e;
-	void clnt_perrno();
-	char *err;
-	char *str = _buf();
-	char *strstart = str;
-
-	if (str == 0)
-		return (0);
-	CLNT_GETERR(rpch, &e);
-
-	(void) sprintf(str, "%s: ", s);
-	str += strlen(str);
-
-	(void) strcpy(str, clnt_sperrno(e.re_status));
-	str += strlen(str);
-
-	switch (e.re_status) {
-	case RPC_SUCCESS:
-	case RPC_CANTENCODEARGS:
-	case RPC_CANTDECODERES:
-	case RPC_TIMEDOUT:
-	case RPC_PROGUNAVAIL:
-	case RPC_PROCUNAVAIL:
-	case RPC_CANTDECODEARGS:
-	case RPC_SYSTEMERROR:
-	case RPC_UNKNOWNHOST:
-	case RPC_UNKNOWNPROTO:
-	case RPC_PMAPFAILURE:
-	case RPC_PROGNOTREGISTERED:
-	case RPC_FAILED:
-		break;
-
-	case RPC_CANTSEND:
-	case RPC_CANTRECV:
-		(void) sprintf(str, "; errno = %s",
-		    sys_errlist[e.re_errno]);
-		str += strlen(str);
-		break;
-
-	case RPC_VERSMISMATCH:
-		(void) sprintf(str,
-			_("; low version = %lu, high version = %lu"),
-			e.re_vers.low, e.re_vers.high);
-		str += strlen(str);
-		break;
-
-	case RPC_AUTHERROR:
-		err = auth_errmsg(e.re_why);
-		(void) sprintf(str,_("; why = "));
-		str += strlen(str);
-		if (err != NULL) {
-			(void) sprintf(str, "%s",err);
-		} else {
-			(void) sprintf(str,
-				_("(unknown authentication error - %d)"),
-				(int) e.re_why);
-		}
-		str += strlen(str);
-		break;
-
-	case RPC_PROGVERSMISMATCH:
-		(void) sprintf(str,
-			_("; low version = %lu, high version = %lu"),
-			e.re_vers.low, e.re_vers.high);
-		str += strlen(str);
-		break;
-
-	default:	/* unknown */
-		(void) sprintf(str,
-			"; s1 = %lu, s2 = %lu",
-			e.re_lb.s1, e.re_lb.s2);
-		str += strlen(str);
-		break;
+  char buf[1024];
+  struct rpc_err e;
+  char *err;
+  char *str = _buf ();
+  char *strstart = str;
+  int len;
+
+  if (str == NULL)
+    return NULL;
+  CLNT_GETERR (rpch, &e);
+
+  len = sprintf (str, "%s: ", msg);
+  str += len;
+
+  str = stpcpy (str, clnt_sperrno (e.re_status));
+
+  switch (e.re_status)
+    {
+    case RPC_SUCCESS:
+    case RPC_CANTENCODEARGS:
+    case RPC_CANTDECODERES:
+    case RPC_TIMEDOUT:
+    case RPC_PROGUNAVAIL:
+    case RPC_PROCUNAVAIL:
+    case RPC_CANTDECODEARGS:
+    case RPC_SYSTEMERROR:
+    case RPC_UNKNOWNHOST:
+    case RPC_UNKNOWNPROTO:
+    case RPC_PMAPFAILURE:
+    case RPC_PROGNOTREGISTERED:
+    case RPC_FAILED:
+      break;
+
+    case RPC_CANTSEND:
+    case RPC_CANTRECV:
+      len = sprintf (str, "; errno = %s", strerror_r (e.re_errno,
+						      buf, sizeof buf));
+      str += len;
+      break;
+
+    case RPC_VERSMISMATCH:
+      len= sprintf (str, _("; low version = %lu, high version = %lu"),
+		    e.re_vers.low, e.re_vers.high);
+      str += len;
+      break;
+
+    case RPC_AUTHERROR:
+      err = auth_errmsg (e.re_why);
+      str = stpcpy (str, _ ("; why = "));
+      if (err != NULL)
+	{
+	  str = stpcpy (str, err);
+	}
+      else
+	{
+	  len = sprintf (str, _("(unknown authentication error - %d)"),
+			 (int) e.re_why);
+	  str += len;
 	}
-	(void) sprintf(str, "\n");
-	return(strstart) ;
+      break;
+
+    case RPC_PROGVERSMISMATCH:
+      len = sprintf (str, _("; low version = %lu, high version = %lu"),
+		     e.re_vers.low, e.re_vers.high);
+      str += len;
+      break;
+
+    default:			/* unknown */
+      len = sprintf (str, "; s1 = %lu, s2 = %lu", e.re_lb.s1, e.re_lb.s2);
+      str += len;
+      break;
+    }
+  *str = '\n';
+  return (strstart);
 }
 
 void
-clnt_perror(rpch, s)
-	CLIENT *rpch;
-	char *s;
+clnt_perror (CLIENT * rpch, const char *msg)
 {
-	(void) fprintf(stderr,"%s",clnt_sperror(rpch,s));
+  (void) fputs (clnt_sperror (rpch, msg), stderr);
 }
 
 
-struct rpc_errtab {
-	enum clnt_stat status;
-	char *message;
+struct rpc_errtab
+{
+  enum clnt_stat status;
+  const char *message;
 };
 
-static struct rpc_errtab  rpc_errlist[] = {
-	{ RPC_SUCCESS,
-		N_("RPC: Success") },
-	{ RPC_CANTENCODEARGS,
-		N_("RPC: Can't encode arguments") },
-	{ RPC_CANTDECODERES,
-		N_("RPC: Can't decode result") },
-	{ RPC_CANTSEND,
-		N_("RPC: Unable to send") },
-	{ RPC_CANTRECV,
-		N_("RPC: Unable to receive") },
-	{ RPC_TIMEDOUT,
-		N_("RPC: Timed out") },
-	{ RPC_VERSMISMATCH,
-		N_("RPC: Incompatible versions of RPC") },
-	{ RPC_AUTHERROR,
-		N_("RPC: Authentication error") },
-	{ RPC_PROGUNAVAIL,
-		N_("RPC: Program unavailable") },
-	{ RPC_PROGVERSMISMATCH,
-		N_("RPC: Program/version mismatch") },
-	{ RPC_PROCUNAVAIL,
-		N_("RPC: Procedure unavailable") },
-	{ RPC_CANTDECODEARGS,
-		N_("RPC: Server can't decode arguments") },
-	{ RPC_SYSTEMERROR,
-		N_("RPC: Remote system error") },
-	{ RPC_UNKNOWNHOST,
-		N_("RPC: Unknown host") },
-	{ RPC_UNKNOWNPROTO,
-		N_("RPC: Unknown protocol") },
-	{ RPC_PMAPFAILURE,
-		N_("RPC: Port mapper failure") },
-	{ RPC_PROGNOTREGISTERED,
-		N_("RPC: Program not registered") },
-	{ RPC_FAILED,
-		N_("RPC: Failed (unspecified error)") }
+static const struct rpc_errtab rpc_errlist[] =
+{
+  {RPC_SUCCESS,
+   N_("RPC: Success")},
+  {RPC_CANTENCODEARGS,
+   N_("RPC: Can't encode arguments")},
+  {RPC_CANTDECODERES,
+   N_("RPC: Can't decode result")},
+  {RPC_CANTSEND,
+   N_("RPC: Unable to send")},
+  {RPC_CANTRECV,
+   N_("RPC: Unable to receive")},
+  {RPC_TIMEDOUT,
+   N_("RPC: Timed out")},
+  {RPC_VERSMISMATCH,
+   N_("RPC: Incompatible versions of RPC")},
+  {RPC_AUTHERROR,
+   N_("RPC: Authentication error")},
+  {RPC_PROGUNAVAIL,
+   N_("RPC: Program unavailable")},
+  {RPC_PROGVERSMISMATCH,
+   N_("RPC: Program/version mismatch")},
+  {RPC_PROCUNAVAIL,
+   N_("RPC: Procedure unavailable")},
+  {RPC_CANTDECODEARGS,
+   N_("RPC: Server can't decode arguments")},
+  {RPC_SYSTEMERROR,
+   N_("RPC: Remote system error")},
+  {RPC_UNKNOWNHOST,
+   N_("RPC: Unknown host")},
+  {RPC_UNKNOWNPROTO,
+   N_("RPC: Unknown protocol")},
+  {RPC_PMAPFAILURE,
+   N_("RPC: Port mapper failure")},
+  {RPC_PROGNOTREGISTERED,
+   N_("RPC: Program not registered")},
+  {RPC_FAILED,
+   N_("RPC: Failed (unspecified error)")}
 };
 
 
@@ -204,102 +195,109 @@ static struct rpc_errtab  rpc_errlist[] = {
  * This interface for use by clntrpc
  */
 char *
-clnt_sperrno(stat)
-	enum clnt_stat stat;
+clnt_sperrno (enum clnt_stat stat)
 {
-	int i;
+  int i;
 
-	for (i = 0; i < sizeof(rpc_errlist)/sizeof(struct rpc_errtab); i++) {
-		if (rpc_errlist[i].status == stat) {
-			return _(rpc_errlist[i].message);
-		}
+  for (i = 0; i < sizeof (rpc_errlist) / sizeof (struct rpc_errtab); i++)
+    {
+      if (rpc_errlist[i].status == stat)
+	{
+	  return _(rpc_errlist[i].message);
 	}
-	return _("RPC: (unknown error code)");
+    }
+  return _("RPC: (unknown error code)");
 }
 
 void
-clnt_perrno(num)
-	enum clnt_stat num;
+clnt_perrno (enum clnt_stat num)
 {
-	(void) fprintf(stderr,"%s",clnt_sperrno(num));
+  (void) fputs (clnt_sperrno (num), stderr);
 }
 
 
 char *
-clnt_spcreateerror(s)
-	char *s;
+clnt_spcreateerror (const char *msg)
 {
-	extern int sys_nerr;
-	/* extern char *sys_errlist[]; --drepper@gnu */
-	char *str = _buf();
-
-	if (str == 0)
-		return(0);
-	(void) sprintf(str, "%s: ", s);
-	(void) strcat(str, clnt_sperrno(rpc_createerr.cf_stat));
-	switch (rpc_createerr.cf_stat) {
-	case RPC_PMAPFAILURE:
-		(void) strcat(str, " - ");
-		(void) strcat(str,
-		    clnt_sperrno(rpc_createerr.cf_error.re_status));
-		break;
-
-	case RPC_SYSTEMERROR:
-		(void) strcat(str, " - ");
-		if (rpc_createerr.cf_error.re_errno > 0
-		    && rpc_createerr.cf_error.re_errno < sys_nerr)
-			(void) strcat(str,
-			    sys_errlist[rpc_createerr.cf_error.re_errno]);
-		else
-			(void) sprintf(&str[strlen(str)], _("Error %d"),
-			    rpc_createerr.cf_error.re_errno);
-		break;
+  char buf[1024];
+  char *str = _buf ();
+  char *cp;
+  int len;
+
+  if (str == NULL)
+    return NULL;
+  len = sprintf (str, "%s: ", msg);
+  cp = str + len;
+  cp = stpcpy (cp, clnt_sperrno (rpc_createerr.cf_stat));
+  switch (rpc_createerr.cf_stat)
+    {
+    case RPC_PMAPFAILURE:
+      cp = stpcpy (cp, " - ");
+      cp = stpcpy (cp, clnt_sperrno (rpc_createerr.cf_error.re_status));
+      break;
+
+    case RPC_SYSTEMERROR:
+      cp = stpcpy (str, " - ");
+      if (rpc_createerr.cf_error.re_errno > 0
+	  && rpc_createerr.cf_error.re_errno < sys_nerr)
+	cp = stpcpy (str, strerror_r (rpc_createerr.cf_error.re_errno,
+				      buf, sizeof buf));
+      else
+	{
+	  len = sprintf (cp, _("Error %d"), rpc_createerr.cf_error.re_errno);
+	  cp += len;
 	}
-	(void) strcat(str, "\n");
-	return (str);
+      break;
+    default:
+      break;
+    }
+  *cp = '\n';
+  return str;
 }
 
 void
-clnt_pcreateerror(s)
-	char *s;
+clnt_pcreateerror (const char *msg)
 {
-	(void) fprintf(stderr,"%s",clnt_spcreateerror(s));
+  (void) fputs (clnt_spcreateerror (msg), stderr);
 }
 
-struct auth_errtab {
-	enum auth_stat status;
-	char *message;
+struct auth_errtab
+{
+  enum auth_stat status;
+  const char *message;
 };
 
-static struct auth_errtab auth_errlist[] = {
-	{ AUTH_OK,
-		N_("Authentication OK") },
-	{ AUTH_BADCRED,
-		N_("Invalid client credential") },
-	{ AUTH_REJECTEDCRED,
-		N_("Server rejected credential") },
-	{ AUTH_BADVERF,
-		N_("Invalid client verifier") },
-	{ AUTH_REJECTEDVERF,
-		N_("Server rejected verifier") },
-	{ AUTH_TOOWEAK,
-		N_("Client credential too weak") },
-	{ AUTH_INVALIDRESP,
-		N_("Invalid server verifier") },
-	{ AUTH_FAILED,
-		N_("Failed (unspecified error)") },
+static const struct auth_errtab auth_errlist[] =
+{
+  {AUTH_OK,
+   N_("Authentication OK")},
+  {AUTH_BADCRED,
+   N_("Invalid client credential")},
+  {AUTH_REJECTEDCRED,
+   N_("Server rejected credential")},
+  {AUTH_BADVERF,
+   N_("Invalid client verifier")},
+  {AUTH_REJECTEDVERF,
+   N_("Server rejected verifier")},
+  {AUTH_TOOWEAK,
+   N_("Client credential too weak")},
+  {AUTH_INVALIDRESP,
+   N_("Invalid server verifier")},
+  {AUTH_FAILED,
+   N_("Failed (unspecified error)")},
 };
 
 static char *
-auth_errmsg(stat)
-	enum auth_stat stat;
+auth_errmsg (enum auth_stat stat)
 {
-	int i;
+  size_t i;
 
-	for (i = 0; i < sizeof(auth_errlist)/sizeof(struct auth_errtab); i++) {
-		if (auth_errlist[i].status == stat) {
-			return _(auth_errlist[i].message);
-		}
+  for (i = 0; i < sizeof (auth_errlist) / sizeof (struct auth_errtab); i++)
+    {
+      if (auth_errlist[i].status == stat)
+	{
+	  return _(auth_errlist[i].message);
 	}
-	return(NULL);
+    }
+  return NULL;
 }