(make_request): Fix some typos.
[kopensolaris-gnu/glibc.git] / sunrpc / clnt_perr.c
index 6c33c32..6446b32 100644 (file)
@@ -40,18 +40,25 @@ static char sccsid[] = "@(#)clnt_perror.c 1.15 87/10/07 Copyr 1984 Sun Micro";
 #include <stdio.h>
 #include <string.h>
 #include <libintl.h>
-#include <rpc/types.h>
-#include <rpc/auth.h>
-#include <rpc/clnt.h>
+#include <rpc/rpc.h>
 
 #ifdef USE_IN_LIBIO
+# include <wchar.h>
 # include <libio/iolibio.h>
-# define fputs(s, f) _IO_fputs (s, f)
 #endif
 
 static char *auth_errmsg (enum auth_stat stat) internal_function;
 
+#ifdef _RPC_THREAD_SAFE_
+/*
+ * Making buf a preprocessor macro requires renaming the local
+ * buf variable in a few functions.  Overriding a global variable
+ * with a local variable of the same name is a bad idea, anyway.
+ */
+#define buf RPC_THREAD_VARIABLE(clnt_perr_buf_s)
+#else
 static char *buf;
+#endif
 
 static char *
 _buf (void)
@@ -67,7 +74,7 @@ _buf (void)
 char *
 clnt_sperror (CLIENT * rpch, const char *msg)
 {
-  char buf[1024];
+  char chrbuf[1024];
   struct rpc_err e;
   char *err;
   char *str = _buf ();
@@ -103,7 +110,7 @@ clnt_sperror (CLIENT * rpch, const char *msg)
     case RPC_CANTSEND:
     case RPC_CANTRECV:
       len = sprintf (str, "; errno = %s", __strerror_r (e.re_errno,
-                                                       buf, sizeof buf));
+                                                       chrbuf, sizeof chrbuf));
       str += len;
       break;
 
@@ -143,12 +150,14 @@ clnt_sperror (CLIENT * rpch, const char *msg)
   *++str = '\0';
   return (strstart);
 }
+libc_hidden_def (clnt_sperror)
 
 void
 clnt_perror (CLIENT * rpch, const char *msg)
 {
-  (void) fputs (clnt_sperror (rpch, msg), stderr);
+  (void) __fxprintf (NULL, "%s", clnt_sperror (rpch, msg));
 }
+libc_hidden_def (clnt_perror)
 
 
 struct rpc_errtab
@@ -270,38 +279,41 @@ clnt_sperrno (enum clnt_stat stat)
     }
   return _("RPC: (unknown error code)");
 }
+libc_hidden_def (clnt_sperrno)
 
 void
 clnt_perrno (enum clnt_stat num)
 {
-  (void) fputs (clnt_sperrno (num), stderr);
+  (void) __fxprintf (NULL, "%s", clnt_sperrno (num));
 }
 
 
 char *
 clnt_spcreateerror (const char *msg)
 {
-  char buf[1024];
+  char chrbuf[1024];
   char *str = _buf ();
   char *cp;
   int len;
+  struct rpc_createerr *ce;
 
   if (str == NULL)
     return NULL;
+  ce = &get_rpc_createerr ();
   len = sprintf (str, "%s: ", msg);
   cp = str + len;
-  cp = stpcpy (cp, clnt_sperrno (rpc_createerr.cf_stat));
-  switch (rpc_createerr.cf_stat)
+  cp = stpcpy (cp, clnt_sperrno (ce->cf_stat));
+  switch (ce->cf_stat)
     {
     case RPC_PMAPFAILURE:
       cp = stpcpy (stpcpy (cp, " - "),
-                  clnt_sperrno (rpc_createerr.cf_error.re_status));
+                  clnt_sperrno (ce->cf_error.re_status));
       break;
 
     case RPC_SYSTEMERROR:
       cp = stpcpy (stpcpy (cp, " - "),
-                  __strerror_r (rpc_createerr.cf_error.re_errno,
-                                buf, sizeof buf));
+                  __strerror_r (ce->cf_error.re_errno,
+                                chrbuf, sizeof chrbuf));
       break;
     default:
       break;
@@ -310,11 +322,12 @@ clnt_spcreateerror (const char *msg)
   *++cp = '\0';
   return str;
 }
+libc_hidden_def (clnt_spcreateerror)
 
 void
 clnt_pcreateerror (const char *msg)
 {
-  (void) fputs (clnt_spcreateerror (msg), stderr);
+  (void) __fxprintf (NULL, "%s", clnt_spcreateerror (msg));
 }
 
 struct auth_errtab
@@ -385,9 +398,8 @@ auth_errmsg (enum auth_stat stat)
 }
 
 
-static void __attribute__ ((unused))
-free_mem (void)
+libc_freeres_fn (free_mem)
 {
+  /* Not libc_freeres_ptr, since buf is a macro.  */
   free (buf);
 }
-text_set_element (__libc_subfreeres, free_mem);